用 Python 在 QuantConnect 中实现基本交易算法是比较容易的,大家要做的是遵循一定的模板格式,关注于交易算法本身,其他的事情 QuantConnect 的 LEAN 引擎会为大家管理好。下面是在 QuantConnect 中实现一个交易算法的基本模板:
class BasicTemplateAlgorithm(QCAlgorithm):
”’交易算法继承自 QCAlgorithm 类。”’
def Initialize(self):
”’在此函数中初始化数据、资金、交易时间和交易频率等相关信息。”’
pass
def OnData(self, data):
”’交易算法的主要入口。可以在其中完成你的交易算法。
data: 一个 Slice 对象,其每一个键对应此键表示的股票数据。
”’
pass
从以上模板可以看出,你的算法一般是继承自 QCAlgorithm 类(或者其子类)的。QCAlgorithm 类提供了一个交易算法的基础结构以及很多辅助的属性和方法。下面是 QCAlgorithm 类提供的与交易相关的一些主要属性和方法:
class QCAlgorithm:
self.Securities # Array of Security objects.
self.Portfolio # Array of SecurityHolding objects
self.Transactions # Transactions helper
self.Schedule # Scheduling helper
self.Notify # Email, SMS helper
self.Universe # Universe helper
# 初始化函数,建立数据、资金、交易时间等信息
def Initialize:
# 其他事件处理函数
def OnData(self, slice):
def OnEndOfDay(self, symbol):
def OnEndOfAlgorithm():
大家在上一个模板交易算法中只实现了 Initialize 和 OnData 方法,这是完成一个交易算法最基本的要素,你还可以根据需要实现 OnEndOfDay,OnEndOfAlgorithm 等其他方法。
使用以上模板,并参考 QuantConnect 的文档和一些交易算法实例,应该不难实现一个基本的交易算法。完成算法后,可以点击 Play 按钮回测一下,看看实际的效果,并根据回测日志有针对性地加以改进。