Strategi Perdagangan Crossover ADX


Tanggal Pembuatan: 2023-12-08 15:49:12 Akhirnya memodifikasi: 2023-12-08 15:49:12
menyalin: 0 Jumlah klik: 961
1
fokus pada
1621
Pengikut

Strategi Perdagangan Crossover ADX

Ringkasan

Strategi ini menggabungkan penggunaan indikator indeks bergerak ((ADX) dan indeks gerakan ke arah atas ((DI +) untuk menentukan arah dan tren pasar, sementara menggunakan rata-rata bergerak cepat dan lambat untuk menentukan arah dan waktu perdagangan, termasuk dalam strategi perdagangan yang mengikuti tren. Strategi ini dapat secara efektif menangkap titik balik dari garis tengah yang pendek, dan berkinerja baik di pasar dengan volatilitas rendah dan tren yang jelas.

Prinsip

Logika inti dari strategi ini adalah bahwa sinyal beli dihasilkan ketika garis + DI menerobos ADX dari arah bawah, dan sinyal jual dihasilkan ketika garis + DI terjatuh dari arah atas ke arah ADX. Oleh karena itu, strategi ini bergantung pada persilangan antara indikator DI dan ADX untuk menilai tren pasar dan titik balik. Sementara itu, hubungan antara garis cepat dan lambat digunakan untuk menilai tren pasar secara keseluruhan, dan hanya akan dipertimbangkan untuk menghasilkan sinyal perdagangan ketika EMA cepat lebih tinggi dari EMA lambat.

Secara khusus, sinyal beli akan muncul jika kondisi berikut ini terpenuhi: 1. EMA cepat lebih tinggi dari EMA lambat 2 , + DI garis menembus garis ADX dari bawah 3 ADX di bawah 30

Sinyal jual muncul ketika kondisi berikut terpenuhi: 1 ADX lebih dari 30 2 , + DI garis jatuh dari atas ke bawah garis ADX

Strategi ini juga menambahkan logika stop loss, yang akan keluar dari semua posisi ketika harga di bawah harga stop loss.

Keunggulan

Strategi ini menggabungkan DI, ADX, dan indikator garis rata-rata, yang dapat secara efektif menentukan titik-titik perubahan tren pasar. Strategi ini memiliki keuntungan sebagai berikut:

  1. Menggunakan indikator DI dan ADX untuk menentukan sinyal pembalikan tren, lokasi masuk dan keluar yang tepat
  2. Sistem Penyaringan EMA yang cepat memberikan penilaian tren besar untuk menghindari perdagangan yang salah
  3. Menggunakan nilai ADX untuk menilai tren kuat atau lemah, hanya berdagang saat tren lemah, menghindari risiko false breakout
  4. Mendapatkan Stop Loss Mechanism untuk Mengontrol Risiko Turun
  5. Syarat masuk ketat, menghindari risiko membeli dan menjual agiri
  6. Kondisi yang jelas, waktu yang tepat untuk menghentikan dan menghentikan kerusakan

Risiko

Strategi ini juga memiliki beberapa risiko yang perlu diperhatikan:

  1. Indeks ADX mengalami keterlambatan dan mungkin melewatkan saat terbaik untuk membalikkan harga
  2. Indikator ADX dan DI akan menghasilkan lebih banyak sinyal salah ketika pasar bergejolak
  3. Setting rata-rata yang tidak tepat dapat menyebabkan peluang perdagangan yang hilang atau sinyal penyaringan yang salah
  4. Stop loss set terlalu longgar untuk mengontrol risiko secara efektif

Risiko ini dapat ditingkatkan dengan mengoptimalkan parameter ADX dan rata-rata, menyesuaikan tingkat stop loss, dan mengkonfirmasi sinyal dengan indikator lain.

Arah optimasi

Strategi ini masih bisa dioptimalkan lebih jauh:

  1. ADX dapat diuji dengan siklus panjang yang berbeda untuk mencari kombinasi parameter yang optimal
  2. Anda dapat menambahkan indikator lain seperti RSI, Bollinger Bands, dan lain-lain untuk mengkonfirmasi sinyal perdagangan
  3. Menggunakan algoritma pembelajaran mesin untuk menemukan kombinasi parameter dan aturan perdagangan yang optimal secara otomatis
  4. Anda dapat melakukan hedging terhadap risiko tailing dengan menyesuaikan tingkat stop loss secara dinamis.
  5. Model penilaian multi-faktor dapat dibuat untuk membuat aturan masuk dan keluar lebih kuat

Meringkaskan

Strategi ADX cross-trend secara keseluruhan lebih stabil, dan dapat secara efektif menangkap ruang reversal pada periode sebelum fluktuasi, tetapi perlu memperhatikan pengendalian risiko. Dengan cara lebih lanjut mengoptimalkan parameter pengaturan, masuk yang ketat dan aturan stop loss, dan lain-lain, dapat memperoleh hasil yang lebih baik setelah risiko disesuaikan. Strategi ini berlaku untuk akun perdagangan garis pendek yang dipegang di garis panjang.

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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © mohanee

//@version=4
//ADX strategy
SmoothedTrueRange=0.00
SmoothedDirectionalMovementPlus=0.00
SmoothedDirectionalMovementMinus=0.00


strategy(title="ADX strategy", overlay=false,pyramiding=3, default_qty_type=strategy.fixed, default_qty_value=3,    initial_capital=10000, currency=currency.USD)

len = input(11, title="ADX Length", minval=1)
threshold = input(30, title="threshold", minval=5)

fastEma=input(13, title="Fast EMA",minval=1, maxval=50)
slowEma=input(55, title="Slow EMA",minval=10, maxval=200)
stopLoss =input(8, title="Stop Loss",minval=1)   //


TrueRange = max(max(high-low, abs(high-nz(close[1]))), abs(low-nz(close[1])))
DirectionalMovementPlus = high-nz(high[1]) > nz(low[1])-low ? max(high-nz(high[1]), 0): 0
DirectionalMovementMinus = nz(low[1])-low > high-nz(high[1]) ? max(nz(low[1])-low, 0): 0


SmoothedTrueRange:= nz(SmoothedTrueRange[1]) - (nz(SmoothedTrueRange[1])/len) + TrueRange

SmoothedDirectionalMovementPlus := nz(SmoothedDirectionalMovementPlus[1]) - (nz(SmoothedDirectionalMovementPlus[1])/len) + DirectionalMovementPlus
SmoothedDirectionalMovementMinus:= nz(SmoothedDirectionalMovementMinus[1]) - (nz(SmoothedDirectionalMovementMinus[1])/len) + DirectionalMovementMinus

DIPlus = SmoothedDirectionalMovementPlus / SmoothedTrueRange * 100
DIMinus = SmoothedDirectionalMovementMinus / SmoothedTrueRange * 100
DX = abs(DIPlus-DIMinus) / (DIPlus+DIMinus)*100
ADX = sma(DX, len)

plot(DIPlus, color=color.green, title="DI+")
//plot(DIMinus, color=color.red, title="DI-")
plot(ADX, color=color.black, title="ADX")
hline(threshold, color=color.black, linestyle=hline.style_dashed)

fastEmaVal=ema(close,fastEma)
slowEmaVal=ema(close,slowEma)




//long condition
longCondition=  ADX < threshold  and crossover(DIPlus,ADX)  and fastEmaVal > slowEmaVal


barcolor(longCondition ? color.yellow: na)

strategy.entry(id="ADXLE", long=true,  when= longCondition  and strategy.position_size<1) 

barcolor(strategy.position_size>1 ? color.blue: na)
bgcolor(strategy.position_size>1 ? color.blue: na)



//Add
strategy.entry(id="ADXLE", comment="Add", long=true,  when= strategy.position_size>1 and close<strategy.position_avg_price and crossover(DIPlus,ADX) ) 


//calculate stop Loss
stopLossVal =  strategy.position_avg_price -  (strategy.position_avg_price*stopLoss*0.01)

strategy.close(id="ADXLE",comment="SL Exit",    when=close<stopLossVal)   //close all on stop loss


//exit condition
exitCondition=  ADX > threshold  and crossunder(DIPlus,ADX) // and fastEmaVal > slowEmaVal
strategy.close(id="ADXLE",comment="TPExitAll",    qty=strategy.position_size ,   when= exitCondition)   //close all