""" 策略思路
使用 talib 计算个股的均线
如果10日均线大于20日均线则全仓买入
如果10日均线小于20日均线的0.98则空仓
基准与交易标的相同,超额收益完全来源于择时
"""
import talib as ta
def initialize(context):
print('初始化策略')
set_benchmark(symbol('SPY'))
context.asset = symbol('jd')
def before_trading_start(context, data):
history = data.history(assets=context.asset,
fields='close',
bar_count=20,
frequency='1d')
log.info(history.tail())
short_ma = ta.MA(history.values,timeperiod=10)[-1]
long_ma = ta.MA(history.values,timeperiod=20)[-1]
context.short_ma = short_ma
context.long_ma = long_ma
def handle_data(context, data):
short_ma = context.short_ma
long_ma = context.long_ma
print(short_ma, long_ma)
total_value = context.portfolio.portfolio_value
if short_ma > long_ma:
log.info('多头趋势,全仓买入')
order_target_value(context.asset, total_value)
elif short_ma < 0.98 * long_ma:
log.info('空头趋势,不持仓')
order_target_value(context.asset, 0)