需要实现策略对象的两个方法:initialize 和 handle_data.
initialize 主要用于设置初始化回测的一些设置,如滑点、基准等。
handle_data 用于实现策略的逻辑。
以下是一个简单的策略示例:
import pandas as pd
# 策略初始化方法, 只在开始执行回测时运行一次
def initialize(context):
# 使用 标普500 ETF 作为策略基准
set_benchmark(symbol('spy'))
def handle_data(context, data):
# 获取历史五日收盘价
history = data.history(symbol('amzn'), 'close', 5,'1d')
# 计算五日均线
ma5 = history.mean()
# 判断收盘价大于五日均线,买入
if history.iloc[-1]>ma5:
order_target_value(symbol('amzn'), 1000000)
else:
order_target_value(symbol('amzn'),0)
def initialize(context):
pass
初始化方法只在策略开始运行时执行一次。用于设置滑点、比较基准等内容。
参数
返回
def handle_data(context, data):
pass
在日级回测(每日运行一次)中, 每个交易日运行一次。
参数
返回
def before_trading_start(context, data):
pass
在每个交易日的 handle_data 开始执行前运行。
参数
返回