# 双均线策略
# 策略逻辑:当五日均线与二十日均线金叉时买入,当五日均线与二十日均线死叉时卖出。
# 初始化函数,全局只运行一次
def init(context):
# 设置要操作的股票:贵州茅台
context.security = '600519.SH'
# 设置买卖条件,每个交易频率(日/分钟/tick)调用一次
def handle_bar(context, bar_dict):
# 获取股票过去20天的收盘价数据
closeprice = history(context.security, ['close'], 20, '1d', False, 'pre', is_panel=1)
# 计算20日均线
MA20 = closeprice['close'].mean()
# 计算5日均线
MA5 = closeprice['close'].iloc[-5:].mean()
# 如果5日均线大于20日均线,则全仓买入股票
if MA5 > MA20 :
# 记录这次买入
log.info("买入 %s" % (context.security))
# 按目标市值占比下单
order_target_percent(context.security, 1)
# 如果5日均线小于20日均线,则清仓股票
elif MA20 > MA5 :
# 记录这次卖出
log.info("卖出 %s" % (context.security))
# 卖出所有股票,使这只股票的最终持有量为0
order_target(context.security, 0)