Стратегия торговли на прорыве консолидации индийского рынка


Дата создания: 2023-12-15 11:59:08 Последнее изменение: 2023-12-15 11:59:08
Копировать: 1 Количество просмотров: 610
1
Подписаться
1621
Подписчики

Стратегия торговли на прорыве консолидации индийского рынка

Обзор

Стратегия является стратегией, применяемой для внутридневных торгов на индийских фондовых рынках. Она сочетает в себе временные условия, комиссионные комиссии и отслеживание убытков. Преимущества этой стратегии заключаются в логической четкости, гибкости регулирования параметров и адаптации к изменениям рынка.

Стратегический принцип

Основная логика стратегии основана на индикаторе Бринского пояса. Она использует простую подвижную среднюю длины LENGTH в качестве центральной оси, верхняя и нижняя колеи рассчитываются соответственно в размере стандартной разницы MULT.

Для контроля риска, он в сочетании с ATR показатель расчет стоп-лора. При этом учитывается время торгов на индийском фондовом рынке, в 14:57 минуты полностью ликвидировать все позиции.

Анализ преимуществ

Эта стратегия имеет следующие преимущества:

  1. Ясная логика, легко регулируемые параметры, гибкость при адаптации к рыночным условиям
  2. Интеграция логики сдерживания и контроля за временем позволяет эффективно контролировать риск
  3. Совместимость с учетом специфических механизмов торгов на индийских фондовых рынках, адаптированных к местным условиям
  4. Умеренная частота сделок, избегайте чрезмерных сделок
  5. Масштабируемость, на основе которой можно оптимизировать алгоритмы

Анализ рисков

Однако эта стратегия несет в себе определенные риски:

  1. Настройка параметров в Бринбеде зависит от опыта и не подходит для всех условий
  2. Один показатель может привести к ложным сигналам
  3. Прекращение ATR может эффективно контролировать только часть риска
  4. Не учтены последствия крупного Чёрного свингера

Риски можно снизить следующими способами:

  1. Комбинированный сигнал фильтрации с несколькими показателями
  2. Оптимизация правил параметров
  3. В сочетании с прыжком вниз суждения
  4. Повышение неустойчивости алгоритмов сдерживания потерь
  5. В сочетании с показателями рыночных настроений

Направление оптимизации

Эта стратегия может быть оптимизирована в следующих направлениях:

  1. Оптимизация правил параметров, чтобы сделать их более адаптивными
  2. Добавить несколько показателей, чтобы избежать ложных сигналов
  3. Оптимизация и усиление грубости алгоритмов устранения убытков
  4. Вместе с другими аналитическими методами можно определить направление тенденций.
  5. Рассмотрите возможность автоматической корректировки размеров позиций

Посредством оптимизации алгоритмов и моделей можно повысить способность этой стратегии к настройке параметров и фильтрации сигналов, чтобы адаптироваться к более широкой рыночной среде и быть более рискованной.

Подвести итог

Эта стратегия в целом является четкой и понятной стратегией для прорыва в течение дня. Она учитывает особенности индийского рынка и контролирует торговые риски. У этой стратегии есть определенные преимущества, и есть место для оптимизации.

Исходный код стратегии
/*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)