自己做量化交易軟體(30)小白量化實戰4–動于陰末止于陽極
在講本章之前,我先講一個小故事,
戰國時,有個人乘船渡江,他上船時佩帶的劍掉到了江里,他馬上在船舷上刻了一個記號,然后從刻下記號的地方跳進水里去找自己的劍,很快找到了那把劍,
又有一次,這個人乘船渡江,到了江中間時,他佩帶的劍又掉到了江里,他馬上在船舷上刻了一個記號,船靠岸之后,他立即從刻下記號的地方跳進水里去找自己的劍,結果當然是找不到的劍了,
你們知道他為什么沒找到自己的劍嗎?
你們肯到說出了種種理由,對于優秀的程式開發者來說,我們不能只看表象,要抓住事物的本質,核心問題就是對各種現象進行抽象,然后進行數字化,
假定找劍是買股,記號是技術選股,那么他這種分析方式在技術分析中稱為“參考未來資料”,其結果是資料不準確,信號隨行情而波動變化,
這種分析看起來歷史上買賣點都很準確,100%的成功率,實戰中的結果不確定,準或不準,
我們通過介紹20年前我設計的“快刀”指標,這個指標應用了帶未來資料的函式 之字轉向函式zig,不清楚迷倒了多少投資者,我設計這個指標目的,希望盡快找到行情轉折點,以及數浪,不能作為交易參考,
我現在介紹這個指標不是讓你們去騙人,這里主要是教大家如何在大智慧和通達信軟體指標圖上標記買賣箭頭和標注文字,最后以及如何用Python來實作相應的功能,
是不是感覺我們快用Python開發出Python版通達信軟體了呢?
首先看大智慧公式–快刀主圖,
牛熊線:EMA(CLOSE,120),COLORYELLOW,LINETHICK3;
ZZ:=ZIG(3,10);
買:=IF(ZZ>REF(ZZ,1),1,0) AND IF(REF(ZZ,1)<REF(ZZ,2),1,0);
賣:=IF(ZZ<REF(ZZ,1),1,0) AND IF(REF(ZZ,1)>REF(ZZ,2),1,0);
DRAWICON(買,LOW*0.99,7);
DRAWICON(賣,HIGH*1.01,8);
DRAWTEXT(買,LOW*0.985,' 買');
DRAWTEXT(賣,HIGH*1.015,' 賣');
公式顯示圖上標記了箭頭和輸出買賣文字,

接著看大智慧公式–快刀副圖,
ZZ:=ZIG(3,10);
買:IF(ZZ>REF(ZZ,1),1,0) AND IF(REF(ZZ,1)<REF(ZZ,2),1,0);
賣:IF(ZZ<REF(ZZ,1),1,0) AND IF(REF(ZZ,1)>REF(ZZ,2),1,0);

下來看看通達信公式–快刀主圖指標,
牛熊線:EMA(CLOSE,120),COLORYELLOW,LINETHICK3;
ZZ:=ZIG(3,10);
買:=IF(ZZ>REF(ZZ,1),1,0) AND IF(REF(ZZ,1)<REF(ZZ,2),1,0);
賣:=IF(ZZ<REF(ZZ,1),1,0) AND IF(REF(ZZ,1)>REF(ZZ,2),1,0);
DRAWICON(買,LOW*0.99,1);
DRAWICON(賣,HIGH*1.01,2);
DRAWTEXT(買,LOW*0.985,' 買');
DRAWTEXT(賣,HIGH*1.015,' 賣');


