Strategi Rata-rata Pergerakan Tren Noro Ekstrim


Tanggal Pembuatan: 2024-01-31 17:00:53 Akhirnya memodifikasi: 2024-01-31 17:00:53
menyalin: 1 Jumlah klik: 608
1
fokus pada
1617
Pengikut

Strategi Rata-rata Pergerakan Tren Noro Ekstrim

Ringkasan

Strategi ini menggunakan dua indikator rata-rata untuk mengidentifikasi arah tren dan waktu untuk melakukan lebih banyak shorting. Di antaranya, rata-rata lambat (lainnya disebut garis biru) digunakan untuk menentukan arah tren secara keseluruhan, rata-rata cepat (lainnya disebut garis merah) dikombinasikan dengan saluran harga untuk menemukan waktu untuk melakukan lebih banyak shorting.

Prinsip Strategi

  1. Hitung dua rata-rata lambat. Rata-rata lambat berperiode 21, untuk menilai tren keseluruhan; rata-rata cepat berperiode 5, dikombinasikan dengan saluran harga, untuk menemukan waktu perdagangan.

  2. Perhitungan apakah harga saat ini telah menembus saluran harga dari siklus sebelumnya. Jika harga menembus saluran, kita menganggapnya sebagai peluang perdagangan.

  3. Hitung arah dan jumlah garis K. Jika akar akhir N garis K adalah garis negatif, maka mungkin untuk melakukan waktu plus; Jika akar akhir N garis K adalah garis positif, maka mungkin untuk waktu kosong. Jumlah N diatur melalui parameter Bars.

  4. Kombinasi beberapa faktor di atas, untuk membuat sinyal lebih longgar. Jika tren sesuai dengan arah garis rata-rata lambat, dan garis rata-rata cepat atau saluran harga mengirimkan sinyal, dan garis K juga memenuhi syarat, maka sinyal perdagangan dikirim.

Keunggulan Strategis

  1. Dengan menggunakan sistem dua garis lurus, Anda dapat secara efektif melacak arah tren.

  2. Garis rata cepat yang digabungkan dengan saluran harga, memungkinkan untuk mendeteksi titik pecah lebih awal dan mengamankan waktu transaksi.

  3. Untuk menghindari pasar yang terbalik, Anda juga harus mempertimbangkan arah dan jumlah K-line saat mengirim sinyal.

  4. Parameter rata-rata linear dapat disesuaikan secara bebas untuk varietas dan periode yang berbeda.

Risiko Strategis dan Solusi

  1. Garis rata ganda mudah untuk mengirimkan sinyal yang salah saat di sisi sisi. Dapat dengan bantuan penilaian dengan indikator spread harga atau indikator ATR, menghindari perdagangan dalam kondisi goyah.

  2. Dalam situasi yang tidak biasa, Anda dapat mengatur stop loss yang tepat untuk mengurangi kerugian tunggal.

  3. Kami akan terus mengoptimalkan mekanisme dan parameter untuk membuat strategi lebih stabil.

Arah optimasi strategi

  1. Menambahkan penilaian indikator tambahan seperti ADX, MACD, dan lain-lain untuk menghindari perdagangan yang salah dalam situasi goncangan.

  2. Stop loss yang disesuaikan secara dinamis. Anda dapat menghitung ekspektasi risiko berdasarkan ATR dan mengatur rasio stop loss yang masuk akal.

  3. Optimasi parameter kemampuan beradaptasi sendiri. Metode pembelajaran mesin dapat digunakan untuk mengoptimalkan parameter secara otomatis.

  4. Parameter disesuaikan sesuai dengan karakteristik varietas. Misalnya, cryptocurrency cocok untuk periode yang lebih pendek.

Meringkaskan

Strategi ini secara keseluruhan sangat cocok untuk mengikuti tren. Selain itu, ada beberapa peluang untuk melakukan transaksi terobosan. Dengan pengoptimalan yang masuk akal, strategi ini dapat berjalan dengan stabil di lebih banyak pasar.

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

//@version=2
strategy(title = "Noro's Trend MAs Strategy v1.9 Extreme", shorttitle = "Trend MAs str 1.9 extreme", 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?")
needex = input(true, defval = true, title = "Need extreme? (crypto/fiat only!!!)")

src = useohlc4 == true ? ohlc4 : close

//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
trend = low > center and low[1] > center[1] ? 1 : high < center and high[1] < center[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

up2 = high < center and high < center2 and bar == -1 ? 1 : 0
dn2 = low > center and low > center2 and bar == 1 ? 0 : 0

//Lines
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 or (up2 == 1 and needex == true)
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)