
Die Strategie basiert auf einem Trend-Tracking-Strategie, die auf einem mehrfachen System von Mittellinien basiert, kombiniert mit einem Mechanismus zur Bestätigung der Trendstärke und zur Erfassung der Volatilität. Die Strategie verwendet ein 5-Zyklus-, 25-Zyklus- und 75-Zyklus-Dreiecksystem als Kern, um starke Trends durch den ADX-Indikator zu filtern und gleichzeitig ein System zur Überwachung der schnellen Schwankungen zu integrieren, um zeitnahe Gewinne zu erzielen. Diese mehrschichtige Handelsmechanismus kann Markttrends effektiv identifizieren und zu geeigneten Zeiten handeln.
Die Strategie basiert auf drei zentralen Mechanismen:
Spezifische Handelsregeln:
Einführung von Adaptionsparametern:
Erhöhung der Trendbestätigung:
Optimierung der Stop-Loss:
Marktumgebung unterteilt sich in:
Die Strategie baut ein vollständiges Handelssystem auf, indem sie die drei Dimensionen des Multiple-Gleichgewichtssystems, der Trendstärkenbestätigung und der Volatilitätsüberwachung umfasst. Die Kernvorteile der Strategie liegen in ihren mehrschichtigen Bestätigungsmechanismen und ihrem flexiblen Risikokontrollsystem. Durch die Bereitstellung von Optimierungsempfehlungen kann die Strategie ihre Anpassungsfähigkeit und Stabilität weiter verbessern. In der praktischen Anwendung wird empfohlen, die Parameter entsprechend der spezifischen Markteigenschaften zu optimieren und in Verbindung mit einer vernünftigen Kapitalmanagementstrategie zu verwenden.
/*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)