Sumber dimuat naik... memuat...

Strategi purata bergerak berganda GM-8 & ADX

Penulis:ChaoZhang, Tarikh: 2024-04-30 15:50:57
Tag:ADXEMA

img

Ringkasan

Strategi GM-8 & ADX Dual Moving Average adalah strategi perdagangan kuantitatif yang menggabungkan beberapa penunjuk teknikal. Ia menggunakan penunjuk GM-8, penunjuk ADX, dan penunjuk EMA kedua untuk mengenal pasti isyarat beli dan jual yang berpotensi. Penunjuk GM-8 digunakan untuk menentukan trend harga, penunjuk ADX digunakan untuk mengesahkan kekuatan trend, dan penunjuk EMA kedua digunakan untuk membantu menentukan arah trend. Isyarat beli dan jual dihasilkan apabila harga menembusi purata bergerak GM-8 dan penunjuk ADX berada di atas ambang. Kelebihan strategi ini terletak pada kombinasi beberapa penunjuk, yang meningkatkan kebolehpercayaan isyarat. Walau bagaimanapun, ia juga membawa risiko tertentu, seperti isyarat palsu dan kelewatan. Arahan strategi pengoptimuman termasuk pengoptimuman parameter, pengoptimuman stop-loss dan mengambil keuntungan, dan lain-lain.

Prinsip Strategi

Prinsip strategi purata bergerak berganda GM-8 & ADX adalah seperti berikut:

  1. Mengira penunjuk GM-8 untuk menentukan trend harga. Apabila harga penutupan melintasi di atas / di bawah purata bergerak GM-8, ia menunjukkan kemungkinan pembalikan trend.
  2. Mengira penunjuk ADX untuk mengesahkan kekuatan trend Apabila penunjuk ADX melebihi ambang (contohnya, 34), ia menunjukkan trend semasa yang kuat dan kemasukan boleh dipertimbangkan.
  3. Mengira penunjuk EMA kedua untuk membantu menentukan arah trend. Apabila harga di atas EMA kedua, ia cenderung menaik; jika tidak, ia cenderung menurun.
  4. Pertimbangkan secara komprehensif GM-8, ADX, dan EMA kedua untuk menjana isyarat beli dan jual:
    • Isyarat panjang: Harga penutupan semasa melintasi di atas purata bergerak GM-8, dan lebih tinggi daripada kedua-dua GM-8 dan EMA kedua, manakala ADX berada di atas ambang.
    • Isyarat pendek: Harga penutupan semasa melintasi di bawah purata bergerak GM-8, dan lebih rendah daripada kedua-dua GM-8 dan EMA kedua, sementara ADX berada di atas ambang.
  5. Setelah dimasukkan, tahan kedudukan sehingga isyarat keluar muncul:
    • Isyarat tutup panjang: Harga penutupan semasa melintasi di bawah purata bergerak GM-8 dan lebih rendah daripada GM-8.
    • Isyarat penutupan pendek: Harga penutupan semasa melintasi di atas purata bergerak GM-8 dan lebih tinggi daripada GM-8.

Kelebihan Strategi

  1. Menggabungkan beberapa penunjuk untuk meningkatkan kebolehpercayaan isyarat: Strategi ini secara komprehensif mempertimbangkan penunjuk trend (GM-8), penunjuk kekuatan trend (ADX), dan penunjuk arah trend (EMA), yang dapat menapis beberapa isyarat palsu dengan berkesan.
  2. Parameter yang boleh diselaraskan untuk fleksibiliti yang tinggi: Pelbagai parameter strategi ini, seperti tempoh GM-8, tempoh ADX, ambang ADX, tempoh EMA kedua, dll., Dapat diselaraskan mengikut ciri pasaran dan pilihan peribadi untuk menyesuaikan diri dengan gaya perdagangan yang berbeza.
  3. Logik yang jelas dan mudah dilaksanakan: Logik perdagangan strategi ini agak mudah dan mudah, mudah difahami dan dilaksanakan, sesuai untuk pedagang kuantitatif pemula untuk belajar dan menggunakan.

Risiko Strategi

  1. Pengiktirafan trend yang tertunda: GM-8 dan penunjuk berasaskan trend lain adalah penunjuk yang tertunda secara semula jadi, yang boleh mengakibatkan pengiktirafan trend yang tertunda, yang membawa kepada titik kemasukan optimum yang terlepas atau peningkatan kerugian.
  2. Perdagangan kerap: Strategi ini menghasilkan isyarat beli dan jual yang agak kerap, yang boleh membawa kepada perdagangan yang kerap, meningkatkan kos transaksi, dan mungkin berprestasi buruk di pasaran julat.
  3. Kesukaran dalam pemilihan parameter: Strategi ini merangkumi beberapa parameter, dan mencari kombinasi parameter yang optimum memerlukan sejumlah besar kerja backtesting dan analisis, yang boleh menjadi cabaran bagi pemula.

