Strategi ini menggunakan purata bergerak untuk membentuk saluran harga dan menghasilkan isyarat apabila harga keluar dari jalur saluran.
Mengira purata bergerak, dengan pilihan seperti SMA / EMA / WMA / RMA.
Band atas adalah peningkatan peratusan tertentu dari purata bergerak. Band bawah adalah penurunan peratusan tertentu.
Pergi panjang di atas band atas, pergi pendek di bawah band bawah.
Tetapkan titik stop loss dan mengambil keuntungan. titik mengambil keuntungan adalah peningkatan peratusan tertentu dari harga masuk. titik stop loss adalah penurunan peratusan tertentu dari harga masuk.
Mudah untuk melaksanakan penentuan trend menggunakan purata bergerak.
Parameter yang boleh diselaraskan menampung tempoh penahanan dan keutamaan risiko yang berbeza.
Arahan panjang/pendek pilihan disesuaikan dengan pelbagai keadaan pasaran.
Peratusan tetap stop loss dan mengambil keuntungan membolehkan kawalan.
cenderung untuk terperangkap apabila trend berubah secara tiba-tiba.
Penyesuaian parameter yang tidak betul berisiko terlalu berdagang atau ketinggalan.
Peratusan tetap stop loss / keuntungan tidak mempunyai fleksibiliti.
Peningkatan kekerapan perdagangan dan kos komisen dengan perdagangan dua arah.
Mengoptimumkan parameter purata bergerak untuk mengimbangi kelewatan dan bunyi bising.
Mengoptimumkan lebar jalur saluran untuk sepadan dengan kekerapan turun naik pasaran.
Uji stop loss yang berbeza dan ambil konfigurasi keuntungan.
Tambah penunjuk trend dan goyangan untuk mengukur keadaan pasaran secara keseluruhan.
Melaksanakan penapis masa untuk mengelakkan kesan peristiwa yang signifikan.
Strategi ini mencapai trend mudah mengikut saluran purata bergerak, tetapi memerlukan pengoptimuman parameter yang lebih kuat dan kawalan risiko.
/*backtest start: 2023-08-17 00:00:00 end: 2023-09-16 00:00:00 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/ // © TaylorTneh //@version=4 // strategy("Moving Average Band Taylor V1",shorttitle="MA Band+",overlay=true,default_qty_type=strategy.cash,default_qty_value=1000,initial_capital=1000,currency=currency.USD,commission_value=.1) price = input(close, title="Source") mabtype = input(title="Moving Average Type", defval="RMA", options=["SMA", "EMA", "RMA", "WMA"]) malen = input(10, "MA Period : 10") magap = input(0.6, "Band Gap : 0.6", minval = -10, maxval = 10, step = 0.1) mabup = if mabtype == "SMA" sma(high, malen) else if mabtype == "EMA" ema(high, malen) else if mabtype == "WMA" wma(high, malen) else if mabtype == "RMA" rma(high, malen) mabdn = if mabtype == "SMA" sma(low, malen) else if mabtype == "EMA" ema(low, malen) else if mabtype == "WMA" wma(low, malen) else if mabtype == "RMA" rma(low, malen) upex = mabup * (1 + magap/100) dnex = mabdn * (1 - magap/100) plot(upex, "Upper MA Band", color.orange) plot(dnex, "Lower MA Band", color.orange) //-------------------------------------------- (Strategy) strategy.entry("Long", strategy.long, stop = upex) strategy.entry("Short", strategy.short, stop = dnex) //Long Only//strategy.entry("Long", strategy.long, stop = upex) //Long Only//strategy.exit("Short", stop = dnex) //Short Only//strategy.entry("Short", strategy.short, stop = dnex) //Short Only//strategy.exit("Long", stop = upex) //-------------------------------------------- (Take Profit & Stop Lose) stopPer = input(500.0, title='# Stop Loss %', type=input.float) / 100 takePer = input(500.0, title='# Take Profit %', type=input.float) / 100 //Determine where you've entered and in what direction longStop = strategy.position_avg_price * (1 - stopPer) shortStop = strategy.position_avg_price * (1 + stopPer) shortTake = strategy.position_avg_price * (1 - takePer) longTake = strategy.position_avg_price * (1 + takePer) if strategy.position_size > 0 strategy.exit(id="L-TP/SL", stop=longStop, limit=longTake) if strategy.position_size < 0 strategy.exit(id="S-TP/SL", stop=shortStop, limit=shortTake) //-------------------------------------------- (Sample Time Filter Strategy) //fromyear = input(2018, defval = 1900, minval = 1900, maxval = 2100, title = "From Year") //toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year") //frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month") //tomonth = input(10, defval = 10, minval = 01, maxval = 12, title = "To Month") //fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day") //today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day") //strategy.entry("Long", strategy.long, stop = upex, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) //strategy.entry("Short", strategy.short, stop = dnex, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) //--------------------------------------------