Strategi ini adalah sistem trend-mengikuti berdasarkan beberapa rata-rata bergerak dan indikator RSI. Ini memanfaatkan kombinasi 20, 50, dan 200-periode rata-rata bergerak untuk menganalisis tren pasar melalui posisi relatif mereka, dikombinasikan dengan konfirmasi RSI untuk sinyal perdagangan. Strategi ini menggabungkan target stop-loss dan keuntungan dinamis dengan trailing stop untuk melindungi keuntungan.
Inti dari strategi ini terletak pada menganalisis posisi relatif dari tiga moving average (MA20, MA50, MA200) untuk menentukan tren pasar. Strategi mendefinisikan 18 skenario kombinasi moving average yang berbeda, berfokus pada crossover dan posisi relatif. Posisi panjang lebih disukai ketika MAs jangka pendek berada di atas MAs jangka panjang, dan sebaliknya. Untuk menghindari overtrading, RSI diperkenalkan sebagai filter, memungkinkan entri panjang ketika RSI berada di bawah 70 dan entri pendek di atas 30. Strategi ini menggunakan rasio risiko-manfaat 1:10 dengan stop trailing 25 poin untuk melindungi keuntungan.
Ini adalah strategi trend-mengikuti terstruktur dengan logika yang jelas. Kombinasi dari beberapa sistem rata-rata bergerak dengan penyaringan RSI menciptakan sistem perdagangan yang relatif dapat diandalkan. Mekanisme manajemen risiko dirancang dengan baik, melindungi keuntungan melalui trailing stop tanpa keluar prematur. Sementara ada ruang untuk optimasi, kerangka kerja keseluruhan dirancang secara ilmiah dengan nilai aplikasi praktis.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-27 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Refined MA Strategy with Trailing Stop for 30m", overlay=true) // Define the moving averages TR20 = ta.sma(close, 20) TR50 = ta.sma(close, 50) TR200 = ta.sma(close, 200) // Define the RSI for additional filtering rsi = ta.rsi(close, 14) // Define the scenarios scenario1 = TR20 > TR50 and TR50 > TR200 scenario2 = TR50 > TR20 and TR20 > TR200 scenario3 = TR200 > TR50 and TR50 > TR20 scenario4 = TR50 > TR200 and TR200 > TR20 scenario5 = TR20 > TR200 and TR200 > TR50 scenario6 = TR200 > TR20 and TR20 > TR50 scenario7 = TR20 == TR50 and TR50 > TR200 scenario8 = TR50 == TR20 and TR20 > TR200 scenario9 = TR200 == TR50 and TR50 > TR20 scenario10 = TR20 > TR50 and TR50 == TR200 scenario11 = TR50 > TR20 and TR20 == TR200 scenario12 = TR20 > TR50 and TR50 == TR200 scenario13 = TR20 == TR50 and TR50 == TR200 scenario14 = TR20 > TR50 and TR200 == TR50 scenario15 = TR50 > TR20 and TR200 == TR50 scenario16 = TR20 > TR50 and TR50 == TR200 scenario17 = TR20 > TR50 and TR50 == TR200 scenario18 = TR20 > TR50 and TR50 == TR200 // Entry conditions longCondition = (scenario1 or scenario2 or scenario5) and rsi < 70 shortCondition = (scenario3 or scenario4 or scenario6) and rsi > 30 // Execute trades based on scenarios with 50 points stop loss and 1:10 RR, using a trailing stop of 25 points if (longCondition) strategy.entry("Long", strategy.long) strategy.exit("Take Profit", from_entry="Long", limit=close + 250, trail_offset=25) if (shortCondition) strategy.entry("Short", strategy.short) strategy.exit("Take Profit", from_entry="Short", limit=close - 250, trail_offset=25)