对系统重新设计了一下,参考qmt通过策略名称来区分不同策略,同时周末完成了聚宽跟单,全部加入了综合模型


目前框架支持的模型,支持自己改源代码自定义
"模型策略":{
"get_wencai_buy_data":"问财买入股票",
"get_wencai_sell_data":"问财卖出股票",
"get_dfcf_zh_buy_stock":"东方财富自选股买入",
"get_dfcf_zh_sell_stock":"东方财富自选股卖出",
"run_bond_cov_rend_strategy":"可转债趋势轮动策略",
"run_limit_trading_strategy":"涨停板策略",
"run_etf_trend_strategy":"etf趋势轮动策略",
"run_bond_cov_popularity_strategy":"可转债人气策略",
"run_stock_sentiment_strategy":"股票人气策略",
"run_bond_cov_custom_factor_rotation":"可转债自定义因子轮动策略",
"run_bond_cov_hot_concept_strategy":"运行可转债热门概念策略",
"run_micro_stock_cap_trend_trading":"微盘股趋势轮动策略",
"run_tdx_yj_trader_func_1":"通达信警告交易函数1",
"run_tdx_trader_stock_buy":"通达信自选股买入",
"run_tdx_trader_stock_sell":"通达信自选股卖出",
"get_connect_trader_data":"合并交易数据",
"run_joinquant_trader_strategy_get_simultaneous_stock_hold_models":"聚宽跟单持股模式",
"run_joinquant_trader_strategy_get_simultaneous_transaction_models":"聚宽跟单成交模式"
},
支持同花顺,qmt,比如我们选择qmt
对qmt进行配置
"交易系统设置":"*********************************************",
"交易系统选择":"ths/qmt",
"交易系统":"qmt",
"交易品种":"全部",
"交易品种说明":["stock","fund","bond","全部"],
"同花顺下单路径":"C:/同花顺软件/同花顺/xiadan.exe",
"识别软件安装位置":"C:/Program Files/Tesseract-OCR/tesseract",
"qmt路径":"D:/国金QMT交易端模拟/userdata_mini",
"qmt账户":"55009640",
"qmt账户类型":"STOCK",
"证券公司交易设置":"兼容老牌证券公司可转债1手为单位",
"是否开启特殊证券公司交易设置":"否",
第二步:选择交易策略
我们只需要策略名称函数比如我们选择同花顺可转债人气策略,同花顺热门可转债趋势轮动2个策略
同花顺人气可转债策略函数名称
run_bond_cov_popularity_strategy
"run_bond_cov_popularity_strategy":"可转债人气策略",

选择可转债热门概念趋势轮动策略函数名称
run_bond_cov_hot_concept_strategy
"run_bond_cov_hot_concept_strategy":"可转债热门概念策略",

第三步:函数名称复制到自定义函数
对于策略类的函数运行类型我们选择定时,比如跟单,通达信警告模块我们都是选择循环类型
如果2个策略间隔时间比较就,在策略后面添加应该合并交易数据函数
比如下面例子
"自定义运行函数设置":"自定义运行函数说明,运行类型有定时和循环,只需要把自定义模块的函数名称放在下面******",
"自定义函数说明":"定时策略get_connect_trader_data必须保留,跟单通达信警告不需要",
"自定义函数运行类型":["定时","定时","定时","定时"],
"自定义函数模块运行时间":["09:45","09:48","14:30","14:33"],
"自定义函数":["run_bond_cov_popularity_strategy","get_connect_trader_data",
"run_bond_cov_hot_concept_strategy","get_connect_trader_data"],
如果2个策略间隔比较短,可用保留一个合并数据模块就可用比如
get_connect_trader_data要放在2个策略后面,等2个策略数据更新完成,合并交易数据,就马上开始交易
"自定义运行函数设置":"自定义运行函数说明,运行类型有定时和循环,只需要把自定义模块的函数名称放在下面******",
"自定义函数说明":"定时策略get_connect_trader_data必须保留,跟单通达信警告不需要",
"自定义函数运行类型":["定时","定时","定时"],
"自定义函数模块运行时间":["09:45","09:48","09:50"],
"自定义函数":["run_bond_cov_popularity_strategy",
"run_bond_cov_hot_concept_strategy","get_connect_trader_data"],
第四步:点击user_def_models更新交易数据

更新交易数据

同花顺可转债人气交易模型更新的结果

可转债热门趋势概念更新数据,分析热门概念
可转债热度排行


也可用通过我开发我网站看数据

热门概念可转债成分股

可转债热门概念分析出来的可转债

合并2个策略的交易数据,相同的标的保留一个就可以

第五步:运行trader_st开头的策略
进行实盘交易,qmt为例子

开启的模块

下单的结果

下单结果周末不能交易

交易检查

全部的源代码,可用直接下载
合并交易数据函数
def get_connect_trader_data(self):
'''
合并买卖数据
循环类型直接写入,比如通达信警告
定时策略合并多个数据,比如模型策略
'''
import os
with open('分析配置.json','r+',encoding='utf-8') as f:
com=f.read()
text=json.loads(com)
user_def_func=text['自定义函数']
user_def_func_name=text['模型策略']
buy_df=pd.DataFrame()
sell_df=pd.DataFrame()
buy_path_list=os.listdir(r'多策略买入股票')
sell_path_list=os.listdir(r'多策略卖出股票')
for func in user_def_func:
name=user_def_func_name[func]
if func=='run_tdx_yj_trader_func_1':
print(name,'直接写入买卖数据')
else:
#合并买入
buy_path='{}.xlsx'.format(func)
if buy_path in buy_path_list:
buy=pd.read_excel(r'多策略买入股票\{}'.format(buy_path))
if buy.shape[0]>0:
print('合并策略{}'.format(name))
buy=buy[['证券代码','交易状态','策略名称']]
buy_df=pd.concat([buy_df,buy],ignore_index=True)
else:
print('策略{}没有数据'.format(name))
#合并卖出
sell_path='{}.xlsx'.format(func)
if sell_path in sell_path_list:
sell=pd.read_excel(r'多策略卖出股票\{}'.format(sell_path))
if sell.shape[0]>0:
print('合并策略{}'.format(name))
sell=sell[['证券代码','交易状态','策略名称']]
sell_df=pd.concat([sell_df,sell],ignore_index=True)
else:
print('策略{}没有数据'.format(name))
#多个策略叠加买入一个就可以
buy_df=buy_df.drop_duplicates(subset=['证券代码'])
sell_df=sell_df.drop_duplicates(subset=['证券代码'])
buy_df.to_excel(r'买入股票\买入股票.xlsx')
print('合并买入股票***********************')
print(buy_df)
sell_df.to_excel(r'卖出股票\卖出股票.xlsx')
print('合并卖出股票***********************')
print(sell_df)
发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/88915
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!