6-双均线交易策略
由small_q创建,最终由bqadm 被浏览 2 用户
策略介绍
双均线策略是一种简单而又广泛使用的技术分析工具,主要用于识别市场趋势的变化和生成交易信号。这种策略涉及两条移动平均线——一条短期(快速)和一条长期(慢速)——并通过观察这两条线的交叉点来决定买入或卖出的时机。
策略流程
- 筛选条件:将5日平均收盘价作为短线,40日平均收盘价作为长线;短线上穿长线买入,长线下穿短线卖出
- 策略回测:开盘买入,收盘卖出,回测时间为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
\