设置投资目标
点击编写策略
->新建
选择可视化AI策略,进入如下界面
选择
自动标注股票
模块,设置投资目标,假设我们的投资目标为未来7
天收益率最高,股票持仓时间为3
天,则在标注模块中修改计算收益代码
# 计算收益:5日收盘价(作为卖出价格)除以明日开盘价(作为买入价格)
shift(close, -7) / shift(open, -1)
在回测模块中修改持仓天数和每支股票可占用资金比例,这里设置为30%
# 回测引擎:初始化函数,只执行一次
def bigquant_run(context):
# 加载预测数据
context.ranker_prediction = context.options['data'].read_df()
# 系统已经设置了默认的交易手续费和滑点,要修改手续费可使用如下函数
context.set_commission(PerOrder(buy_cost=0.0003, sell_cost=0.0013, min_cost=5))
# 预测数据,通过options传入进来,使用 read_df 函数,加载到内存 (DataFrame)
# 设置买入的股票数量,这里买入预测股票列表排名靠前的5只
stock_count = 5
# 每只的股票的权重,如下的权重分配会使得靠前的股票分配多一点的资金,[0.339160, 0.213986, 0.169580, ..]
context.stock_weights = T.norm([1 / math.log(i + 2) for i in range(0, stock_count)])
# 设置每只股票占用的最大资金比例
context.max_cash_per_instrument = 0.3
context.options['hold_days'] = 3
策略运行
1.运行自动标注模块
, 需要等待一段时间,提示充会员(QAQ)
得到股票的rank序列(在
label
)中,当label
的值越大表示该股票越值得持有
2.设置策略训练时间区间为2010年至2014年,在代码列表(v1)
中设置;测试时间区间为2015年整年,在代码列表(v2)
中设置即可