量化交易python培训学费费用股票量化交易Python包下单策略
下载地址 https://share.weiyun.com/tIMc8ewb
资料目录 Python股票量化投资视频课程(25集完结) Python股票量化策略培训预习材料(视频讲解+素材) 《Python机器学习与量化投资》电子书 《Python量化交易》.pdf 《Python与量化投资:从基础到实战》.pdf 《零起点TensorFlow与量化交易》.pdf 机器学习在量化投资中的应用研究_汤凌冰著 pdf 量化交易之路:用Python做股票量化分析(高清).pdf 量化投资以Python为工具.pdf 举例 下面分别是构造函数、初始化策略、启动策略、停止策略和收到 Tick 推送。 #01----------------------------------------------------- def __init__(self,ctaEngine, setting): '''构造函数''' super(DoubleMaStrategy,self).__init__(ctaEngine,setting) # 针对可变对象类型的变量,需要在这里初始化 self.closeArray = np.zeros(21) #02----------------------------------------------------- def onInit(self): '''初始化策略''' self.writeCtaLog(u'双均线策略初始化') initData = self.loadBar(self.initDays) for bar in initData: self.onBar(bar) self.putEvent() #03--------------------------------------------------- def onStart(self): '''启动策略''' self.writeCtaLog(u'双均线策略启动') self.putEvent() #04--------------------------------------------------- def onStop(self): '''停止策略''' self.writeCtaLog(u'双均线策略停止') self.putEvent() #05----------------------------------------------------- def onTick(self): '''收到行情Tick 推送''' # 因为只是展示如何使用框架,所以这里直接跳过,实盘需要用户基于Tick 数据自行合成K 线 pass
具体的双均线策略就在 onBar 函数上。 #06-------------------------------------------------------- def onBar(self, bar): '''收到Bar 推送''' #缓存数据 self.closeArray[0:20] = self.closeArray[1: 21] self.closeArray[-1]= bar.close self.barCount += 1 Python 量化交易 198 if self.barCount < self.initDays: #若还没过36 天,即插入21 条日线,直接返回 return #计算当日快慢均线和昨日快慢均线 self.ma5 = self.closeArray[16: 21].mean() #当日短均线 self.LastMa5 = self.closeArray[15: 20].mean() #昨日短均线 self.ma20 = self.closeArray[1: 21].mean() #当日长均线 self.LastMa20 = self.closeArray[0: 20].mean() #昨日长均线 # 判断买卖 crossOver = self.ma5 > self.ma20 and self.LastMa5 <= self.LastMa20 #金叉上穿 crossBelow = self.ma5 <self.ma20 and self.LastMa5 >= self.LastMa20 #死叉下穿 # 金叉和死叉的条件是互斥的。 # 所有的委托均以K 线收盘价委托,为了保证回测成交超价5%发单。 if crossOver: # 如果金叉时手头没有持仓,则直接做多 if self.pos == 0: self.buy(bar.close*1, 10000) # 如果有空头持仓,则先平空,再做多 elif self.pos <0: self.cover(bar.close*1, 10000) self.buy(bar.close*1, 10000) #死叉相反 if crossBelow: if self.pos == 0: self.short(bar.close*1, 10000) elif self.pos >0: self.sell(bar.close*1, 10000) self.short(bar.close*1, 10000) self.putEvent()
|