別的軟件的python可以轉(zhuǎn)換成金字塔的嗎
作者:金字塔 來源:cxh99.com 發(fā)布時(shí)間:2019年12月28日
-
咨詢內(nèi)容:
# encoding: UTF-8
"""
自動(dòng)交易-買
"""
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)交易-買'? ? ? ? ? ? ? ? # 策略實(shí)例名稱
? ? # 變量列表。可將需要在管理界面顯示的變量名加到此處(注意基類已在basevarList中定義顯示部份變量,這些變量不需再定義)
? ? varList = []
? ? # 參數(shù)列表,可將需要在管理界面顯示的參數(shù)名加到此處
? ? paramList = []
? ? #----------------------------------------------------------------------
"? ? def __init__(self, ctaEngine, strategyid):"
? ? ? ? """Constructor"""
"? ? ? ? super(AutoTradeLong, self).__init__(ctaEngine, strategyid)"
? ? ? ? #繼承修改基類變量,若不需修改,也可不繼承
? ? ? ? self.rtnAllTrade = False? # 是否返回所有交易,若是,則不是本策略產(chǎn)生的交易也會(huì)被返回,否則,只返回本生策略提交的交易
? ? ? ? self.autoGeneratorBar = False #不生成Bar
? ? ? ? self.timerId = 1? # 定義timerid
? ? ? ? self.clearBeginTime = "14:58:00"#清倉時(shí)間
? ? ? ? self.clearEndTime = "15:00:00"
? ? ? ? self.insInfo = None? # 合約信息
? ? ? ? self.stepTickNum = 4? # 止盈或加倉判斷的價(jià)格Tick數(shù)量
? ? ? ? self.tradeNum = 1 #每次交易的數(shù)量
? ? ? ? self.tradeDirect = 0 #交易的方向,0:買多,賣空
? ? ? ? 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? # 倉位保留的次數(shù)
? ? ? ? self.bOpening = False? # 是否正在開倉
? ? ? ? self.forbidTrade = False? # 是否已禁止交易
? ? # ----------------------------------------------------------------------
? ? def onInit(self):
? ? ? ? """在策略第一次啟動(dòng)時(shí)被調(diào)用。用戶可繼承實(shí)現(xiàn)。"""
? ? ? ? pass
? ? # ----------------------------------------------------------------------
? ? def onStart(self):
? ? ? ? """在策略啟動(dòng)時(shí)被調(diào)用。用戶可繼承實(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)用。用戶可繼承實(shí)現(xiàn)。"""
? ? ? ? pass
? ? # ----------------------------------------------------------------------
"? ? def onTick(self, tickInfo):"
? ? ? ? """收到tick推送的處理函數(shù),用戶可繼承實(shí)現(xiàn)。
? ? ? ? tickInfo為TickInfo類型數(shù)據(jù)"""
? ? ? ? if self.forbidTrade or self.bOpening:#開倉還未返回,則不加新的倉
? ? ? ? ? ? return
? ? ? ? if not self.bStartTraded: #第一次開倉
? ? ? ? ? ? self.bStartTraded = True
? ? ? ? ? ? marketPrice = tickInfo.upperLimit if self.tradeDirect == 0 else tickInfo.lowerLimit#以漲跌停價(jià)模擬市價(jià)
? ? ? ? ? ? self.logs('第一次開倉,價(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è)抱歉需要您自己完成了