Краткосрочная стратегия прорыва тренда


Дата создания: 2023-09-18 13:11:51 Последнее изменение: 2023-09-18 13:11:51
Копировать: 0 Количество просмотров: 443
1
Подписаться
1166
Подписчики

Обзор

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

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

  1. Вычислить индикатор супертенденции. Вычислить линию супертенденции в зависимости от пользовательского определения кратности и цикла ATR.

  2. Нарисуйте линию супертенденции. Нарисуйте линию супертенденции как линию поддержки и линию сопротивления.

  3. Определение длинных и коротких условий. Заключительная цена выше линии супертенденции является условием плюса, а закрывающая цена ниже линии супертенденции является условием минуса.

  4. Определение периода торгов. Определение того, находится ли текущая цена в пределах периода торгов, в зависимости от периода торгов в течение дня, определенного пользователем.

  5. Выпускается торговый сигнал. Соответствующий сигнал покупки и продажи выдается только в течение периода торговли и при удовлетворении условий лишнего разрыва.

  6. Обратное открытие позиции. Используйте двойную сумму для обратного открытия позиции, когда индикатор сверхтенденции меняет направление.

  7. Выход из позиции. Принудительный выход из позиции, когда сигнал супертенденции не меняется и торговая часть завершена.

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

  1. Использование индикатора супертенденции позволяет идентифицировать тренды и уменьшить количество ложных сигналов.

  2. Включайте в себя супер трендовые индикаторы и закрытые цены, чтобы избежать обмана.

  3. Возвращение к открытию позиции поможет сократить потери.

  4. Торговля в дневное время позволяет избежать рисков ночного отдыха.

  5. Обязательный механизм ликвидации, чтобы избежать риска забвения ликвидации.

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

  1. Неправильная настройка параметров индикатора супертенденции может привести к неэффективности стратегии.

  2. Позиции в обратном направлении увеличивают частоту и стоимость торгов.

  3. Принудительная ликвидация в конце дневного периода может привести к убыткам.

  • Риск 1 - найти оптимальное сочетание параметров путем оптимизации параметров.

  • Риск 2 может быть установлен с помощью стоп-лосса для контроля убытков.

  • Риск 3 можно установить стоп-лосс или использовать трендовые фильтры, чтобы избежать уравнения убытка.

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

  1. Попробуйте различные трендовые индикаторы, такие как MA, KDJ и т.д.

  2. Добавлена логика сдерживания потерь.

  3. Повышение фильтрации трендов, чтобы избежать убытков.

  4. Оптимизация множителя и ATR-циклических параметров.

  5. Попробуйте различные виды торгов.

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

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

Исходный код стратегии
/*backtest
start: 2023-08-18 00:00:00
end: 2023-09-17 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Pritesh-StocksDeveloper

//@version=4
strategy("Supertrend - Intraday", overlay=true, calc_on_every_tick = true)

// ********** Strategy inputs - Start **********

// Used for intraday handling
// Session value should be from market start to the time you want to square-off 
// your intraday strategy
// Important: The end time should be at least 2 minutes before the intraday
// square-off time set by your broker
var i_marketSession = input(title="Market session", type=input.session, 
     defval="0915-1455", confirm=true)

var float i_multiplier = input(title = "Multiplier", type = input.float, 
     defval = 4, confirm=true)

var int i_atrPeriod = input(title = "ATR Period", type = input.integer, 
     defval = 14, confirm=true)

// ********** Strategy inputs - End **********


// ********** Supporting functions - Start **********

// A function to check whether the bar or period is in intraday session
barInSession(sess) => time(timeframe.period, sess) != 0

// ********** Supporting functions - End **********


// ********** Strategy - Start **********

[superTrend, dir] = supertrend(i_multiplier, i_atrPeriod)

colResistance = dir == 1 and dir == dir[1] ? color.new(color.red, 0) : color.new(color.red, 100)
colSupport = dir == -1 and dir == dir[1] ? color.new(color.green, 0) : color.new(color.green, 100)

plot(superTrend, color = colResistance, linewidth=2)
plot(superTrend, color = colSupport, linewidth=2)

// Long/short condition
longCondition = close > superTrend
shortCondition = close < superTrend

// See if intraday session is active
bool intradaySession = barInSession(i_marketSession)

// Trade only if intraday session is active
 
// Long position
// When longCondition and intradaySession both are true
strategy.entry(id = "Long", long = strategy.long, 
     when = longCondition and intradaySession)
 
// Short position
// When shortCondition and intradaySession both are true
strategy.entry(id = "Short", long = strategy.short, 
     when = shortCondition and intradaySession)
 
// Square-off position (when session is over and position is open)
squareOff = (not intradaySession) and (strategy.position_size != 0)
strategy.close_all(when = squareOff, comment = "Square-off")

// ********** Strategy - End **********