Прорывная стратегия обратного вызова

Автор:Чао Чжан, Дата: 2024-02-22 15:41:53
Тэги:

img

Обзор

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

Логика стратегии

Конкретные условия для этой стратегии таковы: предыдущий бар имеет более низкий минимум и более высокий максимум по сравнению с предыдущими двумя барми, что указывает на разрыв в сторону падения; и текущий барс низкий минимум меньше или равен предыдущему барсу низкому минимуму, что сигнализирует о том, что произошел откат.

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

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

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

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

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

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

Другие технические индикаторы могут быть включены для улучшения точности сигнала и стабильности стратегии, такие как вход на золотой крест MACD или проверка типичной цены на уровне поддержки перед входом.

Резюме

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


/*backtest
start: 2024-01-22 00:00:00
end: 2024-02-21 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//  Created by Leon Ross
//study(title="OutsideDownOpenLower", shorttitle="ODOL", overlay=true)
strategy(title = "Outside", shorttitle = "OB", overlay = true )
  

//Window of time
//start     = timestamp(2018, 01, 01, 00, 00)  // backtest start window
//finish    = timestamp(2018, 12, 31, 23, 59)        // backtest finish window
//window()  => time >= start and time <= finish ? true : false // create function "within window of time"  

//Conditions
outsideBar = low < low[1] and high > high[1] and close < open
allConditions = outsideBar
  
//Stop and Take Profit as percentages
//inpTakeProfit   = input(2, title='Take Profit %', type=float)/100
//takeProfitValue = strategy.position_avg_price * (1 + inpTakeProfit)
//useTakeProfit   = inpTakeProfit  > 0 ?  takeProfitValue : na
//inpStopLoss     = input(1, title='Stop Loss %', type=float)/100
//stopLossValue = strategy.position_avg_price * (1 - inpStopLoss)
//useStopLoss     = inpStopLoss    > 0 ?  stopLossValue   : na
//entry = strategy.position_avg_price



//Stop as last bars low and profit as percentage
entry = strategy.position_avg_price
inpTakeProfit   = input(2.0, title='Take Profit %', type=float)/100
takeProfitValue = strategy.position_avg_price * (1 + inpTakeProfit)
useTakeProfit   = inpTakeProfit  > 0 ?  takeProfitValue : na
inpStopLoss     = valuewhen(allConditions, low, 0)
stopLossValue = inpStopLoss
useStopLoss     = inpStopLoss    > 0 ?  stopLossValue   : na
    



//Plots
bgcolor(allConditions ==1 ? aqua : na, transp=70)
plot(entry, color=blue, style=linebr, linewidth=2)
plot(useStopLoss, color=red, style=linebr, linewidth=2)
plot(useTakeProfit, color=green, style=linebr, linewidth=2)


//Entires
strategy.entry(id = "Long", long = true, when = allConditions) // use function or simple condition to decide when to get in

//Exits
//if (barssince(allConditions) == 2)
    //strategy.close("Long")
//else
strategy.exit("Exit Long", from_entry = "Long", stop = useStopLoss)







Больше