Strategi Perdagangan Pemecahan Penggabungan Pasaran India


Tarikh penciptaan: 2023-12-15 11:59:08 Akhirnya diubah suai: 2023-12-15 11:59:08
Salin: 1 Bilangan klik: 610
1
fokus pada
1621
Pengikut

Strategi Perdagangan Pemecahan Penggabungan Pasaran India

Gambaran keseluruhan

Strategi ini adalah strategi arahan penembusan integrasi intraday yang sesuai untuk pasaran saham India. Ia menggabungkan syarat masa, bayaran komisen dan penjejakan henti. Kelebihan strategi ini adalah kejernihan logik, parameter yang disesuaikan dengan fleksibiliti dan dapat disesuaikan dengan perubahan pasaran.

Prinsip Strategi

Logik teras strategi ini adalah berdasarkan pada indikator Brin’s Belt. Ia menggunakan purata bergerak sederhana dengan panjang sebagai LENGTH sebagai sumbu tengah, di mana perbezaan standard dikalikan oleh MULT pada rantaian atas dan bawah. Ia membentuk strategi perdagangan Range Breakout apabila harga penutupan menghasilkan isyarat beli apabila ia memasuki rantaian bawah dan apabila harga penutupan menghasilkan isyarat jual apabila ia memasuki rantaian atas.

Untuk mengawal risiko, ia digabungkan dengan indikator ATR untuk mengira garis hentian. Ia juga mengambil kira masa dagangan di pasaran saham India, dan menebus semua kedudukan pada 14:57.

Analisis kelebihan

Strategi ini mempunyai beberapa kelebihan:

  1. Logik yang jelas, parameter yang mudah disesuaikan, boleh menyesuaikan diri dengan keadaan pasaran
  2. Mengintegrasikan logik kawalan hentian dan masa untuk mengawal risiko dengan berkesan
  3. Kompatibel dengan mempertimbangkan mekanisme dagangan khas pasaran saham India dan menyesuaikan diri dengan keadaan tempatan
  4. Berdagang dengan kadar yang sederhana dan mengelakkan perdagangan berlebihan
  5. Skala yang baik, yang boleh digunakan untuk pengoptimuman algoritma

Analisis risiko

Strategi ini juga mempunyai risiko:

  1. Tetapan parameter Brinbelt bergantung kepada pengalaman dan tidak sesuai untuk semua persekitaran
  2. Indeks tunggal mudah menghasilkan isyarat palsu
  3. Penangguhan ATR hanya dapat mengawal sebahagian daripada risiko
  4. Tidak mengambil kira kesan peristiwa Black Swan yang besar

Anda boleh mengurangkan risiko dengan:

  1. Gabungan pelbagai petunjuk penapis isyarat
  2. Peraturan tetapan parameter optimum
  3. Penghakiman yang digabungkan dengan jurang lompat
  4. Meningkatkan ketangguhan algoritma henti rugi
  5. Bersama-sama dengan sentimen pasaran

Arah pengoptimuman

Strategi ini boleh dioptimumkan dalam beberapa arah:

  1. Optimumkan peraturan penetapan parameter untuk menjadikannya lebih bersesuaian
  2. Menambah pelbagai penilaian untuk mengelakkan isyarat palsu
  3. Mengoptimumkan dan meningkatkan ketangguhan algoritma henti rugi
  4. Mencari arah trend dengan menggunakan lebih banyak kaedah analisis
  5. Pertimbangkan untuk menyesuaikan saiz kedudukan secara automatik

Dengan pengoptimuman algoritma dan model, keupayaan Parameter Tuning dan Signal Filtering strategi ini dapat ditingkatkan untuk menyesuaikan diri dengan persekitaran pasaran yang lebih luas dan dapat menanggung risiko yang lebih besar.

ringkaskan

Strategi ini secara keseluruhan adalah strategi perdagangan yang jelas dan mudah difahami. Ia mengambil kira ciri-ciri pasaran India dan mengawal risiko perdagangan. Strategi ini mempunyai kelebihan tertentu dan terdapat ruang untuk pengoptimuman.

Kod 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)