この戦略は,複数の技術指標を組み合わせた包括的な取引システムで,主に移動平均 (MA),相対強度指数 (RSI),平均方向指数 (ADX) を活用して市場動向と勢いを特定する. ストップ損失とテイク・プロフィートレベルを動的に設定するために平均真の範囲 (ATR) を使用する. システムは多期分析アプローチを採用し,異なる時間段間の指標クロスオーバーを通じて取引信号を確認し,取引の正確性と効果的なリスク管理の両方を保証する.
この戦略は,取引信号の確認のために3層の検証メカニズムを使用します. トレンド識別層: トレンド指向を決定するために20期および50期移動平均のクロスオーバーを使用し,遅いMAが上昇傾向を示し,逆の方向に高速MAが横断する. 2. モメント確認層:価格のモメントを確認するために14期RSIを使用し,50以上のRSIは上昇モメントを示し,50以下のRSIは下落モメントを示します. トレンド強度フィルター層: トレンド強度を測定するために14期 ADX を使用し, ADX が25を超える場合にのみ取引を確認し,十分なトレンド強度を示します.
さらに,この戦略はATRベースの動的ストップ・ロストとテイク・プロフィートシステムを実施しています. - ストップ・ロスは2倍ATRに設定されています. - 利益は ATR の 4 倍に設定され, 1: 2 リスク・リターン比を維持
この戦略は,複数の技術指標のシネージを通じて比較的完全な取引システムを構築する.その主要な強みは,多層検証メカニズムとダイナミックなリスク管理システムにあるが,異なる市場環境における適応性に注意を払う必要があります.継続的な最適化と改善を通じて,この戦略は実際の取引で安定した収益を達成する約束を示しています.
/*backtest start: 2024-12-17 00:00:00 end: 2025-01-15 08:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=6 strategy("Daily Trading Strategy", overlay=true) // --- Indikator --- // Kombinasi MA untuk trend fastMA = ta.sma(close, 20) slowMA = ta.sma(close, 50) // RSI untuk momentum rsi = ta.rsi(close, 14) // --- Fungsi untuk menghitung ADX --- adx(length) => up = ta.change(high) down = -ta.change(low) plusDM = na(up) ? na : (up > down and up > 0 ? up : 0) minusDM = na(down) ? na : (down > up and down > 0 ? down : 0) trur = ta.rma(ta.tr, length) plus = fixnan(100 * ta.rma(plusDM, length) / trur) minus = fixnan(100 * ta.rma(minusDM, length) / trur) sum = plus + minus adx = 100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), length) // ADX untuk kekuatan trend adxValue = adx(14) // --- Kondisi Entry Long --- longEntry = ta.crossover(fastMA, slowMA) and rsi > 50 and adxValue > 25 // --- Kondisi Entry Short --- shortEntry = ta.crossunder(fastMA, slowMA) and rsi < 50 and adxValue > 25 // --- Stop Loss dan Take Profit --- // Fungsi untuk menghitung stop loss dan take profit getSLTP(entryPrice, isLong) => atr = ta.atr(14) sl = isLong ? entryPrice - atr * 2 : entryPrice + atr * 2 tp = isLong ? entryPrice + atr * 4 : entryPrice - atr * 4 [sl, tp] // Hitung SL dan TP untuk posisi Long [longSL, longTP] = getSLTP(close, true) // Hitung SL dan TP untuk posisi Short [shortSL, shortTP] = getSLTP(close, false) // --- Eksekusi Order --- if (longEntry) strategy.entry("Long", strategy.long, stop=longSL, limit=longTP) if (shortEntry) strategy.entry("Short", strategy.short, stop=shortSL, limit=shortTP) // --- Plot Indikator --- // MA plot(fastMA, color=color.blue) plot(slowMA, color=color.red) // RSI plot(rsi, color=color.orange) hline(50, color=color.gray) // ADX plot(adxValue, color=color.purple) hline(25, color=color.gray) // --- Alert --- alertcondition(longEntry, title="Long Entry", message="Long Entry") alertcondition(shortEntry, title="Short Entry", message="Short Entry")