日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

易盛极星期货量化教学

發(fā)布時(shí)間:2023/12/19 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 易盛极星期货量化教学 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

我目前量化實(shí)盤做期貨交易用的是這個(gè)軟件。主要就是因?yàn)樗梢宰鎏桌霞s,還有就是國企的外包,安全(vnpy的狗咬狗害怕)。

策略模板:

設(shè)置全局參數(shù)變量:

#導(dǎo)入包 import talib #選擇合約代碼 code1 = '' #設(shè)置可調(diào)參數(shù) g_params['FastLength'] = 5 g_params['SlowLength'] = 20#開倉標(biāo)志 BKFLG = 0 SKFLG = 0 #平倉標(biāo)志 BPFLG = 0 SPFLG = 0 #開倉委托 BKID = 0 SKID = 0 #平倉委托 BPID = 0 SPID = 0 #開倉撤單標(biāo)志 BKDEL = 0 SKDEL = 0 #平倉撤單標(biāo)志 BPDEL = 0 SPDEL = 0 #平倉委托手?jǐn)?shù) BKM = 0 SKM = 0 #平倉撤單標(biāo)志 BPM = 0 SPM = 0 #開倉委托價(jià)格 BKP = 0 SKP = 0 #平倉委托價(jià)格 BPP = 0 SPP = 0

設(shè)置initialize,確定回測范圍,下單方法:

def initialize(context): SetBarInterval(code1, 'M', 1, 500)SetTriggerType(5)SetOrderWay(2)SetActual()

設(shè)置交易函數(shù)

def handle_data(context): #設(shè)置運(yùn)行常量BKDFLG = 0SKDFLG = 0BPKDFLG = 0SPKDFLG = 0BRP = 0SRP = 0global BKIDglobal SKIDglobal BPIDglobal SPIDglobal BKFLGglobal SKFLGglobal BPFLGglobal SPFLGglobal BKDELglobal SKDELglobal BPDELglobal SPDELglobal BKMglobal SKMglobal BPMglobal SPMglobal BKPglobal SKPglobal BPPglobal SPP#確定數(shù)據(jù)長度足夠if CurrentBar() < g_params['SlowLength']:return#計(jì)算所有的技術(shù)指標(biāo) AvgValue1 = talib.MA(Close(), g_params['FastLength']) #快線周期均值A(chǔ)vgValue2 = talib.MA(Close(), g_params['SlowLength']) #慢線周期均值PlotNumeric("ma1", AvgValue1[-1], 0xFF0000)PlotNumeric("ma2", AvgValue2[-1], 0x00aa00)# 執(zhí)行下單操作,確定用[-2],是前一天的數(shù)據(jù)。[-1]是當(dāng)天,用到了未來函數(shù)if MarketPosition() <= 0 and AvgValue1[-2] > AvgValue2[-2]:BPKDFLG = 1if MarketPosition() >= 0 and AvgValue1[-2] < AvgValue2[-2]:SPKDFLG = 1

歷史回測檢測

#//------------------------歷史發(fā)單------------------------// if context.strategyStatus() != 'C':if BPKDFLG:#多頭建倉Buy(1, Close()[-1])elif SPKDFLG:#空頭建倉SellShort(1, Close()[-1])return

實(shí)時(shí)下單:

