형태 반전 전략은 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)