Strategi dagangan kuantitatif berdasarkan kejayaan Yiyun dan penunjuk ADX


Tarikh penciptaan: 2024-02-02 17:50:30 Akhirnya diubah suai: 2024-02-02 17:50:30
Salin: 0 Bilangan klik: 403
1
fokus pada
1212
Pengikut

Strategi dagangan kuantitatif berdasarkan kejayaan Yiyun dan penunjuk ADX

Gambaran keseluruhan

Strategi ini dinamakan sebagai strategi perdagangan kuantitatif yang berasaskan penembusan awan dan indikator ADX. Ia menggabungkan analisis teknikal grafik awan dan indeks trend rata-rata (ADX) untuk menentukan kapan untuk membina kedudukan overhead atau kosong. Secara khusus, ia membina kedudukan apabila harga menembusi kawasan penting dari grafik awan dan indikator ADX menunjukkan trend yang kuat.

Prinsip Strategi

Strategi ini menggunakan corak grafik awan dalam indikator awan untuk menentukan kawasan sokongan dan rintangan penting. Ia juga menggabungkan kekuatan trend dengan indikator ADX. Peraturan strategi perdagangan khusus adalah sebagai berikut:

Tanda-tanda penubuhan gudang berbilang kepala:

  • Antenna beralih ke atas melalui garis asas
  • Garis lambat berputar ke atas melalui 0
  • Harga lebih tinggi daripada grafik awan
  • ADX di bawah 45 (menunjukkan trend tidak meluas)
  • +DI lebih tinggi daripada -DI (menunjukkan trend naik)

Isyarat untuk membina gudang kosong:

  • Antenna bertukar ke bawah melalui garis asas
  • Garis lambat bertukar ke bawah melalui 0
  • Harga lebih rendah daripada grafik awan
  • ADX lebih tinggi daripada 45 (menunjukkan kemungkinan trend akan berbalik)
  • +DI lebih rendah daripada-DI ((menunjukkan trend menurun)

Analisis kelebihan

Strategi ini digabungkan dengan analisis grafik teknikal dan indikator analisis trend, yang dapat menentukan pergerakan pasaran dan kawasan yang kuat. Kelebihan spesifiknya adalah sebagai berikut:

  1. Menggunakan grafik awan untuk menilai kawasan sokongan dan rintangan utama untuk menangkap trend yang kuat
  2. Menggunakan ADX untuk menilai kekuatan trend sebenar dan mengelakkan perdagangan yang salah
  3. Peraturan yang jelas dan mudah digunakan

Risiko dan Penyelesaian

Strategi ini juga mempunyai beberapa risiko, yang kebanyakannya tertumpu pada ketidakstabilan yang ditentukan oleh indeks ADX. Risiko dan penyelesaian khusus adalah sebagai berikut:

  1. Perhitungan ADX mempunyai keterlambatan, mungkin terlepas pantulan pantas. Parameter ADX boleh dikurangkan dengan sewajarnya, menjadikannya lebih sensitif
  2. ADX tidak berfungsi dengan baik dalam keadaan gegaran. Penapis indikator lain boleh ditambah, seperti saluran BOLL dan sebagainya
  3. Grafik awan juga mungkin tidak berfungsi. Parameter boleh disesuaikan atau penambahan penunjuk tambahan

Cadangan untuk mengoptimumkan strategi

Strategi ini juga boleh dioptimumkan dalam beberapa aspek:

  1. Menyesuaikan parameter grafik awan untuk lebih banyak jenis
  2. Meningkatkan strategi penangguhan kerugian dan mengawal kerugian tunggal
  3. Gabungan lebih banyak penunjuk untuk membentuk gabungan penapis
  4. Menambah modul ramalan model, menggunakan pembelajaran mesin untuk menilai lebih lanjut effector isyarat trend

ringkaskan

Strategi ini menggabungkan analisis grafik awan dan indikator penilaian trend ADX, membentuk satu set strategi perdagangan kuantitatif yang jelas dan lengkap. Ia menentukan kawasan rintangan sokongan utama sambil mengimbangi penilaian trend, dapat menangkap peluang pasaran dengan berkesan.

Kod sumber strategi
/*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)