
Strategi pilihan ADX dua rata-rata mengidentifikasi tren dengan menggunakan kombinasi garis rata-rata 2⁄20 dan ADXR untuk menghasilkan sinyal perdagangan pada tahap awal tren. Strategi ini pertama-tama menggunakan rata-rata bergerak indikator 2⁄20 untuk menentukan arah tren harga, kemudian digabungkan dengan indikator ADXR untuk mengkonfirmasi sinyal tren lebih lanjut, sehingga menghasilkan sinyal perdagangan yang lebih andal.
Logika inti dari strategi ADX timing linear adalah berdasarkan beberapa bagian:
2⁄20 Indeks Moving Average (EMA)
Indikator ADXR
Sinyal perdagangan
Inovasi utama dari strategi ini adalah penggunaan indikator ADXR untuk mengidentifikasi tren pada tahap awal dan dikombinasikan dengan sinyal dari strategi linear tradisional, sehingga meningkatkan kualitas sinyal dan meningkatkan stabilitas strategi.
Strategi pilihan ADX linear-ganda memiliki keuntungan utama sebagai berikut:
Ada beberapa risiko utama dari strategi ADX linear ganda:
Setting parameter ADXR yang tidak tepat dapat menyebabkan kehilangan peluang perdagangan.
Dalam situasi tertentu, sinyal palsu bisa lebih banyak.
Parameter EMA tetap dan tidak dapat beradaptasi dengan perubahan pasar.
Tidak dapat mengidentifikasi zona fluktuasi harga, yang dapat menghasilkan terlalu banyak transaksi yang tidak valid.
Strategi pengambilan ADX linear ganda dapat dioptimalkan lebih lanjut dalam beberapa hal:
Parameter EMA dioptimalkan sehingga dapat berubah secara otomatis sesuai dengan situasi.
Rentang parameter ADXR telah dioptimalkan untuk mencakup lebih banyak sinyal perdagangan yang efektif.
Menambahkan indikator penilaian tren tambahan, kombinasi menghasilkan sinyal, meningkatkan kualitas.
Meningkatkan strategi stop loss, menetapkan standar stop loss, dan mengendalikan risiko transaksi tunggal.
Mengoptimalkan strategi pengelolaan dana, memungkinkan untuk menyesuaikan posisi secara otomatis sesuai dengan status akun.
Strategi pilihan waktu ADX dua garis rata dengan kombinasi inovatif dari strategi dua garis rata tradisional dan indikator ADXR, meningkatkan kualitas sinyal, meningkatkan stabilitas strategi, mampu mengidentifikasi tren secara efektif pada tahap awal, kinerja historis yang lebih baik. Strategi ini memiliki ruang yang lebih besar untuk dioptimalkan dan dapat ditingkatkan dalam banyak hal, sehingga menunjukkan kemampuan beradaptasi yang kuat dan ruang untuk menghasilkan keuntungan di pasar 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)