
Die Strategie ist eine integrierte Breakout-Anweisungsstrategie für den Intraday-Handel in der indischen Börse. Sie kombiniert Zeitbedingungen, Beauftragte und Stop-Loss-Tracking. Die Vorteile dieser Strategie sind die Logik, die Parameter und die Flexibilität, sich an Marktveränderungen anzupassen.
Die Kernlogik der Strategie basiert auf dem Brin-Band-Indikator. Es verwendet einen einfachen Moving Average mit der Länge als LENGTH als Mittelwert, wobei die oberen und unteren Bahnen jeweils mit einer Standarddifferenz von MULT-Folgen berechnet werden. Eine Range Breakout-Handelsstrategie entsteht, wenn ein Kaufsignal erzeugt wird, wenn der Schlusskurs von unten auf die Bahn geht, und ein Verkaufssignal, wenn der Schlusskurs von oben auf die Bahn geht.
Um die Risiken zu kontrollieren, berechnete sie die Stop-Loss-Linie in Verbindung mit dem ATR-Indikator. Gleichzeitig wurde die Handelszeit der indischen Aktienmärkte berücksichtigt und alle Positionen wurden in 14:57 Minuten gekappt.
Die Strategie hat folgende Vorteile:
Die Strategie birgt auch Risiken:
Das Risiko kann durch folgende Maßnahmen verringert werden:
Die Strategie kann in folgenden Richtungen optimiert werden:
Durch die Optimierung von Algorithmen und Modellen können die Fähigkeiten von Parameter-Tuning und Signalfilterung der Strategie verbessert werden, um sich an ein breiteres Marktumfeld anzupassen und ein größeres Risiko zu tragen.
Insgesamt ist die Strategie eine klare und verständliche Intraday-Breakthrough-Handelsstrategie. Sie berücksichtigt die Merkmale des indischen Marktes und kontrolliert das Handelsrisiko. Die Strategie hat bestimmte Vorteile und es gibt Raum für Optimierung.
/*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)