Strategi Mengikuti Tren Rata-rata Pergerakan Ganda


Tanggal Pembuatan: 2024-01-24 11:28:57 Akhirnya memodifikasi: 2024-01-24 11:28:57
menyalin: 1 Jumlah klik: 559
1
fokus pada
1617
Pengikut

Strategi Mengikuti Tren Rata-rata Pergerakan Ganda

Ringkasan

Sebuah strategi yang menggunakan kombinasi dari rata-rata bergerak cepat dan rata-rata bergerak lambat untuk menilai tren pasar, dan mengirimkan sinyal perdagangan ketika terjadi pergeseran arah tren. Strategi ini menggabungkan indikator garis rata dan indikator saluran harga untuk mengidentifikasi tren, yang dapat secara efektif menyaring kebisingan pasar dan menentukan arah tren.

Prinsip Strategi

Strategi pelacakan tren dua rata-rata bergerak menggunakan dua indikator rata-rata bergerak yaitu rata-rata bergerak cepat ((5 siklus) dan rata-rata bergerak lambat ((21 siklus). Rata-rata bergerak cepat digunakan untuk menghasilkan sinyal perdagangan, rata-rata bergerak lambat digunakan untuk menentukan arah tren pasar. Ketika rata-rata bergerak cepat melewati rata-rata bergerak lambat dari bawah ke atas, menghasilkan sinyal beli; Ketika rata-rata bergerak cepat melewati rata-rata bergerak lambat dari atas ke bawah, menghasilkan sinyal jual.

Strategi ini juga menggunakan indikator saluran harga untuk membantu menentukan tren. Saluran harga ditentukan oleh rata-rata bergerak dari harga tertinggi dan terendah. Ketika harga menembus saluran, menunjukkan bahwa tren berbalik. Strategi ini menggunakan dua saluran harga, dengan siklus saluran harga pertama 21, dan siklus saluran harga kedua 5, yang cocok dengan siklus garis rata-rata.

Dalam menilai sinyal beli dan jual, strategi ini meminta kolom merah muncul berturut-turut ((pengguna dapat mengatur jumlah kolom), sebagai kondisi penyaringan tambahan. Ini dapat menghindari sinyal yang salah di area yang dihitung.

Secara umum, strategi trend tracking linear-ganda memiliki logika untuk menilai tren:

  1. Menggunakan saluran harga untuk menilai arah tren skala besar
  2. Garis rata cepat digunakan untuk menilai tren jangka pendek dan mengirimkan sinyal perdagangan
  3. Kombinasi dengan filter pilar tambahan untuk menghindari sinyal yang salah dalam perhitungan

Dengan penilaian tren multi-tingkat, kita dapat secara efektif menyaring kebisingan dan menentukan arah tren.

Analisis Keunggulan

Strategi trend tracking linear memiliki keuntungan sebagai berikut:

  1. Dengan menggunakan sistem dua baris, kita dapat mengidentifikasi tren dan menentukan arah utama tren.
  2. Garis rata cepat mengirimkan sinyal perdagangan untuk menangkap perubahan tren tepat waktu
  3. Saluran harga menilai tren skala besar, menghindari kebisingan pasar jangka pendek
  4. Kondisi penyaringan kolom merah/hijau untuk mengurangi kemungkinan sinyal yang salah di area yang dikompilasi
  5. Parameter strategi dapat disesuaikan, dapat menyesuaikan parameter untuk pasar yang berbeda, meningkatkan stabilitas strategi
  6. Strategi Stop Loss dapat ditambahkan untuk mengontrol risiko setiap transaksi secara efektif

Secara keseluruhan, strategi ini memiliki stabilitas yang lebih baik secara keseluruhan, dengan kinerja yang lebih baik di pasar yang sedang tren.

Analisis risiko

Strategi trend tracking linear juga memiliki beberapa risiko, terutama:

  1. Ketika pasar melakukan konsolidasi jangka panjang, sinyal yang salah dapat terjadi, yang dapat menyebabkan kerugian kecil berturut-turut
  2. Parameter strategi tidak disetel pada waktu yang tepat, sinyal perdagangan mungkin terlambat, kehilangan waktu masuk yang optimal
  3. Tidak adanya strategi stop loss yang efektif membuat risiko transaksi tunggal sulit dikendalikan

Dengan demikian, risiko strategi dapat dikurangi dengan:

  1. Adaptasi kondisi penyaringan kolom merah/hijau untuk mengurangi frekuensi transaksi di pasar konsolidasi
  2. Optimalkan parameter rata-rata cepat untuk memastikan sinyal perdagangan tepat waktu
  3. Tambahkan strategi stop loss bergerak atau stop loss persentase, kendalikan ketat kerugian tunggal

Arah optimasi

Ada ruang untuk optimasi lebih lanjut dalam strategi trend tracking linear ganda, terutama dalam hal:

  1. Menggabungkan indikator volatilitas, seperti ATR, untuk menyesuaikan stop loss secara otomatis
  2. Mengoptimalkan parameter kebijakan secara otomatis menggunakan metode pembelajaran mesin
  3. Tambahkan modul untuk menilai arah tren jaringan neuronal
  4. Mengintegrasikan berbagai indikator dan kondisi penyaringan untuk membangun portofolio strategi

Hal ini dapat meningkatkan stabilitas, adaptasi, dan kecerdasan strategi.

Meringkaskan

Strategi pelacakan tren garis lurus ganda secara keseluruhan adalah strategi pelacakan tren yang lebih kuat. Ini menggabungkan indikator garis lurus dan saluran harga untuk menentukan arah dan kekuatan tren, dan mengirimkan sinyal perdagangan dengan garis lurus cepat.

Kode Sumber Strategi
/*backtest
start: 2023-12-24 00:00:00
end: 2024-01-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title = "Noro's Trend MAs Strategy v1.8", shorttitle = "Trend MAs str 1.8", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)

//Settings
needlong = input(true, "long")
needshort = input(true, "short")
needstops = input(false, "stops")
stoppercent = input(5, defval = 5, minval = 1, maxval = 50, title = "Stop, %")
useohlc4 = input(false, defval = false, title = "Use OHLC4")
usefastsma = input(true, "Use fast MA Filter")
fastlen = input(5, defval = 5, minval = 1, maxval = 50, title = "fast MA Period")
slowlen = input(21, defval = 20, minval = 2, maxval = 200, title = "slow MA Period")
bars = input(2, defval = 2, minval = 0, maxval = 3, title = "Bars Q")
needbg = input(false, defval = false, title = "Need trend Background?")
needarr = input(false, defval = false, title = "Need entry arrows?")

src = useohlc4 == true ? ohlc4 : close
fastsma = ema(src, 5)

//PriceChannel 1
lasthigh = highest(src, slowlen)
lastlow = lowest(src, slowlen)
center = (lasthigh + lastlow) / 2

//PriceChannel 2
lasthigh2 = highest(src, fastlen)
lastlow2 = lowest(src, fastlen)
center2 = (lasthigh2 + lastlow2) / 2

//Trend
//ma = type == 1 ? sma(src, len) : type == 2 ? ema(src, len) : type == 3 ? vwma(src, len) : type == 4 ? dema : type == 5 ? tema : type == 6 ? kama : type == 7 ? center : 0
//trend = low > ma and low[1] > ma[1] and low[2] > ma[2] ? 1 : high < ma and high[1] < ma[1] ? -1 : trend[1]

trend1 = low > center and low[1] > center[1] ? 1 : high < center and high[1] < center[1] ? -1 : trend1[1]
trend2 = low > center2 and low[1] > center2[1] ? 1 : high < center2 and high[1] < center2[1] ? -1 : trend1[1]
trend = trend1 == 1 and trend2 == 1 ? 1 : trend2 == -1 and trend2 == -1 ? -1 : trend[1]

//Bars
bar = close > open ? 1 : close < open ? -1 : 0
redbars = bars == 0 ? 1 : bars == 1 and bar == -1 ? 1 : bars == 2 and bar == -1 and bar[1] == -1 ? 1 : bars == 3 and bar == -1 and bar[1] == -1 and bar[2] == -1 ? 1 : 0
greenbars = bars == 0 ? 1 : bars == 1 and bar == 1 ? 1 : bars == 2 and bar == 1 and bar[1] == 1 ? 1 : bars == 3 and bar == 1 and bar[1] == 1 and bar[2] == 1 ? 1 : 0

//Signals
up = trend == 1 and (low < center2 or usefastsma == false) and (redbars == 1) ? 1 : 0
dn = trend == -1 and (high > center2 or usefastsma == false) and (greenbars == 1) ? 1 : 0

//Lines
colorfastsma = usefastsma == true ? red : na
plot(fastsma, color = colorfastsma, title = "Fast MA")
plot(center, color = blue, linewidth = 3, transp = 0, title = "Slow MA")
plot(center2, color = red, linewidth = 3, transp = 0, title = "PriceChannel 2")

//Arrows
plotarrow(up == 1 and needarr == true ? 1 : 0, colorup = black, colordown = black, transp = 0)
plotarrow(dn == 1 and needarr == true ? -1 : 0, colorup = black, colordown = black, transp = 0)

//Background
col = needbg == false ? na : trend == 1 ? lime : red
bgcolor(col, transp = 90)

//Alerts
alertcondition(up == 1, title='buy', message='Uptrend')
alertcondition(dn == 1, title='sell', message='Downtrend')

//Trading
stoplong = up == 1 and needstops == true ? close - (close / 100 * stoppercent) : stoplong[1]
stopshort = dn == 1 and needstops == true ? close + (close / 100 * stoppercent) : stopshort[1]

longCondition = up == 1
if (longCondition)
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na)
    strategy.exit("Stop Long", "Long", stop = stoplong)

shortCondition = dn == 1
if (shortCondition)
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na)
    strategy.exit("Stop Short", "Short", stop = stopshort)