实训空间使用文档

6-双均线交易策略

由small_q创建,最终由bqadm 被浏览 2 用户

策略介绍

双均线策略是一种简单而又广泛使用的技术分析工具,主要用于识别市场趋势的变化和生成交易信号。这种策略涉及两条移动平均线——一条短期(快速)和一条长期(慢速)——并通过观察这两条线的交叉点来决定买入或卖出的时机。

策略流程

  1. 筛选条件:将5日平均收盘价作为短线,40日平均收盘价作为长线;短线上穿长线买入,长线下穿短线卖出
  2. 策略回测:开盘买入,收盘卖出,回测时间为2022-01-01至2024-04-26

策略实现

输入特征模块

  • 将5日均线作为短线,m_avg(close, 5) AS _mean_short;40日均线作为长线,m_avg(close, 40) AS _mean_long
  • 过滤条件中筛选股票代码为贵州茅台(600519.SH)

数据抽取模块

  • 将数据抽取出来,在这当中设置起始时间为2022-01-01,结束时间为2024-04-26


\

BigTrader模块

  • m4”BigTrader“模块中,实现交易逻辑,依据发出信号进行买卖。
  • K线处理函数
def bigquant_run(context, data):
    
    import pandas as pd

    try:
        # 获取当前日期
        current_date = data.current_dt.strftime("%Y-%m-%d")
        # 获取当日数据
        current_day_data = context.data[context.data["date"] == current_date]
        if len(current_day_data) == 0:
            return

    
        buy_sig = current_day_data['buy_sig'].iloc[0]
        sell_sig = current_day_data['sell_sig'].iloc[0]
        
        # 获取当前已持有股票
        current_hold_instruments = set(context.get_account_positions().keys())

        ins = '600519.SH'
        # 若长线大于短线且有持仓
        if sell_sig == 1 and ins in current_hold_instruments:
            context.order_target(ins, 0)
        
        # 若短线大于长线且没有持仓
        if buy_sig == 1 and ins not in current_hold_instruments:
            context.order_target_percent(ins, 0.99)
    except:
        pass

策略代码

https://fudan.bigquant.com/codesharev3/0f7c948e-457d-494c-98a1-32e64c34c64a

\

{link}