Strategi Purata Pergerakan Trend Noro Extreme


Tarikh penciptaan: 2024-01-31 17:00:53 Akhirnya diubah suai: 2024-01-31 17:00:53
Salin: 1 Bilangan klik: 608
1
fokus pada
1617
Pengikut

Strategi Purata Pergerakan Trend Noro Extreme

Gambaran keseluruhan

Strategi ini menggunakan dua penunjuk garis rata untuk mengenal pasti arah trend dan masa melakukan lebih banyak pembiayaan. Di antaranya, garis rata perlahan (lajur biru) digunakan untuk menentukan arah trend keseluruhan, dan garis rata cepat (lajur merah) digabungkan dengan saluran harga untuk mencari masa pembiayaan.

Prinsip Strategi

  1. Hitung dua garis purata perlahan-lahan. Periode garis purata perlahan adalah 21, untuk menilai trend keseluruhan; dan garis purata pantas adalah 5, digabungkan dengan saluran harga, untuk mencari masa perdagangan.

  2. Mengira sama ada harga semasa telah menembusi saluran harga pada kitaran sebelumnya. Jika harga menembusi saluran, kami menganggapnya sebagai peluang perdagangan.

  3. Hitung arah dan bilangan garis K. Jika N akar K terakhir adalah garis negatif, maka mungkin untuk masa kosong. Jika N akar K terakhir adalah garis positif, maka mungkin untuk masa kosong. Jumlah N ditetapkan melalui parameter Bars.

  4. Menggabungkan beberapa faktor di atas, isyarat perdagangan dikeluarkan. Isyarat perdagangan dikeluarkan jika trend adalah selaras dengan arah garis rata-rata perlahan, dan garis rata-rata cepat atau saluran harga menghantar isyarat, dan garis K juga memenuhi syarat.

Kelebihan Strategik

  1. Menggunakan sistem dua hala yang sama, ia dapat mengesan arah trend dengan berkesan.

  2. Gabungan antara garis rata-rata pantas dan saluran harga membolehkan anda mengesan titik pecah lebih awal dan mengetahui masa perdagangan.

  3. Untuk mengelakkan daripada terjebak dalam pasaran yang berbalik, anda perlu mempertimbangkan arah dan jumlah garis K semasa menghantar isyarat.

  4. Parameter garis purata boleh disesuaikan secara bebas untuk pelbagai jenis dan tempoh.

Risiko strategi dan penyelesaian

  1. Garis keseimbangan ganda mudah mengeluarkan isyarat yang salah ketika bertaburan. Anda boleh membantu penilaian dengan indikator perbezaan harga atau indikator ATR, untuk mengelakkan perdagangan dalam keadaan yang bergolak.

  2. Dalam keadaan yang tidak biasa, ia juga boleh disekat. Anda boleh menetapkan titik berhenti yang sesuai untuk mengurangkan kerugian tunggal.

  3. Kami akan terus mengoptimumkan mekanisme dan parameter untuk menjadikan strategi lebih stabil.

Arah pengoptimuman strategi

  1. Tambah penilaian penunjuk bantuan seperti ADX, MACD dan lain-lain untuk mengelakkan perdagangan yang salah dalam keadaan gegaran.

  2. Titik Hentian yang Disesuaikan Secara Dinamis. Anda boleh mengira jangkaan risiko berdasarkan ATR dan menetapkan nisbah hentian yang munasabah.

  3. Keupayaan untuk mengoptimumkan parameter. Anda boleh menggunakan kaedah pembelajaran mesin untuk mengoptimumkan parameter secara automatik.

  4. Sesuaikan parameter mengikut ciri-ciri varieti. Sebagai contoh, parameter cryptocurrency yang sesuai untuk tempoh yang lebih pendek.

ringkaskan

Strategi ini secara keseluruhan sangat sesuai untuk mengikuti trend. Ia juga menambah peluang untuk melakukan transaksi terobosan. Dengan pengoptimuman yang munasabah, strategi ini dapat berjalan dengan stabil di lebih banyak pasaran. Kami akan terus memperbaiki dan berusaha menjadikannya strategi kuantitatif berkualiti tinggi di peringkat perniagaan.

Kod 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)