Strategi ini didasarkan pada pergerakan rata-rata yang membentuk saluran perdagangan, menghasilkan sinyal perdagangan ketika harga menerobos saluran naik dan turun. Ini adalah strategi pelacakan tren yang khas, yang memungkinkan operasi jangka pendek yang sederhana dan efektif melalui pengoptimalan parameter.
Untuk menghitung Moving Average, Anda dapat memilih berbagai jenis seperti SMA/EMA/WMA/RMA.
Sebuah peningkatan proporsional pada rata-rata bergerak di atas lintasan. Sebuah penurunan proporsional di bawah lintasan.
Jika harga menembus tren naik, lakukan over; jika harga menembus tren turun, lakukan over. Anda dapat memilih hanya melakukan over, hanya melakukan over, atau bertransaksi dua arah.
Tetapkan stop loss. Stop loss adalah kenaikan harga masuk dalam jumlah tertentu. Stop loss adalah penurunan jumlah dalam jumlah tertentu.
Penghitungan rata-rata bergerak sederhana dan mudah untuk menilai tren.
Parameter yang dapat disesuaikan untuk jangka waktu dan preferensi risiko yang berbeda.
Ada banyak opsi untuk melakukan lebih banyak pekerjaan kosong, yang dapat disesuaikan dengan berbagai situasi pasar.
Stop loss tetap proporsional, dapat dikontrol.
Ini adalah salah satu dari beberapa hal yang dapat Anda lakukan untuk mengurangi risiko.
Pengaturan parameter yang tidak tepat dapat menyebabkan transaksi yang terlalu sering atau terlambat.
Stop loss dengan rasio tetap tidak cukup fleksibel.
Transaksi dua arah meningkatkan frekuensi transaksi dan biaya biaya.
Optimalkan parameter moving average, keseimbangan latensi dan kebisingan.
Optimalkan bandwidth saluran untuk menyesuaikan frekuensi fluktuasi pasar.
Uji berbagai pengaturan Stop Loss. Stop Loss Dinamis lebih efektif.
Menambahkan indikator tren, osilasi dan lain-lain.
Filter waktu untuk menghindari dampak dari peristiwa besar.
Strategi ini memungkinkan trend-following sederhana melalui saluran moving average, tetapi membutuhkan pengoptimalan parameter yang kuat dan pengendalian risiko. Atas dasar ini, lebih banyak indikator teknis dapat diperkenalkan untuk lebih menyempurnakan logika 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)))
//--------------------------------------------