Strategi ini adalah sistem mengikuti tren yang didasarkan pada beberapa moving average, menggabungkan mekanisme konfirmasi kekuatan tren dan penangkapan volatilitas. Ini menggunakan sistem rata-rata bergerak tiga kali 5, 25, dan 75 periode sebagai intinya, menyaring tren kuat melalui indikator ADX, dan mengintegrasikan sistem pemantauan volatilitas cepat untuk mengambil keuntungan tepat waktu. Mekanisme perdagangan multi-lapisan ini secara efektif mengidentifikasi tren pasar dan mengeksekusi perdagangan pada waktu yang tepat.
Strategi ini bekerja pada tiga mekanisme inti:
Aturan perdagangan khusus:
Memperkenalkan Adaptive Parameter:
Konfirmasi Tren yang Ditingkatkan:
Mengoptimalkan Pengambilan Keuntungan / Kerugian:
Klasifikasi Lingkungan Pasar:
Strategi ini membangun sistem perdagangan yang lengkap melalui beberapa rata-rata bergerak, konfirmasi kekuatan tren, dan dimensi pemantauan volatilitas. Keuntungannya utama terletak pada mekanisme konfirmasi multi-level dan sistem kontrol risiko yang fleksibel. Melalui saran optimalisasi yang disediakan, strategi dapat lebih meningkatkan kemampuan beradaptasi dan stabilitasnya. Dalam aplikasi praktis, pedagang disarankan untuk mengoptimalkan parameter sesuai dengan karakteristik pasar tertentu dan menggabungkannya dengan strategi manajemen uang yang wajar.
/*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)