双均线基金策略
由iquant创建,最终由iquant 被浏览 71 用户
策略介绍
金叉死叉策略其实就是双均线策略。策略思想是:当短期均线上穿长期均线时,形成金叉,此时买入股票。当短期均线下穿长期均线时,形成死叉,此时卖出股票。研究表明,双均线系统虽然简单,但只要严格执行,也能长期盈利。
策略构建步骤
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
\