量化交易:基于QMT 的双均线策略

哈喽,大家好,我是木头左!

快慢双均线策略简介

快慢双均线策略是一种基于均线的技术分析方法,它通过计算两条不同周期的移动平均线(快线和慢线)之间的交叉点来判断市场的买入和卖出时机。当快线从下向上穿过慢线时,形成金叉,表示市场即将上涨,此时可以买入;当快线从上向下穿过慢线时,形成死叉,表示市场即将下跌,此时可以卖出。

Python代码实现

获取持仓数据

需要获取账户的持仓数据。这里使用get_trade_detail_data函数来获取账户的持仓信息,并将其存储在holdings变量中。然后,将持仓数据转换为字典格式,以便于后续处理。

holdings = get_trade_detail_data(A.acct, A.acct_type, 'position')
holdings = {i.m_strInstrumentID + '.' + i.m_strExchangeID : i.m_nCanUseVolume for i in holdings}

获取行情数据

接下来,需要获取股票的历史行情数据。这里使用get_history_data函数来获取指定股票的日线行情数据,并将其存储在data变量中。然后,从data中提取出指定股票的收盘价列表,并检查其长度是否足够。如果长度不足,说明股票可能新上市或最近有停牌,此时跳过运行。

# 获取行情数据
data = C.get_history_data(max(A.line1, A.line2)+1, '1d', 'close',dividend_type='front_ratio')
close_list = data[A.stock]
if len(close_list) < max(A.line1, A.line2)+1:
    print('行情长度不足(新上市或最近有停牌) 跳过运行')
    return

计算均线

为了计算短期和长期均线,需要先计算指定天数内的收盘价均值。这里分别计算了短期均线(快线)和长期均线(慢线)。

pre_line1 = np.mean(close_list[-A.line1-1: -1])
pre_line2 = np.mean(close_list[-A.line2-1: -1])
current_line1 = np.mean(close_list[-A.line1:])
current_line2 = np.mean(close_list[-A.line2:])

判断交易信号

根据双均线策略,当快线上穿慢线时,认为是一个买入信号;当快线下穿慢线时,认为是一个卖出信号。以下是具体的判断逻辑:

  1. 如果当前无持仓,且满足以下条件,则发出买入委托:

    • 快线穿过慢线
    • 买入数量不超过可用资金
    • 买入数量为100的整数倍
  2. 如果当前持有该股票,且满足以下条件,则发出卖出委托:

    • 快线下穿慢线

以下是具体的交易逻辑实现:

# 如果快线穿过慢线,则买入委托 当前无持仓 买入
vol = int(A.amount / close_list[-1] / 100) * 100 #买入数量 向下取整到100的整数倍
if A.amount < available_cash and vol >= 100 and A.stock not in holdings and pre_line1 < pre_line2 and current_line1 > current_line2:
    #下单开仓 ,参数说明可搜索PY交易函数 passorder
    msg = f"双均线实盘 {A.stock} 上穿均线 买入 {vol}股"
    passorder(A.buy_code, 1101, A.acct, A.stock, 14, -1, vol, '双均线实盘', 1 , msg, C)
    print(msg)
    A.waiting_list.append(msg)

#如果快线下穿慢线,则卖出委托
if A.stock in holdings and holdings[A.stock] > 0 and pre_line1 > pre_line2 and current_line1 < current_line2:
    msg = f"双均线实盘 {A.stock} 下穿均线 卖出 {holdings[A.stock]}股"
    passorder(A.sell_code, 1101, A.acct, A.stock, 14, -1, holdings[A.stock], '双均线实盘', 1 , msg, C)
    print(msg)
    A.waiting_list.append(msg)

快慢双均线策略的优点

  1. 简单易懂:快慢双均线策略的原理非常简单,只需要计算两条移动平均线的交叉点即可,不需要复杂的数学模型和专业知识。

  2. 适应性强:快慢双均线策略适用于各种金融市场和投资品种,无论是股票、期货还是外汇等,都可以使用该策略进行交易。

  3. 信号明确:快慢双均线策略的信号非常明确,金叉表示买入,死叉表示卖出,投资者可以很容易地根据信号进行操作。

快慢双均线策略的缺点

  1. 滞后性:由于移动平均线是通过对过去一段时间的价格进行平滑处理得到的,因此存在一定的滞后性。当市场发生快速变化时,移动平均线可能无法及时反映市场的变化,导致交易信号出现延迟。

  2. 假信号:快慢双均线策略可能会出现假信号,即金叉或死叉出现后,市场价格并没有按照预期的方向运行,而是出现了反转。这种情况下,投资者可能会因为错误的信号而产生亏损。

  3. 参数选择:快慢双均线策略的效果受到快慢天数等参数选择的影响,选择合适的参数对于提高策略的有效性至关重要。然而,参数的选择往往是主观的,不同的投资者可能会有不同的选择,导致策略效果的差异。

  4. 过度交易:由于快慢双均线策略的信号较为明确,投资者可能会频繁地进行买卖操作,导致过度交易。过度交易不仅会增加交易成本,还可能导致投资者在市场波动时失去耐心,从而影响投资决策。

如何优化策略?

虽然快慢双均线策略在很多情况下都能取得不错的效果,但是过于简单,对于人为制造的图形形态,会有误判:

  1. 调整快线和慢线的周期:不同的市场和股票可能适用不同的周期,可以尝试调整快线和慢线的周期,以找到最佳的组合。

  2. 结合其他技术指标:除了均线之外,还可以考虑结合其他技术指标,如MACD、RSI等,以提高策略的准确性。

感谢大家阅读本文,希望这篇文章能够对大家有所启发,帮助大家在量化交易的道路上越走越远。如果你喜欢这篇文章,请点赞、分享和关注的博客,将为大家带来更多有价值的内容。期待与大家在未来的日子里共同成长,实现财富的增值!

我是木头左,感谢各位童鞋的点赞、收藏,我们下期更精彩!

  • 22
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木头左

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值