Основная идея этой стратегии состоит в том, чтобы определить направление тренда с использованием паттерна свечей
Проверьте, происходит ли паттерн, содержащийся между циклами. Конкретная логика заключается в следующем: текущая высота свечи ниже, чем предыдущая высота свечи, и текущий низкий уровень свечи выше, чем предыдущий низкий уровень.
Определить, была ли предыдущая свеча быстрой или медвежьей. Если закрытие было выше, чем открытие, это было быстрым. Если закрытие было ниже, чем открытие, это было медвежьим.
Если предыдущая свеча была бычьей, и содержимый паттерн возникает, разместите ордер на покупку на предыдущем уровне свечи плюс 10% от его диапазона.
Если предыдущая свеча была медвежьей, и содержимый паттерн возникает, разместите ордер на остановку продажи на низком уровне предыдущей свечи минус 10% от ее диапазона.
После того, как заказ на остановку активируется и позиция открывается, устанавливается стоп-лосс и берут прибыль.
Если формируется новый внутренний шаблон, сначала закрывайте существующие позиции, а затем размещайте новые ожидающие ордера.
Преимущества этой стратегии включают:
Он использует встроенную логику свечей и обеспечивает точное время входа.
Правила просты и легко соблюдаются для реальной торговли.
Стоп-лосс и получение прибыли, основанные на предыдущем диапазоне свечей, помогают контролировать риск.
Каждый раз, когда появляется квалифицированный шаблон, мы размещаем новые заказы, что позволяет нам следовать новой тенденции.
Существуют также некоторые риски:
Не всегда содержащийся шаблон приводит к изменению или ускорению тренда.
Расстояние стоп-лосса может быть слишком малым, чтобы выдержать большие колебания на рынке.
Цель получения прибыли может быть слишком широкой, что препятствует своевременной прибыли.
Стратегия больше опирается на тенденции рынков.
Высокая частота торговли приводит к большим затратам на транзакции.
Решения:
Добавить другие индикаторы для подтверждения сигналов и уменьшения ложных сигналов.
Небольшое увеличение стоп-лосса, но не более 50% от предыдущего диапазона свечей.
Сократить целевую прибыль до 50% от предыдущего диапазона.
Оптимизировать управление капиталом, уменьшить размер индивидуальных позиций для различных рынков.
Упростить критерии вступления, чтобы уменьшить частоту торговли.
Некоторые способы оптимизации стратегии:
Добавьте индикатор тренда, такой как MACD, чтобы определить направление тренда, избегая сбоев во время консолидации.
Используйте более продвинутые методы стоп-лосса, такие как стоп-лосс отслеживания или стоп-лосс защиты прибыли.
Проверьте различные коэффициенты стоп-лосса и прибыли, чтобы найти оптимальные параметры.
Добавьте логику повторного входа, чтобы снова захватить тренд после остановки потери.
Оптимизировать размер позиций на основе волатильности рынка.
Оптимизировать управление капиталом, например, фиксированное размеры позиций.
Проверьте стратегию на различных продуктах и сроках.
В общем, это стратегия, которая использует схему, содержащуюся между циклами, для определения поворотных точек тренда и размещения ожидаемых ордеров для улавливания обратных тенденций. Она имеет преимущества четких сигналов входа, простых правил и контролируемых рисков, но также имеет некоторые риски ложных сигналов и возможности для оптимизации. Мы можем еще больше улучшить ее стабильность и рентабельность путем объединения фильтров тренда, оптимизации остановок, корректировки размеров позиций и т. Д. Она более подходит для трендовых рынков и должна быть оптимизирована и протестирована для различных рыночных условий перед фактическим использованием, чтобы максимизировать ее эффективность.
/*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)