如何使用Python在QuantConnect中實現基本交易算法?
用 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 按鈕回測一下,看看實際的效果,并根據回測日志有針對性地加以改進。