Strategi ini adalah sistem mengikuti trend berdasarkan pelbagai purata bergerak dan penunjuk RSI. Ia menggunakan gabungan purata bergerak 20, 50, dan 200-periode untuk menganalisis trend pasaran melalui kedudukan relatif mereka, digabungkan dengan pengesahan RSI untuk isyarat perdagangan. Strategi ini menggabungkan sasaran stop-loss dan keuntungan dinamik dengan penangguhan berhenti untuk melindungi keuntungan.
Inti strategi ini terletak pada menganalisis kedudukan relatif tiga purata bergerak (MA20, MA50, MA200) untuk menentukan trend pasaran. Strategi ini menentukan 18 senario gabungan purata bergerak yang berbeza, memberi tumpuan kepada persilangan dan kedudukan relatif. Posisi panjang lebih disukai apabila MA jangka pendek berada di atas MA jangka panjang, dan sebaliknya. Untuk mengelakkan overtrading, RSI diperkenalkan sebagai penapis, yang membolehkan entri panjang apabila RSI di bawah 70 dan entri pendek di atas 30. Strategi ini menggunakan nisbah risiko-balasan 1:10 dengan berhenti 25 mata untuk melindungi keuntungan.
Ini adalah strategi trend yang terstruktur dengan baik dengan logik yang jelas. Gabungan beberapa sistem purata bergerak dengan penapisan RSI mewujudkan sistem perdagangan yang agak boleh dipercayai. Mekanisme pengurusan risiko direka dengan baik, melindungi keuntungan melalui hentian yang tertinggal tanpa keluar awal. Walaupun terdapat ruang untuk pengoptimuman, kerangka keseluruhan direka secara saintifik dengan nilai aplikasi praktikal.
/*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)