低买高卖的动量交易策略


创建日期: 2024-01-18 15:17:11 最后修改: 2024-01-18 15:17:11
复制: 0 点击次数: 310
1
关注
1107
关注者

低买高卖的动量交易策略

概述

本策略通过计算EMA均线、MACD指标以及单日涨幅,综合判断市场的突破信号,实现低买高卖的动量交易策略。

策略原理

当快速EMA线上穿慢速EMA线时,视为市场处于上升趋势,产生买入信号;当MACD指标的差离值上穿0轴时,也产生买入信号,实现策略的多头开仓。

另外,如果单日收盘价相比开盘价上涨超过10%,也会产生买入信号,追捧市场中的突破行情。

在开仓后,如果价格下跌幅度超过10%,则止损;如果盈利达到45%则止盈。

优势分析

这是一个典型的趋势跟踪策略,能够抓住市场中力度突破后的上涨行情,盈利潜力较大。具体优势如下:

  1. 使用EMA均线实现了趋势判断,避免在震荡市场中错误开仓
  2. MACD指标确保买入信号更加可靠
  3. 单日涨幅条件可以抓住行情爆发点
  4. 止损止盈设置合理,可以很好控制风险

风险分析

尽管该策略设计合理,但仍有一定的风险需要应对:

  1. 突破信号判断如果不当,可能产生空头损失
  2. 市场止跌反弹时,也会产生错误信号
  3. 止损点设置过大,亏损风险增加
  4. 突破后如果没有足够的后续行情支撑,可能止盈不足

为降低上述风险,可以考虑优化移动止损策略,或结合其他指标如成交量进行信号过滤。

优化方向

该策略还有进一步优化的空间:

  1. 增加成交量指标,确保有足够的交易量支撑趋势
  2. 对MACD指标参数进行优化,提高指标敏感度
  3. 测试不同的EMA周期参数组合
  4. 增加自适应止损机制
  5. 优化止盈点,实现更高效率的现金管理

通过参数调整、指标组合等方法进一步完善,可以大幅提升策略的稳定性和盈利能力。

总结

本策略整体来说,具有简单实用、盈利潜力大的特点。通过对市场突破点的判断,能够有效抓住行情上涨趋势,回撤控制也比较合理。在后续的策略优化中,继续推动参数调整、止损止盈设计的改进,使其成为一个值得长期应用的量化交易策略。

策略源码
/*backtest
start: 2023-01-11 00:00:00
end: 2024-01-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Alt Coins", overlay=true)

//Simple Alt Coin Trading Strategy//
// by @ShanghaiCrypto //

////EMA////
fastLength = input(5)
slowLength = input(12)
baseLength = input(50)
price = close

emafast = ema(price, fastLength)
emaslow = ema(price, slowLength)
emabase = ema(price, baseLength)

///MACD////
MACDLength = input(9)
MACDfast = input(12)
MACDslow = input(26)
MACD = ema(close, MACDfast) - ema(close, MACDslow)
aMACD = ema(MACD, MACDLength)
delta = MACD - aMACD

////PUMP////
OneCandleIncrease = input(10, title='Gain %')
pump = OneCandleIncrease/100

////Profit Capture and Stop Loss//////
stop = input(10.0, title='Stop Loss %', type=float)/100
profit = input(45.0, title='Profit %', type=float)/100
stop_level = strategy.position_avg_price * (1 - stop)
take_level = strategy.position_avg_price * (1 + profit)

////Entries/////
if crossover(emafast, emaslow)
    strategy.entry("Cross", strategy.long, comment="BUY")

if (crossover(delta, 0))
    strategy.entry("MACD", strategy.long, comment="BUY")
    
if close > (open + open*pump)
    strategy.entry("Pump", strategy.long, comment="BUY")

/////Exits/////
strategy.exit("SELL","Cross", stop=stop_level, limit=take_level)
strategy.exit("SELL","MACD", stop=stop_level, limit=take_level)
strategy.exit("SELL","Pump", stop=stop_level, limit=take_level)

////Plots////
plot(emafast, color=green)
plot(emaslow, color=red)
plot(emabase, color=yellow)
plot(take_level, color=blue)
plot(stop_level, color=orange)
更多内容