Strategi Waktu ADX Rata-rata Bergerak Ganda

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

img

Gambaran umum

Strategi Dual Moving Average ADX Timing mengidentifikasi tren dengan menggabungkan rata-rata bergerak 2/20 dan indikator ADXR untuk menghasilkan sinyal perdagangan di awal tren.

Logika Strategi

Logika inti dari strategi Dual Moving Average ADX Timing didasarkan pada komponen utama berikut:

  1. 2/20 Exponential Moving Average (EMA)

    • Menggunakan 2 EMA dengan parameter yang berbeda dari 2 dan 20 hari.
    • Sebuah penyeberangan harga ke atas di atas EMA 2 hari dianggap sinyal bullish.
    • Sebuah penyeberangan harga ke bawah di bawah EMA 20 hari dianggap sebagai sinyal penurunan.
  2. Indikator ADXR

    • ADXR adalah varian dari indikator ADX.
    • Ini menghitung rata-rata bergerak sederhana dari ADX untuk meratakan fluktuasi.
    • ADXR di bawah ambang batas menunjukkan tren yang lebih lemah.
    • ADXR di atas ambang batas menunjukkan tren yang lebih kuat.
  3. Sinyal perdagangan

    • Sinyal bullish dihasilkan ketika EMA 2 hari Golden Cross AND ADXR lebih tinggi dari batas.
    • Sinyal penurunan dihasilkan ketika EMA Dead Cross dan ADXR 20 hari berada di bawah ambang batas.
    • Menggabungkan dengan ADXR menyaring beberapa istirahat palsu dan meningkatkan sinyal tren nyata.

Inovasi utama dari strategi ini adalah menggunakan indikator ADXR untuk mengidentifikasi tren pada tahap awal, dan menggabungkannya dengan sinyal rata-rata bergerak tradisional untuk meningkatkan kualitas dan stabilitas.

Keuntungan

Keuntungan utama dari strategi Dual Moving Average ADX Timing:

  1. Menggabungkan dua MAs dan ADXR, sinyal lebih akurat dan dapat diandalkan dengan sinyal palsu disaring.
  2. Mengidentifikasi tren awal dengan menggunakan ADXR untuk mendeteksi tahap awal tren.
  3. Penyesuaian parameter ADXR yang fleksibel untuk beradaptasi dengan perubahan kondisi pasar.
  4. Logika sederhana dan jelas, mudah dimengerti, nyaman untuk menyesuaikan parameter.
  5. Terapan di berbagai lingkungan pasar dengan kinerja historis yang layak.

Risiko

Ada juga beberapa risiko utama untuk strategi ini:

  1. Pengaturan parameter ADXR yang tidak benar dapat menyebabkan perdagangan hilang.

    • Perluas rentang parameter ADXR atau sesuaikan dengan produk.
  2. Lebih banyak sinyal palsu dapat terjadi dalam kondisi pasar khusus.

    • Pertimbangkan untuk menggabungkan dengan indikator lain untuk penyaringan sinyal lebih lanjut.
  3. Parameter EMA tetap gagal beradaptasi dengan perubahan pasar.

    • Uji versi optimasi dengan parameter EMA adaptif.
  4. Tidak dapat mengidentifikasi rentang perdagangan, dapat menghasilkan perdagangan yang terlalu tidak signifikan.

    • Tambahkan logika tambahan atau indikator untuk mendeteksi pasar yang bervariasi.

Arah Peningkatan

Strategi dapat dioptimalkan dan ditingkatkan lebih lanjut dari aspek berikut:

  1. Optimasi parameter EMA untuk adaptasi otomatis dengan kondisi pasar.

  2. Memperluas rentang parameter ADXR untuk menangkap sinyal perdagangan yang lebih efektif.

  3. Tambahkan indikator penilaian tren tambahan untuk sinyal kombinasi untuk meningkatkan kualitas.

  4. Tambahkan strategi stop loss dan mengambil standar keuntungan untuk mengendalikan risiko per perdagangan.

  5. Mengoptimalkan manajemen uang untuk ukuran posisi dinamis berdasarkan status akun.

Kesimpulan

Strategi Dual Moving Average ADX Timing secara inovatif menggabungkan rata-rata bergerak ganda tradisional dan indikator ADXR untuk meningkatkan kualitas sinyal dan meningkatkan stabilitas. Ini dapat secara efektif mengidentifikasi tahap awal tren dengan kinerja historis yang layak.


/*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 banyak