通達信公式–快刀副圖與大智慧公式–快刀副圖的內容相同,
下面我們看看如何在Python中實作類似的功能,在K線圖中標記出箭頭和文字資訊,
# -*- coding: utf-8 -*-
# 小白量化自編指標標注文字和圖示
'''
獨狼荷蒲qq:2886002
通通小白python量化群:524949939
tkinter,pyqt,gui,Python交流2群:517029284
微信公眾號:獨狼股票分析
'''
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import HP_global as g #小白量化全域變數庫
from HP_formula import *
import HP_tdx as htdx
import HP_plt as hplt #小白量化指標繪圖模塊
plt.rcParams['font.sans-serif']=['SimHei'] #用來正常顯示中文標簽
plt.rcParams['axes.unicode_minus']=False #用來正常顯示負號
#白底色
g.ubg='w'
g.ufg='b'
g.utg='b'
g.uvg='#1E90FF'
global CLOSE,LOW,HIGH,OPEN,VOL
#ZIG(K,N),當價格變化量超過N%時轉向,K表示0:開盤價,1:最高價,2:最低價,3:收盤價
#自動定義指標--快刀指標
def UDF():
牛熊線=EMA(CLOSE,120)
ZZ=ZIG(CLOSE,10)
買=IF(ZZ>REF(ZZ,1),1,0) * IF(REF(ZZ,1)<REF(ZZ,2),1,0)
賣=IF(ZZ<REF(ZZ,1),1,0) * IF(REF(ZZ,1)>REF(ZZ,2),1,0)
return 牛熊線,買,賣,ZZ
#首先要對資料預處理
#獲取資料
htdx.TdxInit(ip='183.60.224.178',port=7709)
code='600189'
name='泉陽泉'
df = htdx. get_security_bars(nCategory=4,nMarket = 0,code=code)
#對資料做小白量化各式轉換
mydf=df.copy()
CLOSE=mydf['close']
LOW=mydf['low']
HIGH=mydf['high']
OPEN=mydf['open']
VOL=mydf['volume']
C=mydf['close']
L=mydf['low']
H=mydf['high']
O=mydf['open']
V=mydf['volume']
#呼叫自定義指標
nxx,buy,sell,zz=UDF()
#把指標值添加到mydf資料表中
mydf['nxx']=nxx
mydf['buy']=buy
mydf['sell']=sell
#資料裁減
m=1
mydf=mydf.tail(150*m).head(150).copy()
mydf=mydf.reset_index(level=None, drop=True ,col_level=0, col_fill='')
#繪制圖形
plt.figure(1,figsize=(16,12), dpi=80)
#繪制主圖指標
ax1=plt.subplot(211)
hplt.ax_K(ax1,mydf,t=code+' '+name,n=0)
mydf['nxx'].plot.line(legend=True,color='blue',linewidth=3)
ax1.grid(True, color='r')
##顯示買點
B= list(mydf['buy'])
for j in range(len(B)):
if B[j] > 0:
ax1.annotate(u"買", xy=(j, \
mydf['low'][j]*0.989),\
xytext=(j,mydf['low'][j]*0.75),\
arrowprops=dict(facecolor='red', shrink=0.1))
##顯示賣點
S= list(mydf['sell'])
for j in range(len(S)):
if S[j] > 0:
ax1.annotate(u"賣", xy=(j, \
mydf['high'][j]*1.01),\
xytext=(j,mydf['high'][j]*1.16),\
arrowprops=dict(facecolor='blue', shrink=0.1))
#繪制副圖指標
ax2=plt.subplot(212)
mydf['buy'].plot.line(legend=True,color='red',linewidth=1)
mydf['sell'].plot.line(legend=True,color='blue',linewidth=1)
ax2.grid(True, color='r')
plt.show()
程式運行結果如下:

我們是不是在圖形中標記出了箭頭和買賣點呢?
從股票軟體界面上來說?如果你有行情,就能用Python仿做出來大智慧、通達信、MT5等軟體,
后面文章我們主要介紹仿通達信和大智慧指標選股,自動交易的量化程式,如果你們對撰寫指標感興趣,可以購買我寫的書《看盤秘籍》(https://item.jd.com/10469068.html),這本書主要介紹股票軟體指標設計,以及用C++開發指標公式,凡是購買這本書的讀者,除了了解作者的投資分析理念,還會得到C++開發指標公式的資料及演示程式,能夠得到一套用c++開發貔貅指標(https://mp.weixin.qq.com/s/c9J-d30haP5nonU3bjiwSg),這套指標支持分析家,大智慧,飛狐交易師等軟體,
歷史上高準確的技術指標公式和圖形漂亮量化回測圖,99%多數是假的,造假的方式很多,
(1)統計資料造假,指標在低部連續出現10個買點,在頂部出現過1次買點,指標成功率=10/(10+1)=90.9%的成功率,
(2)屏蔽或跨過行情下跌的區間,我們知道熊市中,沒有能保證賺錢的買股技術,在歷史上測驗90% 以上指標,基本上時假的,屏蔽了熊市中的買點信號,或者20多年里,出現買點不足百個,這主要是針對某只股票在特定行情中創作的,對其他股票不適用,沒有發出買點的機會,
(3)量化回測圖也是假的,舉例來說,你用5分鐘線回測買賣交易,你剛買入股票,5分鐘的第1分鐘是陰線,出現了賣出信號,此時你買出肯定虧損;第2分鐘仍然是陰線,賣出虧損更多;第3分鐘是陰線,第4分鐘是陽線,第5分鐘是陽線,最后5分鐘K線是小陽線,在實戰中,你在第1到第3分鐘都虧損賣出了,按5分鐘K線回測,沒有發出賣出信號,因此在回測圖形中,能完美地在最高價區間賣出,獲大利, 這樣的回測程式,你照此操作,能把人坑死不?
荷蒲指標和貔貅指標只有60%以上準確率,指標是尺子,是參考,不是搖錢樹,
如果有人賣給你搖錢樹,你問問他,怎么不自己搖錢呢?還需要騙錢?
小白量化能仿通達信、大智慧、飛狐交易師等股票軟體指標公式,可以實作用戶自編指標的分析和回測,以及實作自動交易,購買《零基礎搭建量化投資系統――以Python為工具》(https://item.jd.com/61567375505.html)一書,就能得到小白量化第二代全部源代碼, 我是碼農,我賣的是體力,不是技術,
請持續關注我的博客,我的進步,就是你的進步!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/243592.html
標籤:python
下一篇:大佬們幫忙看個問題,指點一下
