Strategi ini menggunakan purata bergerak berganda untuk membentuk saluran dan menangkap arah trend. Isyarat perdagangan dihasilkan apabila harga memecahkan saluran. Penunjuk RSI juga dimasukkan untuk menapis pecah palsu. Ia hanya berdagang semasa sesi London dengan maksimum 5 dagangan sehari dan maksimum 2% kerugian harian.
Strategi ini menggunakan dua purata bergerak dengan panjang 5, satu dikira dari harga tertinggi dan yang lain dari harga terendah, untuk membentuk saluran harga. isyarat panjang dipicu apabila harga menutup pecah di atas jalur atas, dan isyarat pendek di bawah jalur bawah.
Untuk mengelakkan pecah palsu, penunjuk RSI ditambahkan untuk mengukur tahap overbought / oversold. Pergi panjang hanya jika RSI melebihi 80, dan pergi pendek hanya jika RSI di bawah 20.
Juga, strategi ini hanya diperdagangkan semasa sesi London (3am - 11am), dengan maksimum 5 pesanan sehari dan kerugian ekuiti maksimum 2% sehari.
Saluran MA berganda dapat secara berkesan mengesan arah trend harga. Menjatuhkan jalur atas menangkap trend menaik, sementara menjatuhkan jalur bawah menangkap trend menurun.
Menggunakan penapis overbought / oversold RSI mengurangkan beberapa isyarat pecah palsu yang disebabkan oleh turun naik harga.
Perdagangan hanya semasa sesi utama dan mempunyai pesanan maksimum setiap hari had kekerapan perdagangan.
Perubahan harga yang signifikan boleh menyebabkan beberapa isyarat pecah palsu, yang membawa kepada kerugian yang tidak perlu. Parameter boleh dioptimumkan dan lebih banyak penapis ditambahkan untuk mengurangkan risiko tersebut.
Menggunakan pip tetap untuk SL / TP berisiko berhenti / kehilangan keuntungan dalam pasaran yang tidak menentu.
Pembukaan kedudukan hanya semasa sesi tetap berisiko kehilangan perdagangan berpotensi pada jam lain.
Mengoptimumkan parameter seperti panjang MA, angka RSI, pips SL / TP tetap dan lain-lain untuk mencari kombinasi terbaik.
Tambah lebih banyak penunjuk atau keadaan untuk mengesahkan isyarat, contohnya jumlah yang lebih tinggi, lebar BB yang berkurangan, dan lain-lain, untuk mengelakkan pecah palsu.
Gunakan stop loss berasaskan peratusan atau dinamik / mengambil keuntungan bukannya pip tetap untuk menangani pergerakan pasaran yang satu sisi dengan lebih baik.
Periksa isyarat secara manual, atau masukkan hanya pada pengosongan yang disahkan untuk mengelakkan terperangkap.
Strategi ini agak mudah dan praktikal secara keseluruhan, menggunakan saluran MA berganda untuk menentukan trend dan RSI untuk menapis pecah palsu. Pengurusan risiko melalui jam dagangan dan had kerugian juga menentukan toleransi risiko. Masih banyak ruang untuk penambahbaikan, contohnya 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"))