Strategi ini menggunakan rata-rata bergerak ganda untuk membentuk saluran dan menangkap arah tren. Sinyal perdagangan dihasilkan ketika harga menembus saluran. Indikator RSI juga dimasukkan untuk menyaring breakout palsu. Ini hanya diperdagangkan selama sesi London dengan max 5 perdagangan per hari dan max 2% kerugian harian.
Strategi ini menggunakan dua rata-rata bergerak dengan panjang 5, satu dihitung dari harga tertinggi dan yang lainnya dari harga terendah, untuk membentuk saluran harga.
Untuk menghindari pecah palsu, indikator RSI ditambahkan untuk mengukur tingkat overbought/oversold.
Juga, strategi hanya diperdagangkan selama sesi London (3am - 11am), dengan maksimal 5 order per hari dan kerugian ekuitas maksimum 2% per hari.
Saluran MA ganda dapat secara efektif mendeteksi arah tren harga.
Menggunakan RSI overbought/oversold filter mengurangi beberapa sinyal palsu yang disebabkan oleh fluktuasi harga.
Perdagangan hanya selama sesi utama dan memiliki pesanan maksimum per hari batas frekuensi perdagangan.
Pergeseran harga yang signifikan dapat menyebabkan beberapa sinyal breakout palsu, yang mengarah pada kerugian yang tidak perlu. Parameter dapat dioptimalkan dan lebih banyak filter ditambahkan untuk mengurangi risiko tersebut.
Menggunakan pips tetap untuk SL/TP berisiko dihentikan / kehilangan keuntungan di pasar yang tidak stabil.
Pembukaan posisi hanya selama sesi tetap berisiko kehilangan perdagangan potensial pada jam lain. Pertimbangkan untuk memperluas sesi atau menyesuaikan secara dinamis berdasarkan situasi real-time.
Mengoptimalkan parameter seperti panjang MA, angka RSI, pips SL / TP tetap dll untuk menemukan kombinasi terbaik.
Tambahkan lebih banyak indikator atau kondisi untuk memverifikasi sinyal, misalnya volume yang lebih tinggi, lebar BB yang berkurang, dll, untuk menghindari kebocoran palsu.
Menggunakan stop loss berbasis persentase atau dinamis / mengambil keuntungan alih-alih pips tetap untuk menangani pergerakan pasar yang sepihak dengan lebih baik.
Periksa sinyal secara manual, atau masukkan hanya pada saat terkonfirmasi untuk mencegah terjebak.
Strategi ini cukup sederhana dan praktis secara keseluruhan, menggunakan saluran MA ganda untuk menentukan tren dan RSI untuk menyaring breakout palsu. Manajemen risiko melalui jam perdagangan dan batas kerugian juga mendefinisikan toleransi risiko. Masih banyak ruang untuk perbaikan, misalnya penyesuaian parameter, mekanisme SL / TP yang lebih baik dll.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-16 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © SoftKill21 //@version=4 strategy(title="Moving Average", shorttitle="MA", overlay=true) timeinrange(res, sess) => time(res, sess) != 0 len = input(5, minval=1, title="Length") src = input(high, title="Source") offset = input(title="Offset", type=input.integer, defval=0, minval=-500, maxval=500) out = sma(src, len) plot(out, color=color.white, title="MA", offset=offset) len2 = input(5, minval=1, title="Length") src2 = input(low, title="Source") offset2 = input(title="Offset", type=input.integer, defval=0, minval=-500, maxval=500) out2 = sma(src2, len2) plot(out2, color=color.white, title="MA", offset=offset2) length = input( 5 ) overSold = input( 10 ) overBought = input( 80 ) price = input(close, title="Source RSI") vrsi = rsi(price, length) longcond= close > out and close > out2 and vrsi > overBought shortcont = close < out and close < out2 and vrsi < overSold tp=input(150,title="tp") sl=input(80,title="sl") strategy.entry("long",1,when=longcond) //strategy.close("long",when= close < out2) strategy.exit("long_exit","long",profit=tp,loss=sl) strategy.entry("short",1,when=shortcont) //strategy.close("short",when=close >out) strategy.exit("short_exit","short",profit=tp,loss=sl) // maxOrder = input(6, title="max trades per day") // maxRisk = input(2,type=input.float, title="maxrisk per day") // strategy.risk.max_intraday_filled_orders(maxOrder) // strategy.risk.max_intraday_loss(maxRisk, strategy.percent_of_equity) // strategy.close_all(when =not timeinrange(timeframe.period, "0300-1100"))