別的軟件的python可以轉(zhuǎn)換成金字塔的嗎 [金字塔]
-
咨詢(xún)內(nèi)容:
# encoding: UTF-8
""" 自動(dòng)交易-買(mǎi) """ from __future__ import division import talib import math "import win32api,win32con"
from iTraderPy.ctp_data_type import * from iTraderPy.StrategyBase import * from iTraderPy.mtConstant import * from iTraderPy.exportObj import * import datetime
######################################################################## class AutoTradeLong(StrategyBase): ? ? """""" ? ? name = u'自動(dòng)交易-買(mǎi)'? ? ? ? ? ? ? ? # 策略實(shí)例名稱(chēng)
? ? # 變量列表。可將需要在管理界面顯示的變量名加到此處(注意基類(lèi)已在basevarList中定義顯示部份變量,這些變量不需再定義) ? ? varList = []
? ? # 參數(shù)列表,可將需要在管理界面顯示的參數(shù)名加到此處 ? ? paramList = []
? ? #---------------------------------------------------------------------- "? ? def __init__(self, ctaEngine, strategyid):" ? ? ? ? """Constructor""" "? ? ? ? super(AutoTradeLong, self).__init__(ctaEngine, strategyid)"
? ? ? ? #繼承修改基類(lèi)變量,若不需修改,也可不繼承 ? ? ? ? self.rtnAllTrade = False? # 是否返回所有交易,若是,則不是本策略產(chǎn)生的交易也會(huì)被返回,否則,只返回本生策略提交的交易 ? ? ? ? self.autoGeneratorBar = False #不生成Bar
? ? ? ? self.timerId = 1? # 定義timerid ? ? ? ? self.clearBeginTime = "14:58:00"#清倉(cāng)時(shí)間 ? ? ? ? self.clearEndTime = "15:00:00" ? ? ? ? self.insInfo = None? # 合約信息 ? ? ? ? self.stepTickNum = 4? # 止盈或加倉(cāng)判斷的價(jià)格Tick數(shù)量 ? ? ? ? self.tradeNum = 1 #每次交易的數(shù)量 ? ? ? ? self.tradeDirect = 0 #交易的方向,0:買(mǎi)多,賣(mài)空
? ? ? ? self.symbol = "MA909"? # 交易的合約 ? ? ? ? self.symbolList = [self.symbol]
? ? ? ? self._InitData() #初始化數(shù)據(jù)
? ? # ---------------------------------------------------------------------- ? ? def _InitData(self): ? ? ? ? """重新初始化數(shù)據(jù)。""" ? ? ? ? self.bStartTraded = False? # 是否已啟動(dòng)交易 ? ? ? ? self.curActivePrice = 0? # 當(dāng)前交易成交的價(jià)位 ? ? ? ? self.PosRemainNum = 0? # 倉(cāng)位保留的次數(shù) ? ? ? ? self.bOpening = False? # 是否正在開(kāi)倉(cāng) ? ? ? ? self.forbidTrade = False? # 是否已禁止交易
? ? # ---------------------------------------------------------------------- ? ? def onInit(self): ? ? ? ? """在策略第一次啟動(dòng)時(shí)被調(diào)用。用戶(hù)可繼承實(shí)現(xiàn)。""" ? ? ? ? pass
? ? # ---------------------------------------------------------------------- ? ? def onStart(self): ? ? ? ? """在策略啟動(dòng)時(shí)被調(diào)用。用戶(hù)可繼承實(shí)現(xiàn)。""" ? ? ? ? self._InitData() #初始化數(shù)據(jù) ? ? ? ? self.insInfo = self.get_instrmentinfo(self.symbol) ? ? ? ? if self.insInfo == None: ? ? ? ? ? ? sMessageText = "獲得合約信息失敗,請(qǐng)檢查配置的合約!" "? ? ? ? ? ? win32api.MessageBox(0, sMessageText, ""提示"", win32con.MB_ICONWARNING)" ? ? ? ? ? ? return START_FAILD
"? ? ? ? self.setTimer(self.timerId, 1000, self._onTimerFun)#啟動(dòng)計(jì)時(shí)器" ? ? ? ? self.subSymbol(self.symbol)? # 訂閱行情
? ? # ---------------------------------------------------------------------- ? ? def onStop(self): ? ? ? ? """在策略停止時(shí)被調(diào)用。用戶(hù)可繼承實(shí)現(xiàn)。""" ? ? ? ? pass
? ? # ---------------------------------------------------------------------- "? ? def onTick(self, tickInfo):" ? ? ? ? """收到tick推送的處理函數(shù),用戶(hù)可繼承實(shí)現(xiàn)。 ? ? ? ? tickInfo為T(mén)ickInfo類(lèi)型數(shù)據(jù)""" ? ? ? ? if self.forbidTrade or self.bOpening:#開(kāi)倉(cāng)還未返回,則不加新的倉(cāng) ? ? ? ? ? ? return
? ? ? ? if not self.bStartTraded: #第一次開(kāi)倉(cāng) ? ? ? ? ? ? self.bStartTraded = True
? ? ? ? ? ? marketPrice = tickInfo.upperLimit if self.tradeDirect == 0 else tickInfo.lowerLimit#以漲跌停價(jià)模擬市價(jià) ? ? ? ? ? ? self.logs('第一次開(kāi)倉(cāng),價(jià)格='+str(marketPrice))? ? ? ? ? ? ? ? self.forbidTrade = True #禁止新的交易? ? ? ? ? ? ? ? self.unSubSymbol(self.symbol)? # 訂閱行情? ? ? ? ? ? ? ? self._cancelAllPendingOrder()? # 移除所有的未成交委托? ? ? ? ? ? ? ? self.killTimer(timerId)#移除定時(shí)器? ? ? ? ? ? ? ? return 0
? ? ? ? ? ? return 1? ? ? ? except Exception as e:? ? ? ? ? ? self.logs("Exception: onStart " + str(e))?
- 金字塔客服: 這個(gè)抱歉需要您自己完成了
有思路,想編寫(xiě)各種指標(biāo)公式,程序化交易模型,選股公式,預(yù)警公式的朋友
可聯(lián)系技術(shù)人員 QQ: 1145508240 或微信號(hào):cxh99cxh99 進(jìn)行 有償收費(fèi) 編寫(xiě)!(注:由于人數(shù)限制,QQ或微信請(qǐng)選擇方便的一個(gè)聯(lián)系我們就行,謝謝您!)
相關(guān)文章
-
沒(méi)有相關(guān)內(nèi)容