一、init(必须实现)
init(context)
context对象是全文对象,我也不懂是啥意思,以前学掘金量化也有这个,大概是连接上下文通用的意思吧。
用法是context.xx,整个函数都可以调用这个东西,可以是对象,方法,属性。
按金字塔的话说这个是各种初始化配置,方便算法中所有方法之间传递。
注意事项:
1、在回测模式backtest和实盘模式paper_trading中回测和实时交易都只会在启动时触发一次,仅一次!
2、pel_call被pel公式调用时,在公式初次加载时被触发一次。
例子:
def init(context):
context.cash.limit = 5000
你可以定义各种初始对象,属性,方法。
反正记住这个基本方法是初始化用的就行。
二、handle_bar(必须实现)
bar数据更新,就会自动触发这个方法的调用。
策略的具体逻辑就在这个方法内实现,在实时交易中,该函数在交易时间内会更具选择运行模式被触发。
注意事项:
尽量不要在这个方法底下放入查询类函数,因为可能会不断被触发,我的理解是有bar更新就会触发。
api说查询类逻辑尽量在init()中执行
总的来说,把策略整体比作文章,那这个方法底下写的就是主段落,写的是策略本身逻辑。
必须实现的基本方法就两个,一个是init(context),另一个就是handle_bar(context)
其他的方法