別的軟件的python可以轉換成金字塔的嗎
作者:金字塔 來源:cxh99.com 發布時間:2019年12月28日
-
咨詢內容:
# encoding: UTF-8
"""
自動交易-買
"""
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'自動交易-買'? ? ? ? ? ? ? ? # 策略實例名稱
? ? # 變量列表??蓪⑿枰诠芾斫缑骘@示的變量名加到此處(注意基類已在basevarList中定義顯示部份變量,這些變量不需再定義)
? ? varList = []
? ? # 參數列表,可將需要在管理界面顯示的參數名加到此處
? ? paramList = []
? ? #----------------------------------------------------------------------
"? ? def __init__(self, ctaEngine, strategyid):"
? ? ? ? """Constructor"""
"? ? ? ? super(AutoTradeLong, self).__init__(ctaEngine, strategyid)"
? ? ? ? #繼承修改基類變量,若不需修改,也可不繼承
? ? ? ? self.rtnAllTrade = False? # 是否返回所有交易,若是,則不是本策略產生的交易也會被返回,否則,只返回本生策略提交的交易
? ? ? ? self.autoGeneratorBar = False #不生成Bar
? ? ? ? self.timerId = 1? # 定義timerid
? ? ? ? self.clearBeginTime = "14:58:00"#清倉時間
? ? ? ? self.clearEndTime = "15:00:00"
? ? ? ? self.insInfo = None? # 合約信息
? ? ? ? self.stepTickNum = 4? # 止盈或加倉判斷的價格Tick數量
? ? ? ? self.tradeNum = 1 #每次交易的數量
? ? ? ? self.tradeDirect = 0 #交易的方向,0:買多,賣空
? ? ? ? self.symbol = "MA909"? # 交易的合約
? ? ? ? self.symbolList = [self.symbol]
? ? ? ? self._InitData() #初始化數據
? ? # ----------------------------------------------------------------------
? ? def _InitData(self):
? ? ? ? """重新初始化數據。"""
? ? ? ? self.bStartTraded = False? # 是否已啟動交易
? ? ? ? self.curActivePrice = 0? # 當前交易成交的價位
? ? ? ? self.PosRemainNum = 0? # 倉位保留的次數
? ? ? ? self.bOpening = False? # 是否正在開倉
? ? ? ? self.forbidTrade = False? # 是否已禁止交易
? ? # ----------------------------------------------------------------------
? ? def onInit(self):
? ? ? ? """在策略第一次啟動時被調用。用戶可繼承實現。"""
? ? ? ? pass
? ? # ----------------------------------------------------------------------
? ? def onStart(self):
? ? ? ? """在策略啟動時被調用。用戶可繼承實現。"""
? ? ? ? self._InitData() #初始化數據
? ? ? ? self.insInfo = self.get_instrmentinfo(self.symbol)
? ? ? ? if self.insInfo == None:
? ? ? ? ? ? sMessageText = "獲得合約信息失敗,請檢查配置的合約!"
"? ? ? ? ? ? win32api.MessageBox(0, sMessageText, ""提示"", win32con.MB_ICONWARNING)"
? ? ? ? ? ? return START_FAILD
"? ? ? ? self.setTimer(self.timerId, 1000, self._onTimerFun)#啟動計時器"
? ? ? ? self.subSymbol(self.symbol)? # 訂閱行情
? ? # ----------------------------------------------------------------------
? ? def onStop(self):
? ? ? ? """在策略停止時被調用。用戶可繼承實現。"""
? ? ? ? pass
? ? # ----------------------------------------------------------------------
"? ? def onTick(self, tickInfo):"
? ? ? ? """收到tick推送的處理函數,用戶可繼承實現。
? ? ? ? tickInfo為TickInfo類型數據"""
? ? ? ? if self.forbidTrade or self.bOpening:#開倉還未返回,則不加新的倉
? ? ? ? ? ? return
? ? ? ? if not self.bStartTraded: #第一次開倉
? ? ? ? ? ? self.bStartTraded = True
? ? ? ? ? ? marketPrice = tickInfo.upperLimit if self.tradeDirect == 0 else tickInfo.lowerLimit#以漲跌停價模擬市價
? ? ? ? ? ? self.logs('第一次開倉,價格='+str(marketPrice))? ? ? ? ? ? ? ? self.forbidTrade = True #禁止新的交易? ? ? ? ? ? ? ? self.unSubSymbol(self.symbol)? # 訂閱行情? ? ? ? ? ? ? ? self._cancelAllPendingOrder()? # 移除所有的未成交委托? ? ? ? ? ? ? ? self.killTimer(timerId)#移除定時器? ? ? ? ? ? ? ? return 0
? ? ? ? ? ? return 1? ? ? ? except Exception as e:? ? ? ? ? ? self.logs("Exception: onStart " + str(e))
?
-
金字塔客服:
這個抱歉需要您自己完成了