本策略是一个基于多重均线系统的趋势跟踪策略,结合了趋势强度确认和波动性捕捉机制。策略使用5周期、25周期和75周期三重均线系统作为核心,通过ADX指标筛选强趋势,同时整合了快速波动监测系统来实现及时获利了结。这种多层次的交易机制能够有效地识别市场趋势,并在合适的时机进行交易。
策略运作基于三个核心机制: 1. 多重均线系统:使用5SMA和25SMA的交叉作为主要入场信号,75SMA作为趋势过滤器,确保交易方向与主趋势保持一致。 2. 趋势强度确认:利用ADX指标,要求ADX数值大于20,确保只在趋势明确时进行交易。 3. 波动监测系统:通过监控价格变动幅度(0.6%阈值),在出现剧烈波动时及时锁定利润。
具体交易规则: - 多头入场:5SMA上穿25SMA,且价格在75SMA之上,ADX>20 - 空头入场:5SMA下穿25SMA,且价格在75SMA之下,ADX>20 - 出场条件:出现0.6%以上的剧烈波动,或出现反向入场信号
引入自适应参数:
增强趋势确认机制:
优化止盈止损:
市场环境分类:
该策略通过多重均线系统、趋势强度确认和波动监测三个维度构建了一个完整的交易系统。策略的核心优势在于其多层次的确认机制和灵活的风险控制系统。通过提供的优化建议,策略可以进一步提升其适应性和稳定性。在实际应用中,建议交易者根据具体市场特征对参数进行优化,并结合合理的资金管理策略使用。
/*backtest start: 2024-10-01 00:00:00 end: 2024-10-31 23:59:59 period: 2h basePeriod: 2h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("5SMA-25SMA Crossover Strategy with ADX Filter and Sudden Move Profit Taking", overlay=true) // パラメータの設定 sma5 = ta.sma(close, 5) sma25 = ta.sma(close, 25) sma75 = ta.sma(close, 75) // ADXの計算 length = 14 tr = ta.tr(true) plus_dm = ta.rma(math.max(ta.change(high), 0), length) minus_dm = ta.rma(math.max(-ta.change(low), 0), length) tr_sum = ta.rma(tr, length) plus_di = 100 * plus_dm / tr_sum minus_di = 100 * minus_dm / tr_sum dx = 100 * math.abs(plus_di - minus_di) / (plus_di + minus_di) adx = ta.rma(dx, length) // ロングとショートのエントリー条件 longCondition = ta.crossover(sma5, sma25) and close > sma75 and adx > 20 shortCondition = ta.crossunder(sma5, sma25) and close < sma75 and adx > 20 // 急激な変動を検知する条件(ここでは、前のローソク足に比べて0.6%以上の値動きがあった場合) suddenMove = math.abs(ta.change(close)) > close[1] * 0.006 // ポジション管理 if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short) // 急激な変動があった場合、ポジションを利益確定(クローズ)する if (strategy.position_size > 0 and suddenMove) strategy.close("Long") if (strategy.position_size < 0 and suddenMove) strategy.close("Short") // エグジット条件 if (strategy.position_size > 0 and shortCondition) strategy.close("Long") if (strategy.position_size < 0 and longCondition) strategy.close("Short") // SMAとADXのプロット plot(sma5, color=color.blue, title="5SMA") plot(sma25, color=color.red, title="25SMA") plot(sma75, color=color.green, title="75SMA") plot(adx, color=color.orange, title="ADX") hline(20, "ADX Threshold", color=color.gray, linestyle=hline.style_dotted)