
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.
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.
Strategi ini mempunyai beberapa kelebihan:
Strategi ini juga mempunyai risiko:
Anda boleh mengurangkan risiko dengan:
Strategi ini boleh dioptimumkan dalam beberapa arah:
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.
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.
/*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)