BigQuant使用文档

双均线基金策略

由iquant创建,最终由iquant 被浏览 84 用户

策略介绍

金叉死叉策略其实就是双均线策略。策略思想是:当短期均线上穿长期均线时,形成金叉,此时买入股票。当短期均线下穿长期均线时,形成死叉,此时卖出股票。研究表明,双均线系统虽然简单,但只要严格执行,也能长期盈利。

策略构建步骤

1、确定标的池和回测时间

  • 通过m1输入特征模块的过滤条件中,输入要回测的标的资产。

  • m2数据抽取模块抽取数据,确定回测的起止日期。

2、确定买卖原则

当短期均线上穿长期均线时,形成金叉,此时买入标的资产。当短期均线下穿长期均线时,形成死叉,此时卖出标的资产。

短线:m_avg(close, 5) AS _mean_short

长线:m_avg(close, 10) AS _mean_long

3、模拟回测

通过 BigTrader模块中的初始化函数定义交易手续费。 通过BigTrader 模块中的K线处理函数形成金叉买入标的资产。形成死叉卖出标的资产,开盘买入收盘卖出。并打印交易日志。

  • 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 = '159941.SZ'
        # 若长线大于短线且有持仓
        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

4、标的

广发纳指100ETF:159941.SZ

5、仓位

全仓,100%

策略代码

https://bigquant.com/codesharev2/a6d7be23-6c9c-4a7e-ba86-dc8e9742db49

\

标签

双均线策略
{link}