Arahan Pengoptimuman Strategi

  1. Memperkenalkan lebih banyak keadaan penapisan: Sebagai tambahan kepada GM-8, ADX, dan EMA, penunjuk tambahan lain seperti jumlah dagangan, turun naik, dan lain-lain boleh ditambah untuk meningkatkan kualiti isyarat.
  2. Mengoptimumkan masa kemasukan dan keluar: Pertimbangkan untuk memperkenalkan pembinaan kedudukan secara beransur-ansur dan mengambil keuntungan secara beransur-ansur dan kaedah berhenti kerugian untuk mengurangkan risiko perdagangan tunggal dan meningkatkan keuntungan keseluruhan.
  3. Sesuaikan parameter secara dinamik: Berdasarkan perubahan keadaan pasaran, sesuaikan parameter strategi secara dinamik, seperti menggunakan tempoh GM-8 yang lebih lama di pasaran trend dan tempoh GM-8 yang lebih pendek di pasaran jangkauan.
  4. Tambah pengurusan kedudukan: Berdasarkan faktor-faktor seperti status modal akaun dan keutamaan risiko, mengawal saiz kedudukan setiap perdagangan untuk mengelakkan tumpuan risiko yang berlebihan.

Ringkasan

Strategi GM-8 & ADX Dual Moving Average adalah strategi perdagangan kuantitatif klasik yang menggabungkan beberapa penunjuk teknikal untuk mengenal pasti isyarat beli dan jual. Kelebihan strategi ini terletak pada logiknya yang mudah dan jelas, isyarat yang agak boleh dipercayai, dan kesesuaian untuk pemula untuk belajar dan menggunakan. Walau bagaimanapun, ia juga membawa risiko seperti pengenalan trend yang tertinggal, perdagangan yang kerap, dan kesukaran dalam pemilihan parameter. Untuk meningkatkan lagi prestasi strategi, langkah-langkah pengoptimuman seperti memperkenalkan lebih banyak keadaan penapisan, masa masuk dan keluar, menyesuaikan parameter secara dinamik, dan menambah pengurusan kedudukan boleh dipertimbangkan. Secara keseluruhan, Strategi GM-8 & ADX Dual Moving Average menyediakan kerangka asas yang baik untuk perdagangan kuantitatif dan bernilai penyempurnaan dan peningkatan yang berterusan dalam amalan.


/*backtest
start: 2023-04-24 00:00:00
end: 2024-04-29 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("GM-8 and ADX Strategy with Second EMA", overlay=true)

// Input parameters
gm_period = input(15, title="GM-15 Period")
second_ema_period = input(59, title="Second EMA Period")
adx_period = input(8, title="ADX Period")
adx_threshold = input(34, title="ADX Threshold")
lot_size = input.float(0.4, title="Lot Size")

// Calculate the ADX manually
adx(high, low, close, length) =>
    sum_truerange = 0.0
    sum_plusDM = 0.0
    sum_minusDM = 0.0
    for i = 1 to length
        truerange_calc = high[i] - low[i]
        truerange_prev_close = high[i] - close[i-1]
        truerange_close = low[i] - close[i-1]
        truerange_calc := truerange_prev_close > truerange_calc ? truerange_prev_close : truerange_calc
        truerange_calc := truerange_close > truerange_calc ? truerange_close : truerange_calc
        sum_truerange := sum_truerange + truerange_calc
        plusDM = high[i] - high[i-1] > low[i-1] - low[i] and high[i] - high[i-1] > 0 ? high[i] - high[i-1] : 0
        sum_plusDM := sum_plusDM + plusDM
        minusDM = low[i-1] - low[i] > high[i] - high[i-1] and low[i-1] - low[i] > 0 ? low[i-1] - low[i] : 0
        sum_minusDM := sum_minusDM + minusDM
    plusDI = sum_plusDM / sum_truerange * 100
    minusDI = sum_minusDM / sum_truerange * 100
    sumDI = plusDI + minusDI
    adx_value = 100 * (plusDI - minusDI) / (sumDI == 0 ? 1 : sumDI)

// Calculate indicators
gm_8 = ta.sma(close, gm_period)
second_ema = ta.ema(close, second_ema_period)
adx_value = adx(high, low, close, adx_period)

// Define buy and sell conditions
buy_condition = ta.crossover(close, gm_8) and close > gm_8 and close > second_ema and adx_value > adx_threshold
sell_condition = ta.crossunder(close, gm_8) and close < gm_8 and close < second_ema and adx_value > adx_threshold

// Entry and exit logic
if (buy_condition)
    strategy.entry("Buy", strategy.long, qty=lot_size)

if (sell_condition)
    strategy.entry("Sell", strategy.short, qty=lot_size)

// Exit conditions
exit_buy_condition = ta.crossunder(close, gm_8) and close < gm_8
exit_sell_condition = ta.crossover(close, gm_8) and close > gm_8

if (exit_buy_condition)
    strategy.close("Buy")

if (exit_sell_condition)
    strategy.close("Sell")


Berkaitan

Lebih lanjut