Strategi pelarian arah aliran MA berganda


Tarikh penciptaan: 2024-01-08 16:43:38 Akhirnya diubah suai: 2024-01-08 16:43:38
Salin: 0 Bilangan klik: 653
1
fokus pada
1617
Pengikut

Strategi pelarian arah aliran MA berganda

Gambaran keseluruhan

Strategi penembusan pergerakan MA ganda adalah strategi perdagangan kuantitatif yang menggunakan purata bergerak dari dua kitaran yang berbeza untuk membuat keputusan trend dan masuk. Strategi ini terutamanya menggunakan MA perlahan untuk menentukan arah trend keseluruhan, dan menggunakan MA cepat untuk menyaring masuk, memilih untuk membalikkan garis K untuk masuk apabila arah trend bersatu di peringkat besar, untuk mengejar kadar kemenangan dan keuntungan yang lebih tinggi.

Prinsip Strategi

Strategi ini terdiri daripada beberapa bahagian:

Penghakiman Trend:Melalui pengiraan 21 kitaran MA, yang ditakrifkan sebagai MA perlahan, kedudukan yang lebih rata, boleh digunakan untuk menentukan arah trend keseluruhan. Apabila harga naik, mendekati nilai MA adalah tren naik, dan apabila harga turun, mendekati nilai MA adalah tren turun.

Penapis kemasukan:Pengiraan MA 5 kitaran, yang ditakrifkan sebagai MA pantas. Isyarat perdagangan hanya dihasilkan apabila harga menembusi MA perlahan, dan pada masa yang sama menembusi MA pantas. Reka bentuk ini adalah terutamanya untuk menyaring kemungkinan penembusan palsu lebih lanjut.

Penapis K:Strategi hanya melakukan lebih banyak apabila garis K kitaran itu adalah garis negatif, atau kosong apabila garis K kitaran itu adalah garis positif. Ini memandangkan kadar kejayaan yang lebih tinggi dapat diperoleh dengan menggunakan garis K yang terbalik.

Penapis pembiayaan:Bagi pasaran mata wang kripto, strategi ini menambah tambahan tiga kali ganda kepada syarat kenaikan harga untuk pecah turun naik, memilah peluang untuk turun lebih tinggi dalam penurunan skala besar.

Reka bentuk penghentian kerosakan:Strategi menyokong penutupan bergerak. Apabila kedudukan dibuka, kedudukan penutupan akan dikemas kini secara real-time mengikut peratusan penutupan yang ditetapkan.

Analisis kelebihan

Strategi ini mempunyai kelebihan berikut:

  1. Dua MA direka untuk menjadi mudah digunakan dan mudah difahami.
    1. Menggunakan penapis gabungan MA yang pantas dan boleh dipercayai untuk menilai trend;
  2. Ini adalah satu-satunya cara yang boleh anda gunakan untuk mendapatkan wang tunai dalam talian.
  3. Secara keseluruhan, metodologi yang digunakan adalah kukuh dan sesuai untuk semua peringkat transaksi;
  4. Menyokong Stop Loss Mobile dan Risiko yang Boleh Dikendalikan;
  5. Ia juga boleh digunakan untuk menjana keuntungan tambahan dengan mengambil kira ciri-ciri pasaran mata wang kripto.

Analisis risiko

Strategi ini mempunyai beberapa risiko:

  1. Dalam kes ini, terdapat beberapa kerugian kecil yang berlaku semasa pergerakan di antara kedua-dua MA.
  2. K-Line Reverse Entry mungkin berlaku pada tahap tertentu apabila tidak ada kemenangan yang tinggi.
  3. Pasaran kripto bergolak, kemungkinan besar penutupan kerugian akan dicetuskan.
  4. “Saya tidak tahu apa-apa mengenai apa yang akan berlaku selepas ini”, katanya.

Untuk mengatasi risiko ini, anda boleh mengoptimumkan:

  1. Meningkatkan syarat kemasukan untuk mengelakkan guncangan yang tidak berkesan;
  2. Menyesuaikan kitaran K-Line atau menambah penapis indikator lain;
  3. Mengoptimumkan algoritma henti rugi, mengesan henti rugi berhampiran paksi tengah;
  4. Penilaian Kesan Praktikal Strategi Peningkatan dan Penurunan.

Arah pengoptimuman

Strategi ini boleh dioptimumkan dalam beberapa aspek:

  1. Optimumkan parameter: Mengoptimumkan kombinasi parameter kitaran MA cepat dan perlahan dengan pengulangan yang lebih sistematik, meningkatkan nisbah risiko pendapatan keseluruhan.

  2. Pengenalan corakTambahan lain seperti KDJ, MACD dan lain-lain untuk mengenal pasti isyarat pembalikan yang lebih dipercayai.

  3. Pengoptimuman Stop Loss: Mengembangkan algoritma untuk mengesan dan memantau hentian terapung untuk mengurangkan kemungkinan hentian tercetus.

  4. Pembelajaran Mesin: Mengumpul dan menandai lebih banyak data sejarah, menghasilkan peraturan perdagangan secara automatik menggunakan kaedah pembelajaran mesin.

  5. Peralihan kuantitatif: Mengubah strategi pengurusan kedudukan secara automatik mengikut keadaan pasaran.

ringkaskan

Strategi penembusan pergerakan MA ganda secara keseluruhan adalah strategi pemantauan trend yang lebih mudah dan praktikal. Strategi ini lebih mudah ditafsirkan dan dikuasai dan lebih dipercayai daripada algoritma pembelajaran mesin yang rumit. Dengan pengoptimuman parameter, pengembangan fungsi dan pengenalan pembelajaran mesin, strategi ini mempunyai potensi peningkatan yang besar dan merupakan titik permulaan yang baik untuk perdagangan kuantitatif.

Kod sumber strategi
/*backtest
start: 2023-12-31 00:00:00
end: 2024-01-07 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title = "Noro's Trend MAs Strategy v2.0 +CB", shorttitle = "Trend MAs str 2.0", 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

//Fast RSI
fastup = rma(max(change(close), 0), 2)
fastdown = rma(-min(change(close), 0), 2)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))

//CryptoBottom
mac = sma(close, 10)
len = abs(close - mac)
sma = sma(len, 100)
max = max(open, close)
min = min(open, close)
up3 = close < open and len > sma * 3 and min < min[1] and fastrsi < 10 ? 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) or up3 == 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)