Strategi Masa ADX Purata Bergerak Berganda

Penulis:ChaoZhang, Tarikh: 2023-12-06 15:48:29
Tag:

img

Ringkasan

Strategi Waktu Rata-rata Bergerak ADX Berganda mengenal pasti trend dengan menggabungkan purata bergerak 2/20 dan penunjuk ADXR untuk menjana isyarat perdagangan pada permulaan trend. Ia mula-mula menggunakan purata bergerak eksponensial 2/20 untuk menentukan arah trend harga, kemudian mengesahkan isyarat trend dalam kombinasi dengan penunjuk ADXR, dengan itu menghasilkan isyarat perdagangan yang lebih boleh dipercayai.

Logika Strategi

Logik teras strategi Dual Moving Average ADX Timing adalah berdasarkan komponen utama berikut:

  1. 2/20 Exponential Moving Average (EMA)

    • Menggunakan 2 EMA dengan parameter yang berbeza 2 dan 20 hari.
    • Pembebasan harga ke atas di atas EMA 2 hari dianggap sebagai isyarat kenaikan.
    • Pembebasan harga ke bawah di bawah EMA 20 hari dianggap sebagai isyarat penurunan.
  2. Penunjuk ADXR

    • ADXR adalah varian penunjuk ADX.
    • Ia mengira purata mudah bergerak ADX untuk meluruskan turun naik.
    • ADXR di bawah ambang menunjukkan trend yang lebih lemah.
    • ADXR di atas ambang menunjukkan trend yang lebih kuat.
  3. Isyarat perdagangan

    • Isyarat menaik dihasilkan apabila EMA Golden Cross dan ADXR 2 hari melebihi ambang.
    • Isyarat penurunan dihasilkan apabila EMA 20 hari Dead Cross AND ADXR berada di bawah ambang.
    • Digabungkan dengan ADXR menapis beberapa pecah palsu dan meningkatkan isyarat trend sebenar.

Inovasi utama strategi ini adalah menggunakan penunjuk ADXR untuk mengenal pasti trend pada peringkat awal, dan menggabungkannya dengan isyarat purata bergerak tradisional untuk meningkatkan kualiti dan kestabilan.

Kelebihan

Kelebihan utama strategi Tempoh ADX Purata Bergerak Berganda:

  1. Menggabungkan dua MAs dan ADXR, isyarat lebih tepat dan boleh dipercayai dengan isyarat palsu disaring.
  2. Mengenali trend awal dengan menggunakan ADXR untuk mengesan peringkat awal trend.
  3. Penyesuaian parameter ADXR yang fleksibel untuk menyesuaikan diri dengan keadaan pasaran yang berubah.
  4. Logik yang mudah dan jelas, mudah difahami, mudah untuk menyesuaikan parameter.
  5. Boleh digunakan dalam pelbagai persekitaran pasaran dengan prestasi sejarah yang baik.

Risiko

Terdapat juga beberapa risiko utama untuk strategi ini:

  1. Tetapan parameter ADXR yang tidak betul boleh menyebabkan perdagangan hilang.

    • Memperluaskan julat parameter ADXR atau menyesuaikan mengikut produk.
  2. Lebih banyak isyarat palsu boleh berlaku dalam keadaan pasaran khas.

    • Pertimbangkan untuk menggabungkan dengan penunjuk lain untuk penapisan isyarat lanjut.
  3. Parameter EMA tetap gagal menyesuaikan diri dengan perubahan pasaran.

    • Uji versi pengoptimuman dengan parameter EMA adaptif.
  4. Tidak dapat mengenal pasti julat dagangan, boleh menghasilkan dagangan yang terlalu tidak penting.

    • Tambah logik atau penunjuk tambahan untuk mengesan pasaran yang berbeza.

Arahan Peningkatan

Strategi ini boleh dioptimumkan dan ditingkatkan dari aspek berikut:

  1. Pengoptimuman parameter EMA untuk penyesuaian automatik kepada keadaan pasaran.

  2. Memperluas julat parameter ADXR untuk menangkap isyarat perdagangan yang lebih berkesan.

  3. Tambah penunjuk penilaian trend tambahan untuk isyarat gabungan untuk meningkatkan kualiti.

  4. Tambah strategi stop loss dan mengambil standard keuntungan untuk mengawal risiko setiap perdagangan.

  5. Mengoptimumkan pengurusan wang untuk saiz kedudukan dinamik berdasarkan status akaun.

