Стратегия формового переворота используется для определения формы K-линии, для определения переменной точки, когда цена поднимается или падает, или отпадает или поднимается, для совершения покупки или продажи вблизи переменной точки. Эта стратегия использует основное соотношение теневой линии и объекта для определения сигнала переворота цены.
Центральная логика этой стратегии заключается в том, чтобы обнаружить пропорциональную связь между теневой частью K-линии и физической частью, чтобы определить, существует ли реверсивная форма.
Когда происходит падение K-линии, то, если нижняя линия K-линии длиннее, а верхняя линия и сущность короче, это означает, что K-линия имеет более сильный вход на покупку, который может быть обращен вверх. В частности, это означает, что цена закрытия выше, чем цена открытия, и длина нижней линии больше, чем длина верхней линии и сущности.
Наоборот, при появлении верхней K-линии, если верхняя линия K длинна, а нижняя линия и сущность короче, это означает, что K-линия имеет сильный выходный путь, который может быть обращен в падение. В частности, это обнаружение закрывающей цены ниже открывающей цены, и длина верхней линии больше, чем длина нижней линии и сущности в некоторое количество раз, что создает пустой сигнал.
Кроме того, если разница между ценой открытия и ценой закрытия небольшая, но теневая линия длинная, то может возникнуть обратный сигнал.
При обнаружении обратного сигнала также используется фильтрация в сочетании со средним диапазоном K-линий. Сигнал создается, только если диапазон K-линий больше среднего значения.
Можно рассмотреть возможность использования в сочетании с трендовыми показателями, чтобы избежать обратных операций. Также можно подтвердить обратный сигнал, комбинируя его с другими техническими показателями.
Стратегия формообразования эффективно идентифицирует формообразование цены и захватывает переломные моменты с помощью более простого метода идентификации форм. Однако использование только одной формы K-линии может привести к ошибочным выводам, ее необходимо использовать в сочетании с другими техническими показателями, а также включать определение тенденции, чтобы избежать противоположных действий и таким образом повысить стабильность стратегии. Кроме того, оптимизация параметров и установка стоп-стоп / стоп-стоп также направлены на дальнейшее совершенствование стратегии.
/*backtest
start: 2023-10-08 00:00:00
end: 2023-10-15 00:00:00
period: 3m
basePeriod: 1m
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/
// © adiwajshing
//@version=4
strategy("Wick Reversal Signal", overlay=true)
wickMultiplier = input(3.25)
bodyPercentage = input(0.35)
barsBack = input(50)
bodyMultiplier = input(1.1)
myCandleSize = high-low
averageCandleSize = rma(myCandleSize, barsBack)
longSignal = close > open and open-low >= (close-open)*wickMultiplier and high-close <= (high-low)*bodyPercentage and high-low >= averageCandleSize*bodyMultiplier
longSignal := longSignal or (close < open and close-low >= (open-close)*wickMultiplier and high-close <= (high-low)*bodyPercentage and high-low >= averageCandleSize*bodyMultiplier)
longSignal := longSignal or (abs(close-open) < 0.01 and close != high and high-low >= (high-close)*wickMultiplier and high-close <= (high-low)*bodyPercentage and high-low >= averageCandleSize*bodyMultiplier)
shortSignal = close < open and high-open >= (open-close)*wickMultiplier and close-low <= (high-low)*bodyPercentage and high-low >= averageCandleSize*bodyMultiplier
shortSignal := shortSignal or (close > open and high-close >= (close-open)*wickMultiplier and close-low <= (high-low)*bodyPercentage and high-low >= averageCandleSize*bodyMultiplier)
shortSignal := shortSignal or (abs(close-open) < 0.01 and close != low and high-low >= (close-low)*wickMultiplier and close-low <= (high-low)*bodyPercentage and high-low >= averageCandleSize*bodyMultiplier)
plotshape(longSignal, style=shape.triangleup, size=size.normal)
plotshape(shortSignal, style=shape.triangledown, size=size.normal)
strategy.entry("LONG", strategy.long, when=longSignal)
strategy.entry("SHORT", strategy.short, when=shortSignal)