#板块偏离度定在0.5%
g.inter = 0.005
# 每天交易前调用
def before_trading_start(context):
#每天开盘前,抓取“中、农、工、建”昨天收盘价格
g.df_last = history(1, unit='1d', field='close', security_list=bank_stocks, df=False, skip_paused=True, fq='pre')
# 每个单位时间(如果按天回测,则每天调用一次,如果按分钟,则每分钟调用一次)调用一次
def handle_data(context, data):
raito = []
for code in bank_stocks:
raito.append( data[code].close / g.df_last[code][-1] )
#rotio就是每分钟收盘价与昨日收盘价的比值,也就是实时涨幅
#某只银行股现在价格与昨天收盘价比较
if not context.portfolio.positions.keys():
#当没有持仓时
if max(raito) - min(raito) > g.inter:
#最大涨幅大于最小涨幅0.5%以上的时候,买入最小涨幅股票
min_index = raito.index(min(raito))
order_value(bank_stocks[min_index], context.portfolio.total_value)
log.info("空仓买入 %s",bank_stocks[min_index])
else:
#当有持仓时
code = context.portfolio.positions.keys()[0]
index = bank_stocks.index(code)
#index就是持仓股票的股票代码
if raito[index] - min(raito) > g.inter:
#持仓股票涨幅大于最小涨幅0.5%以上时,卖出持仓股票,买入最小涨幅股票
order_target(code, 0)
log.info("卖出 %s",code)
min_index = raito.index(min(raito))
order_value(bank_stocks[min_index], context.portfolio.total_value)
log.info("调仓买入 %s",bank_stocks[min_index])
我想在普通金字塔(也就是PEL语言的金字塔里)回测以上Python策略,请问如何改写呢?求各位高手帮忙