Kesimpulan

Strategi Dual Moving Average ADX Timing menggabungkan secara inovatif purata bergerak ganda tradisional dan penunjuk ADXR untuk meningkatkan kualiti isyarat dan meningkatkan kestabilan. Ia dapat mengenal pasti peringkat awal trend dengan prestasi sejarah yang baik. Strategi ini mempunyai ruang yang cukup untuk pengoptimuman untuk menjadikannya kukuh dan menguntungkan di pasaran yang lebih kompleks.


/*backtest
start: 2023-11-05 00:00:00
end: 2023-12-05 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 04/04/2022
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This indicator plots 2/20 exponential moving average. For the Mov 
// Avg X 2/20 Indicator, the EMA bar will be painted when the Alert criteria is met.
//
// Second strategy
// The Average Directional Movement Index Rating (ADXR) measures the strength 
// of the Average Directional Movement Index (ADX). It's calculated by taking 
// the average of the current ADX and the ADX from one time period before 
// (time periods can vary, but the most typical period used is 14 days).
// Like the ADX, the ADXR ranges from values of 0 to 100 and reflects strengthening 
// and weakening trends. However, because it represents an average of ADX, values 
// don't fluctuate as dramatically and some analysts believe the indicator helps 
// better display trends in volatile markets.
//
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
EMA20(Length) =>
    pos = 0.0
    xPrice = close
    xXA = ta.ema(xPrice, Length)
    nHH = math.max(high, high[1])
    nLL = math.min(low, low[1])
    nXS = nLL > xXA or nHH < xXA ? nLL : nHH
    iff_1 = nXS < close[1] ? 1 : nz(pos[1], 0)
    pos := nXS > close[1] ? -1 : iff_1
    pos

fADX(Len) =>
    up = ta.change(high)
    down = -ta.change(low)
    trur = ta.rma(ta.tr, Len)
    plus = fixnan(100 * ta.rma(up > down and up > 0 ? up : 0, Len) / trur)
    minus = fixnan(100 * ta.rma(down > up and down > 0 ? down : 0, Len) / trur)
    sum = plus + minus 
    100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), Len)

ADXR(LengthADX,LengthADXR,Signal1,Signal2) =>
    pos = 0.0
    xADX = fADX(LengthADX)
    xADXR = (xADX + xADX[LengthADXR]) / 2
    pos := xADXR < Signal1 ? 1 : xADXR > Signal2 ? -1 : nz(pos[1], 0) 
    pos

strategy(title='Combo 2/20 EMA & ADXR', shorttitle='Combo', overlay=true)
var I1 = '●═════ 2/20 EMA ═════●'
Length = input.int(14, minval=1, group=I1)
var I2 = '●═════ ADXR  ═════●'
LengthADX = input(title="Length ADX", defval=14)
LengthADXR = input(title="Length ADXR", defval=14)
Signal1 = input.float(13, step=0.01)
Signal2 = input.float(45, step=0.01)
var misc = '●═════ MISC ═════●'
reverse = input.bool(false, title='Trade reverse', group=misc)
var timePeriodHeader = '●═════ Time Start ═════●'
d = input.int(1, title='From Day', minval=1, maxval=31, group=timePeriodHeader)
m = input.int(1, title='From Month', minval=1, maxval=12, group=timePeriodHeader)
y = input.int(2005, title='From Year', minval=0, group=timePeriodHeader)
StartTrade = time > timestamp(y, m, d, 00, 00) ? true : false
posEMA20 = EMA20(Length)
prePosADXR = ADXR(LengthADX,LengthADXR,Signal1,Signal2)
iff_1 = posEMA20 == -1 and prePosADXR == -1 and StartTrade ? -1 : 0
pos = posEMA20 == 1 and prePosADXR == 1 and StartTrade ? 1 : iff_1
iff_2 = reverse and pos == -1 ? 1 : pos
possig = reverse and pos == 1 ? -1 : iff_2
if possig == 1
    strategy.entry('Long', strategy.long)
if possig == -1
    strategy.entry('Short', strategy.short)
if possig == 0
    strategy.close_all()
barcolor(possig == -1 ? #b50404 : possig == 1 ? #079605 : #0536b3)

Lebih lanjut