#//------------------------實(shí)時(shí)處理------------------------//if ExchangeStatus(ExchangeName()) != '3':return#//------------------------變量賦值------------------------//N = 2 #下單手?jǐn)?shù)BIDP = 0 if Q_BidPrice() is None else Q_BidPrice() #買一價(jià)ASKP = 0 if Q_AskPrice() is None else Q_AskPrice() #賣一價(jià)RLP = Q_UpperLimit() #漲停價(jià)FLP = Q_LowLimit() #跌停價(jià)BRP = A_BuyPositionCanCover() #多頭可用持倉SRP = A_SellPositionCanCover() #空頭可用持倉if ExchangeName() == 'SHFE': #如果是上期所合約SH = Enum_ExitToday() #平倉參數(shù)else: #如果非上期所合約SH = Enum_Exit() #平倉參數(shù)#//------------------------成交判斷------------------------//if BPFLG == 1:if A_OrderStatus(BPID) == Enum_Filled():LogInfo("BPK信號:買平委托成交!")BKDFLG = 1 #開啟買開處理BPFLG = 0 #買平標(biāo)志歸0if BKFLG == 1:if A_OrderStatus(BKID) == Enum_Filled():LogInfo("BPK信號:買開委托成交!")if BKDEL > 0: #如果是SPK信號撤單SPKDFLG = 1 #開啟賣平開處理BKFLG = 0 #買開標(biāo)志歸0BKDEL = 0 #買開撤單標(biāo)志歸0elif A_OrderStatus(BKID) == Enum_Canceled():LogInfo("SPK信號:買開委托已撤!")SPKDFLG = 1 #開啟賣平開處理BKFLG = 0 #買開標(biāo)志歸0BKDEL = 0 #買開撤單標(biāo)志歸0elif A_OrderStatus(BKID) == Enum_Suspended() or A_OrderStatus(BKID) == Enum_FillPart():if BKDEL == 2: #如果是SPK信號撤單LogInfo("SPK信號:買開委托撤單!")A_DeleteOrder(BKID) #撤掉買開委托掛單BKDEL = 3 #SPK信號撤掉買開委托掛單if SPFLG == 1:if A_OrderStatus(SPID) == Enum_Filled():LogInfo("SPK信號:賣平委托成交!")SKDFLG = 1 #開啟賣開處理SPFLG = 0 #賣平標(biāo)志歸0if SKFLG == 1:if A_OrderStatus(SKID) == Enum_Filled():LogInfo("SPK信號:賣開委托成交!")if SKDEL > 0: #如果是BPK信號撤單BPKDFLG = 1 #開啟買平開處理SKFLG = 0 #賣開標(biāo)志歸0SKDEL = 0 #賣開撤單標(biāo)志歸0elif A_OrderStatus(SKID) == Enum_Canceled():LogInfo("BPK信號:賣開委托已撤!")BPKDFLG = 1 #開啟買平開處理SKFLG = 0 #賣開標(biāo)志歸0SKDEL = 0 #賣開撤單標(biāo)志歸0elif A_OrderStatus(SKID) == Enum_Suspended() or A_OrderStatus(SKID) == Enum_FillPart():if SKDEL == 2: #如果是BPK信號撤單LogInfo("BPK信號:賣開委托撤單!")A_DeleteOrder(SKID) #撤掉賣開委托掛單SKDEL = 3 #BPK信號撤掉賣開委托掛單#//------------------------委托處理------------------------//if BPKDFLG == 1:if SKFLG == 1:if SKDEL == 0:if A_OrderStatus(SKID) == Enum_Suspended() or A_OrderStatus(SKID) == Enum_FillPart():LogInfo("BPK信號:賣開委托撤單!")A_DeleteOrder(SKID) #撤掉賣開委托掛單SKDEL = 1 #BPK信號撤掉賣開委托掛單else:SKDEL = 2 #BPK信號撤掉賣開委托掛單elif SKFLG == 0:if BPFLG == 0:if SRP > 0:BPM = SRP #買平委托手?jǐn)?shù)BPP = RLP #買平委托價(jià)格LogInfo("BPK信號:買平委托發(fā)出!")retCode, BPID = A_SendOrder(Enum_Buy(), SH, BPM, BPP) #發(fā)出買平委托BPFLG = 1 #已發(fā)出買平委托elif SRP == 0:BKDFLG = 1 #開啟買開處理if BKDFLG == 1:if BKFLG == 0:BKM = N #買開委托手?jǐn)?shù)BKP = ASKP #買開委托價(jià)格LogInfo("BPK信號:買開委托發(fā)出!")retCode, BKID = A_SendOrder(Enum_Buy(), Enum_Entry(), BKM, BKP) #發(fā)出買開委托BKFLG = 1 #已發(fā)出買開委托if SPKDFLG == 1:if BKFLG == 1:if BKDEL == 0:if A_OrderStatus(BKID) == Enum_Suspended() or A_OrderStatus(BKID) == Enum_FillPart():LogInfo("SPK信號:買開委托撤單!")A_DeleteOrder(BKID) #撤掉買開委托掛單BKDEL = 1 #SPK信號撤掉買開委托掛單else:BKDEL = 2#SPK信號撤掉買開委托掛單elif BKFLG == 0:if SPFLG == 0:if BRP > 0:SPM = BRP #賣平委托手?jǐn)?shù)SPP = FLP #賣平委托價(jià)格LogInfo("SPK信號:賣平委托發(fā)出!")retCode, SPID = A_SendOrder(Enum_Sell(), SH, SPM, SPP) #發(fā)出賣平委托SPFLG = 1 #已發(fā)出賣平委托elif BRP == 0:SKDFLG = 1 #開啟賣開處理if SKDFLG == 1:if SKFLG == 0:SKM = N #賣開委托手?jǐn)?shù)SKP = BIDP #賣開委托價(jià)格LogInfo("SPK信號:賣開委托發(fā)出!");retCode, SKID = A_SendOrder(Enum_Sell(), Enum_Entry(),SKM,SKP) #發(fā)出賣開委托SKFLG = 1 #已發(fā)出賣開委托

總結(jié)

以上是生活随笔為你收集整理的易盛极星期货量化教学的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。