Strategi Perdagangan Breakout Konsolidasi Pasar India


Tanggal Pembuatan: 2023-12-15 11:59:08 Akhirnya memodifikasi: 2023-12-15 11:59:08
menyalin: 1 Jumlah klik: 610
1
fokus pada
1621
Pengikut

Strategi Perdagangan Breakout Konsolidasi Pasar India

Ringkasan

Strategi ini adalah strategi petunjuk terintegrasi untuk perdagangan intraday di pasar saham India. Ini menggabungkan kondisi waktu, komisi komisi, dan pelacakan stop loss. Keuntungan dari strategi ini adalah kejelasan logis, parameter yang disesuaikan dengan fleksibilitas, dan dapat disesuaikan dengan perubahan pasar.

Prinsip Strategi

Logika inti dari strategi ini didasarkan pada indikator Bollinger Bands. Strategi ini menggunakan rata-rata bergerak sederhana yang panjangnya adalah LENGTH sebagai sumbu tengah, dengan perkalian standar perkalian MULT untuk track atas dan track bawah. Strategi perdagangan Range Breakout terbentuk ketika sinyal beli dihasilkan ketika harga close out melewati track bawah dan sinyal jual dihasilkan ketika harga close out melewati track atas.

Untuk mengontrol risiko, ia menggabungkan indikator ATR untuk menghitung stop loss. Selain itu, memperhitungkan waktu perdagangan di pasar saham India, dan meratakan semua posisi pada 14:57.

Analisis Keunggulan

Strategi ini memiliki beberapa keuntungan:

  1. Logika yang jelas, parameter yang mudah disesuaikan, dapat beradaptasi dengan kondisi pasar yang fleksibel
  2. Integrasi Stop Loss dan Logika Kontrol Waktu untuk Mengontrol Resiko secara Efektif
  3. Kompatibilitas mempertimbangkan mekanisme perdagangan khusus di pasar saham India, dan beradaptasi dengan lingkungan lokal
  4. Berdagang dengan frekuensi sedang, hindari berdagang berlebihan
  5. Skalabilitas yang baik, yang dapat digunakan untuk mengoptimalkan algoritma

Analisis risiko

Strategi ini juga memiliki beberapa risiko:

  1. Pengaturan parameter Brinbelt bergantung pada pengalaman, tidak cocok untuk semua lingkungan
  2. Indikator tunggal mudah menghasilkan sinyal palsu
  3. Hentikan ATR hanya dapat mengontrol sebagian risiko secara efektif
  4. Tidak Mempertimbangkan Dampak dari Black Swan Besar

Risiko dapat dikurangi dengan:

  1. Kombinasi sinyal penyaringan multi-indikator
  2. Optimalkan aturan pengaturan parameter
  3. Kombinasi dengan penilaian gap jumper
  4. Meningkatkan robustitas algoritma stop loss
  5. Tergabung dengan indikator sentimen pasar

Arah optimasi

Strategi ini dapat dioptimalkan dari beberapa arah:

  1. Optimalkan aturan pengaturan parameter agar lebih adaptif
  2. Menambahkan beberapa penilaian indikator untuk menghindari sinyal palsu
  3. Optimalkan dan tingkatkan robustitas algoritma stop loss
  4. Mengidentifikasi arah tren dengan menggunakan metode analisis yang lebih luas
  5. Pertimbangkan untuk menyesuaikan ukuran posisi secara otomatis

Dengan mengoptimalkan algoritme dan model, strategi ini dapat meningkatkan kemampuan Parameter Tuning dan Signal Filtering, sehingga dapat beradaptasi dengan lingkungan pasar yang lebih luas dan dapat menanggung risiko yang lebih besar.

Meringkaskan

Strategi ini secara keseluruhan adalah strategi perdagangan terobosan dalam sehari yang jelas dan mudah dimengerti. Ini mempertimbangkan karakteristik pasar India, mengendalikan risiko perdagangan. Strategi ini memiliki beberapa keuntungan, dan ada ruang untuk pengoptimalan.

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

//@version=5
strategy("Consolidation Breakout [Indian Market Timing]",overlay = true , pyramiding = 0 ,initial_capital = 50000, default_qty_value=5, currency = currency.NONE,commission_type = strategy.cash, commission_value = 30, slippage = 1 )


// ══════════════════════════════════//
// ————————> INPUT VALUES <————————— //
// ══════════════════════════════════//

LENGTH = input.int(title='LENGTH', defval = 75, minval = 10 ,maxval = 300)
MULT = input.float(title='MULT_STDEV',defval = 3.2 , minval = 1 , maxval = 7 , step =0.1)

//EMA1 = input.int(title='EMA1', defval = 50, minval = 10 ,maxval = 550)
//EMA2 = input.int(title='EMA2', defval = 135, minval = 10 ,maxval = 550)
factor_tr = input.float(title = "ATR TRAIL", defval = 10, step = 0.1)

// ══════════════════════════════════//
// ————————> DAY TIME LIMIT <——————— //
// ══════════════════════════════════//

t = time(timeframe.period, '0935-1430:1234567')
time_condition = not na(t)

//**********************// ════════════════════════════════//
//**********************// ————————> ATR & PLOT <————————— //
//**********************// ════════════════════════════════//
//ema1 = ta.ema(close,EMA1)
//ema2 = ta.ema(close,EMA2)

//plot(ema1, color=color.new(color.blue, 0), style=plot.style_linebr, title='ema1')
//plot(ema2, color=color.new(color.yellow, 0), style=plot.style_linebr, title='ema2')

atr_tr = ta.atr(16)*factor_tr

longStop = close - atr_tr
shortStop = close + atr_tr

Entry = close
length = LENGTH
mult = MULT
basis = ta.sma(Entry , length)
dev = mult * ta.stdev(Entry , length)
upper = (basis + dev)
lower = (basis - dev)
buyEntry = ta.crossover(Entry , upper)
sellEntry = ta.crossunder(Entry , lower)

//plot(upper, color=color.new(color.red, 0), style=plot.style_linebr, title="short stop")
//plot(lower, color=color.new(color.green, 0), style=plot.style_linebr, title="Long stop")

plot(upper, color=close[1] > upper and close > upper ? color.green : color.red, linewidth=2)
plot(lower, color=close[1] > lower and close > lower ? color.green : color.red, linewidth=2)




// ══════════════════════════════════//
// ————————> LONG POSITIONS <————————//
// ══════════════════════════════════//
//******barinstate.isconfirmed used to avoid repaint in real time*******

if ( buyEntry and strategy.opentrades==0 and barstate.isconfirmed and time_condition)
    strategy.entry(id= "Long" ,direction = strategy.long, comment = "B")
    
plot(longStop , color=color.new(color.blue, 0), style=plot.style_linebr, title='long Stop')

if strategy.position_size > 0 
    strategy.exit("long tsl", "Long" , stop = longStop , comment='S')

// ═════════════════════════════════════//
// ————————> SHORT POSITIONS <————————— //
// ═════════════════════════════════════//
if ( sellEntry and strategy.opentrades==0 and barstate.isconfirmed and time_condition)
    strategy.entry(id = "Short" ,direction = strategy.short,  comment = "S") 

if strategy.position_size < 0
    strategy.exit("short tsl", "Short" , stop = shortStop ,comment='B')

// ════════════════════════════════════════════════//
// ————————> CLOSE ALL POSITIONS BY 3PM <————————— //
// ════════════════════════════════════════════════//
strategy.close_all(when = hour == 14 and minute == 57)