classBasicTemplateAlgorithm(QCAlgorithm):
”’交易算法继承自QCAlgorithm类。”’
defInitialize(self):
”’在此函数中初始化数据、资金、交易时间和交易频率等相关信息。”’
pass
defOnData(self,data):
”’交易算法的主要入口。可以在其中完成你的交易算法。
data:一个Slice对象,其每一个键对应此键表示的股票数据。
”’
pass
从以上模板可以看出,你的算法一般是继承自QCAlgorithm类(或者其子类)的。QCAlgorithm类提供了一个交易算法的基础结构以及很多辅助的属性和方法。下面是QCAlgorithm类提供的与交易相关的一些主要属性和方法:
classQCAlgorithm:
self.Securities#ArrayofSecurityobjects.
self.Portfolio#ArrayofSecurityHoldingobjects
self.Transactions#Transactionshelper
self.Schedule#Schedulinghelper
self.Notify#Email,SMShelper
self.Universe#Universehelper
#初始化函数,建立数据、资金、交易时间等信息
defInitialize:
#其他事件处理函数
defOnData(self,slice):
defOnEndOfDay(self,symbol):
defOnEndOfAlgorithm():
大家在上一个模板交易算法中只实现了Initialize和OnData方法,这是完成一个交易算法最基本的要素,你还可以根据需要实现OnEndOfDay,OnEndOfAlgorithm等其他方法。
使用以上模板,并参考QuantConnect的文档和一些交易算法实例,应该不难实现一个基本的交易算法。完成算法后,可以点击Play按钮回测一下,看看实际的效果,并根据回测日志有针对性地加以改进。