易盛极星多合约回测(问题很多)
生活随笔
收集整理的這篇文章主要介紹了
易盛极星多合约回测(问题很多)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?注意,使用此函數,在考慮手續費時,無法做到統一。
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'] :returnma1 =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)總結
以上是生活随笔為你收集整理的易盛极星多合约回测(问题很多)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 软件架构培训
- 下一篇: VS2010中不可忽视的部分——VSTO