Trend ADX Minyak mentah Mengikut Strategi

Penulis:ChaoZhang, Tarikh: 2024-01-25 15:18:15
Tag:

img

Ringkasan

Strategi ini diadaptasi dari strategi perdagangan niaga hadapan minyak mentah percuma Kevin Davey. Ia menggunakan penunjuk ADX untuk menentukan trend di pasaran minyak mentah dan, digabungkan dengan prinsip harga, melaksanakan strategi perdagangan automatik yang mudah dan praktikal untuk minyak mentah.

Prinsip Strategi

  1. Mengira penunjuk ADX 14 tempoh
  2. Apabila ADX> 10, pasaran dianggap mempunyai trend
  3. Jika harga penutupan lebih tinggi daripada harga penutupan 65 bar yang lalu, ia menunjukkan harga pecah dan isyarat panjang.
  4. Jika harga penutupan lebih rendah daripada harga penutupan 65 bar yang lalu, ia menunjukkan harga pecah dan isyarat pendek.
  5. Tetapkan stop loss dan mengambil keuntungan selepas memasuki kedudukan

Strategi ini terutamanya bergantung pada penunjuk ADX untuk menentukan trend, dan menghasilkan isyarat perdagangan berdasarkan penembusan harga kitaran tetap di bawah keadaan trend.

Analisis Kelebihan

  • Gunakan ADX untuk menentukan trend dan mengelakkan peluang trend yang hilang
  • Penembusan harga kitaran tetap menjana isyarat dengan hasil backtest yang baik
  • Kod intuitif dan mudah, mudah difahami dan diubah suai
  • Kevin Davey's pengesahan perdagangan hidup bertahun-tahun, bukan lengkung yang sesuai

Analisis Risiko

  • Sebagai penunjuk utama, ADX sensitif kepada pemilihan parameter dan pemilihan kitaran pecah
  • Penembusan kitaran tetap mungkin kehilangan beberapa peluang
  • Tetapan stop loss dan mengambil keuntungan yang tidak betul boleh meningkatkan kerugian
  • Mungkin terdapat perbezaan antara hasil perdagangan langsung dan hasil backtest

Arahan pengoptimuman

  • Mengoptimumkan parameter ADX dan kitaran pecah
  • Meningkatkan pelarasan dinamik saiz kedudukan
  • Mengubahsuai dan meningkatkan strategi secara berterusan berdasarkan hasil backtest dan pengesahan perdagangan langsung
  • Memperkenalkan pembelajaran mesin dan teknik pembelajaran mendalam untuk pengoptimuman strategi

Ringkasan

Secara keseluruhan, ini adalah strategi perdagangan minyak mentah yang sangat praktikal. Ia menggunakan penunjuk ADX untuk menentukan trend dengan sangat munasabah. Prinsip harga pecah adalah mudah dan berkesan dengan hasil backtest yang baik. Pada masa yang sama, sebagai strategi percuma awam Kevin Davey, ia mempunyai kebolehpercayaan yang sangat kuat dalam pertempuran sebenar. Walaupun masih ada ruang untuk peningkatan dalam strategi, ia adalah pilihan yang sangat sesuai untuk pemula dan peniaga modal kecil untuk memulakan dan berlatih.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// Strategy idea coded from EasyLanguage to Pinescript
//@version=5
strategy("Kevin Davey Crude free crude oil strategy", shorttitle="CO Fut", format=format.price, precision=2, overlay = true, calc_on_every_tick = true)
adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Length")
dirmov(len) =>
	up = ta.change(high)
	down = -ta.change(low)
	plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
	minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
	truerange = ta.rma(ta.tr, len)
	plus = fixnan(100 * ta.rma(plusDM, len) / truerange)
	minus = fixnan(100 * ta.rma(minusDM, len) / truerange)
	[plus, minus]
adx(dilen, adxlen) =>
	[plus, minus] = dirmov(dilen)
	sum = plus + minus
	adx = 100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
sig = adx(dilen, adxlen)
plot(sig, color=color.red, title="ADX")

buy = sig > 10 and (close - close[65]) > 0 and (close - close[65])[1] < 0
sell = sig > 10 and (close - close[65]) < 0 and (close - close[65])[1] > 0

plotshape(buy, style = shape.arrowup, location = location.belowbar,size = size.huge)
plotshape(sell, style = shape.arrowdown, location = location.abovebar,size = size.huge)

if buy
	strategy.entry("long", strategy.long)
if sell
	strategy.entry("short", strategy.short)

if strategy.position_size != 0
	strategy.exit("long", profit = 450, loss = 300)
	strategy.exit("short", profit = 450, loss = 300)


// GetTickValue() returns the currency value of the instrument's
// smallest possible price movement.
GetTickValue() =>
    syminfo.mintick * syminfo.pointvalue

// On the last historical bar, make a label to display the
// instrument's tick value
if barstate.islastconfirmedhistory
    label.new(x=bar_index + 1, y=close, style=label.style_label_left,
         color=color.black, textcolor=color.white, size=size.large, 
         text=syminfo.ticker + " has a tick value of:\n" + 
             syminfo.currency + " " + str.tostring(GetTickValue()))

Lebih lanjut