0.1.2 量化策略入门-编写第一个量化策略 附解析和代码

用户头像Reflecti0N
2023-08-07 发布
# 双均线策略
# 策略逻辑:当五日均线与二十日均线金叉时买入,当五日均线与二十日均线死叉时卖出。
# 初始化函数,全局只运行一次
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)
收益&风险
源码

评论