Strategi perdagangan kuantitatif berdasarkan Ichimoku Cloud Breakout dan Indeks ADX

Penulis:ChaoZhang, Tanggal: 2024-02-02 17:50:30
Tag:

img

Gambaran umum

Nama strategi ini adalah Quantitative Trading Strategy Based on Ichimoku Cloud Breakout and ADX Index. Ini menggabungkan grafik awan Ichimoku dengan Average Directional Movement Index (ADX) untuk menentukan kapan mengambil posisi panjang atau pendek. Secara khusus, ia memasuki posisi ketika harga menembus area kunci grafik awan dan ADX menunjukkan tren yang kuat.

Logika Strategi

Strategi ini menggunakan Ichimoku Cloud dari indikator Ichimoku Kinko Hyo untuk mengidentifikasi area pendukung dan resistensi utama.

Sinyal masuk panjang:

  • Garis konversi melintasi garis dasar
  • Garis keterlambatan melintasi di atas sumbu 0
  • Harga di atas awan
  • ADX di bawah 45 (menunjukkan tren yang tidak terlalu meluas)
  • +DI di atas -DI (menunjukkan tren naik)

Sinyal masuk pendek:

  • Garis konversi melintasi di bawah garis dasar
  • Garis keterlambatan melintasi di bawah sumbu 0
  • Harga di bawah dasar awan
  • ADX di atas 45 (menunjukkan kemungkinan pembalikan tren)
  • +DI di bawah -DI (menunjukkan tren penurunan)

Analisis Keuntungan

Strategi ini menggabungkan analisis pola grafik dan indikator analisis tren, yang dapat secara efektif menentukan tren pasar dan area yang kuat.

  1. Menggunakan awan Ichimoku untuk menentukan level support/resistance utama untuk menangkap tren yang kuat
  2. Mengintegrasikan indeks ADX untuk mengukur kekuatan tren yang sebenarnya, menghindari perdagangan palsu
  3. Aturan yang jelas dan mudah diikuti untuk perdagangan langsung

Risiko dan Solusi

Ada beberapa risiko dengan strategi ini, terutama di sekitar ketidakstabilan dalam penentuan tren ADX. Risiko dan solusi adalah:

  1. ADX memiliki efek keterlambatan, dapat melewatkan pembalikan cepat.
  2. ADX tidak bekerja dengan baik di pasar berkisar. dapat menambahkan filter seperti saluran BOLL
  3. Ichimoku cloud juga bisa gagal. dapat menyesuaikan parameter atau menambahkan indikator bantu

Saran Optimalisasi

Strategi dapat dioptimalkan lebih lanjut dengan cara berikut:

  1. Sesuaikan parameter Ichimoku agar sesuai dengan lebih banyak instrumen
  2. Tambahkan stop loss untuk mengendalikan kerugian perdagangan tunggal
  3. Masukkan lebih banyak indikator untuk menyaring sinyal
  4. Tambahkan prediksi pembelajaran mesin untuk lebih menentukan sinyal tren

Kesimpulan

Strategi ini menggabungkan grafik awan Ichimoku dan indeks tren ADX untuk membentuk sistem perdagangan kuantitatif yang lengkap. Ini mengidentifikasi tingkat dukungan / resistensi utama sambil juga menilai tren. Ini dapat secara efektif menangkap peluang pasar. Strategi ini mudah diterapkan dalam perdagangan langsung dan juga memiliki ruang untuk optimasi. Secara keseluruhan ini adalah strategi kuantitatif berkualitas.


/*backtest
start: 2023-01-26 00:00:00
end: 2024-02-01 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/
// © Coinrule

//@version=5
strategy('Ichimoku Cloud with ADX (By Coinrule)',
         overlay=true,
         initial_capital=1000,
         process_orders_on_close=true,
         default_qty_type=strategy.percent_of_equity,
         default_qty_value=30,
         commission_type=strategy.commission.percent,
         commission_value=0.1)

showDate = input(defval=true, title='Show Date Range')
timePeriod = time >= timestamp(syminfo.timezone, 2022, 1, 1, 0, 0)


// Stop Loss and Take Profit for Shorting
Stop_loss = input(1) / 100
Take_profit = input(5) / 100
longStopPrice = strategy.position_avg_price * (1 - Stop_loss)
longTakeProfit = strategy.position_avg_price * (1 + Take_profit)


// Inputs
ts_bars = input.int(9, minval=1, title='Tenkan-Sen Bars')
ks_bars = input.int(26, minval=1, title='Kijun-Sen Bars')
ssb_bars = input.int(52, minval=1, title='Senkou-Span B Bars')
cs_offset = input.int(26, minval=1, title='Chikou-Span Offset')
ss_offset = input.int(26, minval=1, title='Senkou-Span Offset')
long_entry = input(true, title='Long Entry')
short_entry = input(true, title='Short Entry')

middle(len) => math.avg(ta.lowest(len), ta.highest(len))

// Ichimoku Components
tenkan = middle(ts_bars)
kijun = middle(ks_bars)
senkouA = math.avg(tenkan, kijun)
senkouB = middle(ssb_bars)

// Plot Ichimoku Kinko Hyo
plot(tenkan, color=color.new(#0496ff, 0), title='Tenkan-Sen')
plot(kijun, color=color.new(#991515, 0), title='Kijun-Sen')
plot(close, offset=-cs_offset + 1, color=color.new(#459915, 0), title='Chikou-Span')
sa = plot(senkouA, offset=ss_offset - 1, color=color.new(color.green, 0), title='Senkou-Span A')
sb = plot(senkouB, offset=ss_offset - 1, color=color.new(color.red, 0), title='Senkou-Span B')
fill(sa, sb, color=senkouA > senkouB ? color.green : color.red, title='Cloud color', transp=90)

ss_high = math.max(senkouA[ss_offset - 1], senkouB[ss_offset - 1])
ss_low = math.min(senkouA[ss_offset - 1], senkouB[ss_offset - 1])


// ADX
[pos_dm, neg_dm, avg_dm] = ta.dmi(14, 14)


// Entry/Exit Signals
tk_cross_bull = tenkan > kijun
tk_cross_bear = tenkan < kijun
cs_cross_bull = ta.mom(close, cs_offset - 1) > 0
cs_cross_bear = ta.mom(close, cs_offset - 1) < 0
price_above_kumo = close > ss_high
price_below_kumo = close < ss_low

bullish = tk_cross_bull and cs_cross_bull and price_above_kumo and avg_dm < 45 and pos_dm > neg_dm
bearish = tk_cross_bear and cs_cross_bear and price_below_kumo and avg_dm > 45 and pos_dm < neg_dm

strategy.entry('Long', strategy.long, when=bullish and long_entry and timePeriod)
strategy.close('Long', when=bearish and not short_entry)

strategy.entry('Short', strategy.short, when=bearish and short_entry and timePeriod)
strategy.close('Short', when=bullish and not long_entry)




Lebih banyak