独自の定量的取引ソフトウェアを実行する(20)Tongdaxinフォーミュラ株式選択プログラムの実現

独自の定量的取引ソフトウェアを実行します(20)Tongdaxinフォーミュラ株式選択プログラムの実現
1. Xiaobai2を使用してそれを実現します。まず、セクターの株式を取得し、リストに保存します。たとえば、「上海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.次に、Xiaobaiを使用してTongdaxin数式モードを模倣してインデックスを計算し、BリストとSリストに保存します。
購入ポイントの場合、Bリストは最後のデータが1であるかどうかを判別します。1の場合は、銘柄コードを銘柄プールに保存します。これが銘柄コードアルゴリズムです。
株式市場のデータが多すぎて計算が遅いため、すべてのデータを取得しないでください。MA5を使用してMA20を着用する場合、最長のパラメーター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)

読者は上記のコードに基づいて株式を選択し、独自の自己編集指標に変更できます
。Jingdong、Taobao、Dangdangなどは本物の<ゼロベースの定量的投資システム-Pythonをツールとして使用>の本を購入し、さらに読者を追加します白の定量的ソースコードに加えて、第2世代のXiaobai定量的ソースコードと関連する財務モジュールのソースコードが表示されます。HP_tdx.pyは、第2世代のリアルタイム市場データモジュールです。

おすすめ

転載: blog.csdn.net/hepu8/article/details/105451351
おすすめ