可视化改过来的策略运行失败('TradingAlgorithm' object has no attribute 'atr_data')

策略分享
标签: #<Tag:0x00007fcf6834bec8>

(chidaye) #1
克隆策略
In [ ]:
# 1. 策略基本参数

# 回测起始时间
start_date = '2014-01-01'
# 回测结束时间
end_date = '2017-03-01'
# 策略比较参考标准,以沪深300为例
benchmark = '000300.INDX'
# 证券池 以贵州茅台为例
instruments = ['600519.SHA']
# 起始资金
capital_base = 100000

# 2. 策略主体函数

# 初始化虚拟账户状态,只在第一个交易日运行
def initialize(context):
    # 设置手续费,买入时万3,卖出是千分之1.3,不足5元以5元计
    context.set_commission(PerOrder(buy_cost=0.0003, sell_cost=0.0013, min_cost=5))

# 策略交易逻辑,每个交易日运行一次
def handle_data(context, data):
    # 在这里添加策略代码
    for instrument in instruments:
        # 字符型股票代码转化成BigQuant回测引擎所需的股票代码
        instrument = context.symbol(instrument)
        # 目前持仓数量
        curr_position =  context.portfolio.positions[instrument].amount
        if curr_position == 0:
            # 买入10W股票
            order_value(instrument, capital_base)

# 3. 启动回测

# 策略回测接口: https://bigquant.com/docs/module_trade.html
m = M.trade.v3(
    instruments=instruments,
    start_date=start_date,
    end_date=end_date,
    initialize=initialize,
    handle_data=handle_data,
    # 买入订单以开盘价成交
    order_price_field_buy='open',
    # 卖出订单以开盘价成交
    order_price_field_sell='open',
    capital_base=capital_base,
    benchmark=benchmark,
)

(胖大帅) #2


在initialize函数中,将atr_data 修改为context.atr_data 就可以啦。


(chidaye) #3

不行哦,还是出现错误


(iQuant) #4

您好,我私信您帮您看一下问题。