自分で量子化取引ソフトを作る(20)通達信公式選株プログラムの実現


自分で量子化取引ソフト(20)通達信公式選株プログラムの実現を行う.シロ2でうまく実現.まずプレートの株を取得し、リストに保存します.例えば「上証50」を取得する
import HP_tdx as htdx
from HP_formula import *

global CLOSE,LOW,HIGH,OPEN,VOL
global C,L,H,O,V

hq=htdx.TdxInit(ip='183.60.224.178',port=7709)  ##      
codes=htdx.getblock2('  50') #        

2.次は、BとSのリストに格納するために、小白擬通達信式モードで指標計算を行う.ポイントを買う場合、Bリストは最後のデータが1であるかどうかを判断します.1の場合、株コードを株選択プールに保存します.これが株選択アルゴリズムです.株価相場のデータが多すぎて、計算が遅いので、すべてのデータを取得しないでください.MA 5でMA 20を着ていると、最長パラメータ20を使っているので、少なくとも40サイクルのデータを取得してこそ、正確になります.macd、最長サイクルパラメータ26を使用する場合は、少なくとも52サイクルのデータ相場を取得します.その他はこのように推す.すなわち,指標計算の正確さを保証し,計算速度を向上させた.この株を関数function(cd)とし,パラメータcdは株コードを表す.株選択戦略’5日平均線に20日平均線を通す’は,以下に実現関数を与える.
#      :5     20   
def function(cd):
    global CLOSE,LOW,HIGH,OPEN,VOL
    global C,L,H,O,V

    df3=htdx.get_security_bars(nCategory=4,nMarket = 0,code=cd,\
                    nStart=0, nCount=40) #         K 
    
    ##      
    df3.dropna(inplace=True)
    #       
    mydf=df3.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']
    #    ,          
    MA5=MA(CLOSE,5)
    MA20=MA(CLOSE,20)
    B=CROSS(MA5,MA20)   #5     20   
    B2=list(B) # 1          
    return B2[len(B2)-1]  #          

3.その後、循環して株式プールリストの株式相場を取得し、計算します.
#              
myblock=[]  #   
for code in codes:
     buy=function(code)  #        
     if buy==1:
         myblock.append(code)

4.出力結果
print('        ')
print(myblock)

5.次は20200411の選出結果です.
      : 5     20   
           
['600000', '600009', '600016', '600028', '600030', '600031', '600036', '600048', '600050', '600104', '600196', '600276', '600309', '600340', '600519', '600547', '600585', '600690', '600703', '600837', '600887', '601012', '601066', '601088', '601111', '601138', '601166', '601186', '601211', '601236', '601288', '601318', '601319', '601328', '601336', '601390', '601398', '601601', '601628', '601668', '601688', '601766', '601818', '601857', '601888', '601939', '601988', '601989', '603259', '603993']
        
['600000', '600690']


以下、すべてのコードを示す.
#       : 5     20   

#     ,          。
# https://item.jd.com/61567375505.html
#    qq:2775205
#  python   :524949939
#    :18578755056
#     :      
import HP_tdx as htdx
from HP_formula import *

global CLOSE,LOW,HIGH,OPEN,VOL
global C,L,H,O,V

hq=htdx.TdxInit(ip='183.60.224.178',port=7709)  ##      
codes=htdx.getblock2('  50') #        
print('      : 5     20   ')
print('           ')
print(codes)

#      
def function(cd):
    global CLOSE,LOW,HIGH,OPEN,VOL
    global C,L,H,O,V

    df3=htdx.get_security_bars(nCategory=4,nMarket = 0,code=cd,\
                    nStart=0, nCount=40) #         K 
    
    ##      
    df3.dropna(inplace=True)
    #       
    mydf=df3.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']
    #    ,          
    MA5=MA(CLOSE,5)
    MA20=MA(CLOSE,20)
    B=CROSS(MA5,MA20)   #5     20   
    B2=list(B)
    return B2[len(B2)-1]
    

#              
myblock=[]  #   
for code in codes:
     buy=function(code)  #        
     if buy==1:
         myblock.append(code)

print('        ')
print(myblock)

読者は上記のコードに基づいて、自分の自作指標に変更して株を選ぶことができる.京东、淘宝、当当当网などは正版の本を买って、読者の群をプラスして、白の量子化のソースコードを获得する以外、第2世代の白の量子化のソースコードと関连する金融のモジュールのソースコードを赠ります.HP_tdx.pyは第2世代のリアルタイム相場モジュールです.