
Основная идея этой стратегии заключается в том, чтобы открывать позиции после появления определенной K-линейной формы, то есть, сделать больше входа при открытии следующей K-линии при появлении низко подпрыгивающей нитки (colorbar) и обратном вызове на следующей K-линии.
Конкретными условиями для решения этой стратегии являются следующие: предыдущая K-линия имеет более низкую и более высокую точку по сравнению с предыдущими двумя K-линиями, т.е. возникает нисходящий прыжок; а самая низкая точка текущей K-линии также меньше или равна самой низкой точке предыдущей K-линии, т.е. возникает обратный вызов. При одновременном выполнении этих двух условий, при открытии следующей K-линии делается дополнительный вход.
Стойки после плюса устанавливаются как обратная низкая точка, то есть минимальная цена предыдущей K-линии, при этом установка стоп-поста составляет более 2% от цены открытия позиции. Когда цена касается стоп-поста или стоп-поста.
Наибольшее преимущество этой стратегии заключается в том, что она использует шансы на отскок, которые могут возникнуть в ближайшее время. Это очень мощная форма техники, когда появляется линия K, которая поднимается вниз и затем происходит отклонение, что указывает на то, что сила воздушного боеголовки может быть исчерпана на этом уровне, и есть большая вероятность того, что отскок произойдет.
Основной риск этой стратегии заключается в возможности дальнейшего снижения цены после окончания реверса. Поскольку мы делаем многое вблизи реверсионного минимума, мы можем столкнуться с большими потерями, если не сможем своевременно остановить убытки. Кроме того, если реверс будет небольшим, то остановка может быть установлена ближе.
Для определения времени входа можно рассмотреть другие показатели, такие как возможность войти в игру во время возникновения 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)