2025年易盛极星多合约回测(问题很多)

易盛极星多合约回测(问题很多)注意 使用此函数 在考虑手续费时 无法做到统一 import talib import numpy as np import EsTalib from EsSeries import NumericSerie 策略参数字典 g params p1 5 g params p2

大家好,我是讯享网,很高兴认识大家。

 注意,使用此函数,在考虑手续费时,无法做到统一。


讯享网

import talib import numpy as np import EsTalib from EsSeries import NumericSeries # 策略参数字典 g_params['p1'] = 5 g_params['p2'] = 10 g_params['p3'] = 120 g_params['ZQ'] = 5 #交易周期 # 合约名称列表 HYMCLB = [ "INE|Z|SC|MAIN","INE|Z|NR|MAIN","INE|Z|LU|MAIN", "ZCE|Z|PK|MAIN","ZCE|Z|PF|MAIN","ZCE|Z|SA|MAIN","ZCE|Z|CF|MAIN", "ZCE|Z|AP|MAIN","ZCE|Z|UR|MAIN","ZCE|Z|CJ|MAIN", "ZCE|Z|OI|MAIN", "ZCE|Z|RM|MAIN","ZCE|Z|MA|MAIN","ZCE|Z|TA|MAIN","ZCE|Z|FG|MAIN", "ZCE|Z|SF|MAIN","ZCE|Z|SM|MAIN", "DCE|Z|M|MAIN","DCE|Z|Y|MAIN","DCE|Z|A|MAIN","DCE|Z|B|MAIN", "DCE|Z|P|MAIN","DCE|Z|C|MAIN","DCE|Z|CS|MAIN","DCE|Z|JD|MAIN", "DCE|Z|L|MAIN","DCE|Z|V|MAIN","DCE|Z|EB|MAIN","DCE|Z|PP|MAIN", "DCE|Z|J|MAIN","DCE|Z|JM|MAIN","DCE|Z|I|MAIN","DCE|Z|EG|MAIN", "DCE|Z|PG|MAIN","DCE|Z|LH|MAIN", "SHFE|Z|AU|MAIN","SHFE|Z|AG|MAIN","SHFE|Z|CU|MAIN","SHFE|Z|AL|MAIN", "SHFE|Z|ZN|MAIN","SHFE|Z|NI|MAIN","SHFE|Z|SN|MAIN","SHFE|Z|PB|MAIN", "SHFE|Z|RB|MAIN","SHFE|Z|SS|MAIN","SHFE|Z|HC|MAIN","SHFE|Z|FU|MAIN", "SHFE|Z|BU|MAIN","SHFE|Z|RU|MAIN","SHFE|Z|SP|MAIN" ] KCSL=1 #开仓手数 HDCS=2 #滑点参数 # 策略开始运行时执行该函数一次 def initialize(context): # 订阅K线周期数据 for x in HYMCLB : SetBarInterval(x,'M',g_params['ZQ'],'A') # 策略触发事件每次触发时都会执行该函数 def handle_data(context): for x in HYMCLB : if CurrentBar(x,'M',g_params['ZQ']) < g_params['p3'] : return ma1 =talib.MA(Close(x,'M',g_params['ZQ']), g_params['p1']) ma2 =talib.MA(Close(x,'M',g_params['ZQ']), g_params['p2']) ma3 =talib.MA(Close(x,'M',g_params['ZQ']), g_params['p3']) # LogInfo(x,"ma1:",ma1[-1],"ma2:",ma2[-1],"ma3:",ma3[-1]) if len(ma3)>g_params['p3'] and MarketPosition(x) != 1 and OpenInt(x,'M',g_params['ZQ'])[-1]>12000 \ and ma1[-2]>ma3[-2] and ma1[-3]<ma3[-3] : Buy(KCSL,Open(x,'M',g_params['ZQ'])[-1]+PriceTick(x)*HDCS,x) if len(ma3)>g_params['p3'] and MarketPosition(x) ==1 and OpenInt(x,'M',g_params['ZQ'])[-1]>12000 \ and BarsSinceLastBuyEntry(x)>2 and BuyPosition(x)<3 \ and Close(x,'M',g_params['ZQ'])[-2]>ma3[-2] and ma1[-2]>ma2[-2] and ma1[-3]<ma2[-3] : Buy(KCSL,Open(x,'M',g_params['ZQ'])[-1]+PriceTick(x)*HDCS,x) if len(ma3)>g_params['p3'] and MarketPosition(x) != -1 and OpenInt(x,'M',g_params['ZQ'])[-1]>12000 \ and ma1[-2]<ma3[-2] and ma1[-3]>ma3[-3] : SellShort(KCSL,Open(x,'M',g_params['ZQ'])[-1]-PriceTick(x)*HDCS,x) if len(ma3)>g_params['p3'] and MarketPosition(x) ==-1 and OpenInt(x,'M',g_params['ZQ'])[-1]>12000 \ and BarsSinceLastSellEntry(x)>2 and SellPosition(x)<3 \ and Close(x,'M',g_params['ZQ'])[-2]<ma3[-2] and ma1[-2]<ma2[-2] and ma1[-3]>ma2[-3] : SellShort(KCSL,Open(x,'M',g_params['ZQ'])[-1]-PriceTick(x)*HDCS,x) 

讯享网

小讯
上一篇 2025-03-26 21:01
下一篇 2025-03-12 08:56

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/128265.html