Стратегия импульса, встроенная в цикл


Дата создания: 2023-09-20 14:59:37 Последнее изменение: 2023-09-20 14:59:37
Копировать: 1 Количество просмотров: 652
1
Подписаться
1617
Подписчики

Обзор

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

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

  1. Судить о том, возникают ли K-линейные формы между включенными циклами. Конкретная логика суждения заключается в том, что высота текущей K-линии ниже высоты предыдущей K-линии, а низкая точка текущей K-линии выше низкой точки предыдущей K-линии.

  2. Если цена закрытия выше, чем цена открытия, то она является положительной; если цена закрытия ниже, чем цена открытия, то она является отрицательной.

  3. Если предыдущая K-линия является трендовой, и в ней присутствует внутрициклическая форма, мы устанавливаем Stop Order в пределах 10% от высоты предыдущей K-линии.

  4. Если предыдущая K-линия является нисходящей, и в ней присутствует внутрициклическая форма, мы устанавливаем Stop-Sell в пределах 10% от предыдущей K-линейной низкой точки.

  5. После того, как приостановка была вызвана, мы установили приостановку и приостановку. Конкретные приостановки и приостановки соответствуют определенной пропорции усиления предыдущей линии K.

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

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

Преимущества такой стратегии:

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

  2. Правила стратегии понятны и просты в использовании.

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

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

Анализ стратегических рисков

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

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

  2. Стоп-разрыв может быть слишком мал, чтобы выдержать большие колебания.

  3. Стоп-дистанция может быть установлена слишком высокой, чтобы вовремя получить прибыль.

  4. Эта стратегия больше зависит от тенденций, и у нее есть ограниченное пространство для получения прибыли в консолидированных ситуациях.

  5. Это может быть связано с высокой частотой транзакций и высокой стоимостью транзакций.

Ответ:

  1. Вместе с другими показателями фильтр может содержать подтверждающий сигнал формы между циклами, снижая уровень ложного сигнала.

  2. Стоп-разрыв может быть сделан соответствующим образом, но не более 50% от предыдущей K-линии.

  3. Уменьшить расстояние от остановки до предыдущей K-линии приблизительно на 50%.

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

  5. Соответствующее смягчение условий входа и сокращение количества сделок.

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

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

  1. В сочетании с трендовыми показателями, чтобы определить направление тренда, избегайте частых сделок при сворачивании. Например, присоединиться к MACD, чтобы определить тренд, только тогда, когда MACD будет рассматриваться.

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

  3. Тестирование различных параметров стоп-стоп-пароли, чтобы найти оптимальную комбинацию параметров.

  4. Присоединяйтесь к механизму повторного входа, чтобы снова захватить тренд после стоп-лосс-выхода.

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

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

  7. Испытание эффективности этой стратегии для разных сортов и временных периодов.

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

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

Исходный код стратегии
/*backtest
start: 2023-01-01 00:00:00
end: 2023-03-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3

// Inside Bar Momentum Strategy
// As defined on Babypips.com
// https://www.babypips.com/trading/forex-inside-bar-20170113

// strategy("Babypips: Inside Bar Momentum Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=5)

From_Year  = input(defval = 2018, title = "From Year")
From_Month = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
From_Day   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
To_Year    = input(defval = 9999, title = "To Year")
To_Month   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
To_Day     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
Start  = timestamp(From_Year, From_Month, From_Day, 00, 00)  // backtest start window
Finish = timestamp(To_Year, To_Month, To_Day, 23, 59)        // backtest finish window
Window = true

Stop_Buy_Perc  = input(10, "Stop Buy Order Percentage From Previous Candle's Range")/100
Stop_Loss_Perc = input(20, "Stop Loss Distance from High/Low of Previous Candle")/100
Take_Prof_Perc = input(80, "Take Profit Distance from High/Low of Previous Candle")/100

Risk = input(2, "Percentage Of EQUITY to risk per trade", step=0.1, minval=0, maxval=100)/100

Inside_Bar = high[1] > high[0] and low[1] < low[0]
Prev_Range = high[1] - low[1]
Bullish = open[1] < close[1]
Bearish = open[1] > close[1]

// Get Key Levels 
Long_Stop_Buy_Level   = high[1] + (Prev_Range * Stop_Buy_Perc)
Short_Stop_Buy_Level  = low[1]  - (Prev_Range * Stop_Buy_Perc)
Long_Stop_Loss_Level  = high[1] - (Prev_Range * Stop_Loss_Perc)
Short_Stop_Loss_Level = low[1]  + (Prev_Range * Stop_Loss_Perc)
Long_Take_Prof_Level  = high[1] + (Prev_Range * Take_Prof_Perc)
Short_Take_Prof_Level = low[1]  - (Prev_Range * Take_Prof_Perc)

// Position Sizing
long_qty = floor((strategy.equity * Risk) / (Long_Stop_Buy_Level - Long_Stop_Loss_Level))
short_qty = floor((strategy.equity * Risk) / (Short_Stop_Loss_Level - Short_Stop_Buy_Level))

// -------------------------- LONG CONDITIONS --------------------------------//
// The first candlestick must be bullish (green or white) and if the second 
// candlestick is completely contained by the first, set a buy stop order at 
// the first candle’s high plus 10% of its range (high minus low).

// Place the stop loss at the first candle’s high minus 20% of its range 
// and set the target at the first candle’s high plus 80% of its range

// If another inside bar pattern forms, the current position should be closed 
// or the pending buy/sell order must be canceled and entry orders must be 
// updated to the latest candles.

Long_Condition = Window and Inside_Bar and Bullish
if (Long_Condition)
    // Incase we still have a buy stop order in the market
    strategy.cancel_all()
    // Close any existing positions according to the rules
    strategy.close_all()
    strategy.entry("Bullish IB", strategy.long, stop=Long_Stop_Buy_Level)
    strategy.exit("Bullish Exit","Bullish IB", stop=Long_Stop_Loss_Level, limit=Long_Take_Prof_Level)
    
// -------------------------- SHORT CONDITIONS -------------------------------//
// The first candlestick must be bearish (red or black) and if the second 
// candlestick is completely contained by the first, set a sell stop order at 
// the first candle’s low minus 10% of its range (high minus low).

// Place the stop loss at the first candle’s low plus 20% of its range and 
// set the target at the first candle’s low minus 80% of its range.

// If another inside bar pattern forms, the current position should be closed 
// or the pending buy/sell order must be canceled and entry orders must be 
// updated to the latest candles.

Short_Condition = Window and Inside_Bar and Bearish
if (Short_Condition)
    // Incase we still have a buy stop order in the market
    strategy.cancel_all()
    // Close any existing positions according to the rules
    strategy.close_all()
    strategy.entry("Bearish IB", strategy.short, stop=Short_Stop_Buy_Level)
    strategy.exit("Bearish Exit","Bearish IB", stop=Short_Stop_Loss_Level, limit=Short_Take_Prof_Level)
    
// ----------------------------- PLOTTING ------------------------------------//
plotshape(Inside_Bar, style=shape.arrowdown, location=location.abovebar, color=purple)