Strategi ini berdasarkan pada pergerakan rata-rata yang membentuk saluran perdagangan, menghasilkan isyarat perdagangan apabila harga menembusi saluran naik dan turun. Ia adalah strategi trend-following yang tipikal, yang membolehkan operasi jangka pendek yang mudah dan berkesan melalui pengoptimuman parameter.
Untuk mengira purata bergerak, anda boleh memilih pelbagai jenis seperti SMA / EMA / WMA / RMA.
Peningkatan peratusan pada purata bergerak di atas landasan. Pengurangan peratusan di bawah landasan.
Buat lebih banyak apabila harga menembusi ke atas; buat kosong apabila ia menembusi ke bawah. Anda boleh memilih untuk hanya melakukan lebih banyak, hanya melakukan kosong atau berdagang dua hala.
Tetapkan titik hentian. Titik hentian adalah peningkatan peratusan harga masuk. Titik hentian adalah pengurangan peratusan.
Pengiraan purata bergerak adalah mudah dan mudah untuk menilai trend.
Parameter yang boleh disesuaikan untuk tempoh pegangan yang berbeza dan pilihan risiko.
Anda boleh memilih untuk melakukan lebih banyak kerja sambilan dan menyesuaikan diri dengan pelbagai keadaan pasaran.
Stop dan stop loss tetap dalam peratusan, boleh dikawal.
Ia juga boleh menyebabkan perubahan dalam trend.
Tetapan parameter yang tidak betul boleh menyebabkan perdagangan yang terlalu kerap atau lambat.
Stop loss peratusan tetap tidak cukup fleksibel.
Perdagangan dua hala meningkatkan frekuensi transaksi dan kos bayaran.
Mengoptimumkan parameter purata bergerak, keseimbangan kelewatan dan kebisingan.
Mengoptimumkan jalur jalur untuk menyesuaikan frekuensi turun naik pasaran.
Uji pelbagai tetapan stop-loss. Stop-loss dinamik lebih berkesan.
Menambah trend, indikator getaran dan lain-lain untuk menilai bandar raya.
Untuk mengelakkan kesan daripada peristiwa besar, masukkan penapis masa.
Strategi ini membolehkan trend mengikuti dengan mudah melalui saluran purata bergerak, tetapi memerlukan pengoptimuman parameter dan kawalan risiko yang lebih kuat. Atas dasar ini, lebih banyak petunjuk teknikal boleh diperkenalkan untuk memperbaiki lagi logik strategi.
/*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)))
//--------------------------------------------