Strategi mengikuti tren hanya-panjang berdasarkan ADX, MA, dan EMA


Tanggal Pembuatan: 2024-01-29 11:30:15 Akhirnya memodifikasi: 2024-01-29 11:30:15
menyalin: 1 Jumlah klik: 682
1
fokus pada
1617
Pengikut

Strategi mengikuti tren hanya-panjang berdasarkan ADX, MA, dan EMA

Ringkasan

Strategi ini terutama menggunakan indikator ADX untuk menentukan tren dan membangun moving average yang menggabungkan MA dan EMA dengan dua pengaturan parameter yang berbeda. Strategi pelacakan tren hanya melakukan lebih banyak.

Prinsip Strategi

Strategi ini terutama menggunakan ADX untuk menilai tren dan kekuatan pasar. ADX menilai keberadaan dan kekuatan tren dengan menghitung tingkat dan arah perubahan harga. Ketika ADX naik, itu menunjukkan bahwa tren sedang naik; Ketika ADX turun, itu menunjukkan bahwa tren sedang melemah.

Strategi ini menggunakan MA dan EMA bergerak rata-rata dengan dua pengaturan parameter yang berbeda untuk penilaian tambahan. Mereka dapat secara efektif menghapus keacakan harga dan menunjukkan arah tren utama harga.

Strategi ini menggabungkan karakteristik ADX dan Moving Average untuk membangun sinyal perdagangan yang menentukan arah tren: ADX naik dan melakukan over-open saat harga menembus garis MA dan EMA ke atas, ADX turun atau harga jatuh saat MA / EMA berada di posisi terendah, dan strategi ini hanya melakukan over-trend.

Analisis Keunggulan Strategi

Strategi ini memiliki beberapa keuntungan utama:

  1. Menggunakan ADX untuk menilai intensitas tren, untuk mengurangi terjadinya transaksi yang tidak valid, dan untuk melacak tren;
  2. Filter moving average yang menggabungkan dua parameter yang berbeda untuk mengidentifikasi tren secara efektif;
  3. Hanya melakukan lebih banyak dan menghindari kehilangan titik geser yang disebabkan oleh 29797 operasi reversal yang sering;
  4. Kondisi masuk yang ketat dan pengendalian risiko yang efektif;
  5. Ini adalah strategi untuk melacak tren garis panjang.

Analisis Risiko Strategi

Strategi ini juga memiliki beberapa risiko:

  1. Indeks ADX terlambat, mungkin kehilangan waktu terbaik untuk masuk;
  2. “Saya tidak tahu apa-apa, saya tidak tahu apa-apa, saya tidak tahu apa-apa, saya tidak tahu apa-apa”, katanya.
  3. Ada risiko kerugian tertentu ketika tren berubah;
  4. Peraturan parameter yang tidak tepat juga dapat mempengaruhi kinerja kebijakan.

Solusi yang sesuai:

  1. Menyesuaikan parameter ADX dengan tepat untuk mengurangi keterlambatan;
  2. Anda dapat mengatur strategi stop loss untuk mengendalikan kerugian tunggal.
  3. Optimalkan parameter untuk tes, pilih parameter terbaik.

Arah optimasi strategi

Strategi ini juga dapat dioptimalkan dalam beberapa hal:

  1. Meningkatkan strategi penghentian kerugian dan pengendalian risiko yang lebih baik;
  2. Meningkatkan manajemen posisi, menyesuaikan posisi secara dinamis sesuai dengan kondisi pasar;
  3. Uji optimasi parameter untuk mencari kombinasi optimal;
  4. Menambahkan algoritma pembelajaran mesin, parameter optimasi dinamis;
  5. Mengembangkan strategi untuk mengurangi dampak rasio untung rugi dari penggunaan Martingale.

Meringkaskan

Strategi ini secara keseluruhan adalah strategi pelacakan multi-trend yang menggunakan ADX untuk menilai kekuatan tren dan membantu membangun sinyal filter dengan dua rata-rata bergerak. Ini secara efektif mengendalikan terjadinya perdagangan yang tidak efektif, mencapai efek dari pelacakan tren, dan merupakan strategi multi-trend yang lebih stabil. Dengan beberapa penyesuaian optimasi, stabilitas dan tingkat pengembalian strategi dapat ditingkatkan lebih lanjut.

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

//@version=4
strategy("ADX, MA, and EMA Long Strategy - ADX Trending Up", shorttitle="ADX_MA_EMA_Long_UpTrend", overlay=true)
adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Length")
maPeriod = input(50, title="MA Period")
emaPeriod = input(50, title="EMA Period")
dirmov(len) =>
    up = change(high)
    down = -change(low)
    plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
    minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
    truerange = rma(tr, len)
    plus = fixnan(100 * rma(plusDM, len) / truerange)
    minus = fixnan(100 * rma(minusDM, len) / truerange)
    [plus, minus]
adx(dilen, adxlen) =>
    [plus, minus] = dirmov(dilen)
    sum = plus + minus
    100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
sig = adx(dilen, adxlen)
maValue = sma(close, maPeriod)
emaValue = ema(close, emaPeriod)
longCondition = sig > sig[1] and close > maValue and close > emaValue
if (longCondition)
    strategy.entry("Long", strategy.long)
exitCondition = sig < sig[1] or  close < maValue or close < emaValue
if (exitCondition)
    strategy.close("Long")
plot(maValue, color=color.blue, title="MA")
plot(emaValue, color=color.orange, title="EMA")
plot(sig, color=color.red, title="ADX")