
이 글은 형태 분석과 선 형태를 결합한 양적 거래 전략에 대해 소개할 것이다. 이 전략은 가격 그래프의 중요한 변곡점과 강력한 반전을 나타내는 형태를 감지함으로써 낮은 위험과 높은 효율을 가진 자동 거래를 구현한다.
이 전략은 가격 움직임에 대한 상세한 분석을 기반으로, 형태 분석과 선분 분석을 결합하여, 명확한 진출 논리와 중단 논리를 설정하여, 트렌드에 대한 효과적인 추적을 가능하게 한다.
구체적으로 말해서, 그것의 입시 조건은: 가격이 상단에서 처음 두 K 라인을 통과하는 가장 높은 가격이며, 돌파 전기 고점 형태 또는 다중 머리 삼림 형태 또는 형 중 하나를 나타낸다. 이 조합 조건은 상장 기회를 효과적으로 확인한다. 동시에 그것의 중지 조건은: 가격이 아래에서 처음 두 K 라인을 통과하는 가장 낮은 가격이다. 이러한 중지 논리는 손실을 제 시간에 효율적으로 보장한다.
판단 형태에 있어서는, 이 전략은 중요한 전환점을 식별하는 분류선을 사용하는 것과 트렌드 반향을 판단하는 세 가지 전형적인 형태를 결합한다. 중요한 전환점을 분류하는 것은 비교적 광범위한 분류 이론을 사용하며, 다중 머리, 공허 머리 삼키기, 그리고 같은 형태는 비교적 성숙한 알고리즘을 사용한다.
구체적인 구현에서, 이 전략은 pine 스크립트를 사용하여 작성된다. 그것의 검출 분류의 구현 논리는 현재 K 선의 최고 값이 이전 3 K 선의 최고 값과 같을 때, 즉 상위 분류이다. 바닥 분류의 판단 원칙은 유사하다. 검출 흡수 유형 형태는 오픈 가격, 닫기 가격 크기의 관계에 대한 엄격한 판단에 기초한다.
이 전략의 주요 장점은 다음과 같습니다.
이 전략에는 여전히 위험성이 있습니다.
위와 같은 위험은 스톱로스 전략을 최적화하고, 트렌드 필터를 도입하고, 전략 변수를 검증하는 양적 도구를 사용하여 제어 할 수 있습니다.
이 전략은 다음과 같은 방향으로 더 개선될 수 있습니다.
이러한 최적화를 통해 전략의 안정성과 수익성을 더욱 강화할 수 있습니다.
이 글은 분형선과 ?? 형태를 기반으로 한 양적 거래 전략에 대해 자세히 소개한다. 이 전략은 판단이 정확하고, 실행하기 쉽고, 가격 동향을 효과적으로 포착하고 자동화 거래를 구현할 수 있다. 지속적인 최적화 및 검증에 따라, 그 성능은 더 향상될 것이며, 투자자 또는 거래자가 깊이 연구하고 적용할 가치가 있다.
/*backtest
start: 2023-02-12 00:00:00
end: 2024-02-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Fractal & Pattern Entry/Exit Strategy", overlay=true)
// Fractal calculation
fractalHigh = high == highest(3)
fractalLow = low == lowest(3)
// Pattern detection
bullishEngulfing = open < close[1] and close > open[1] and close > open + (open[1] - close[1]) * 2 and low < min(open, close) and high > max(open, close) and open[1] > close[1]
bearishEngulfing = open > close[1] and close < open[1] and open > close + (close[1] - open[1]) * 2 and high > max(open, close) and low < min(open, close) and open[1] < close[1]
hammer = open < close and close > (high + low + open * 2) / 4 and close - open > (high - low) * 0.6 and high - close < (high - low) * 0.1 and open - low < (high - low) * 0.1
hangingMan = open > close and open < (high + low + close * 2) / 4 and open - close > (high - low) * 0.6 and high - open < (high - low) * 0.1 and close - low < (high - low) * 0.1
// Entry condition
longCondition = crossover(close, highest(2)[1]) and (fractalHigh or bullishEngulfing or hammer)
shortCondition = crossunder(close, lowest(2)[1]) and (fractalLow or bearishEngulfing or hangingMan)
// Exit condition
exitLongCondition = crossunder(close, lowest(2)[1])
exitShortCondition = crossover(close, highest(2)[1])
// Entry and exit orders
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)
if (exitLongCondition)
strategy.close("Long")
if (exitShortCondition)
strategy.close("Short")
// Plot fractals
plotshape(fractalHigh, title="Fractal High", style=shape.triangledown, location=location.abovebar, color=color.green, size=size.small)
plotshape(fractalLow, title="Fractal Low", style=shape.triangleup, location=location.belowbar, color=color.red, size=size.small)
// Plot patterns
plotshape(bullishEngulfing, title="Bullish Engulfing", style=shape.arrowup, location=location.belowbar, color=color.green, size=size.small)
plotshape(bearishEngulfing, title="Bearish Engulfing", style=shape.arrowdown, location=location.abovebar, color=color.red, size=size.small)
plotshape(hammer, title="Hammer", style=shape.arrowup, location=location.belowbar, color=color.green, size=size.small)
plotshape(hangingMan, title="Hanging Man", style=shape.arrowdown, location=location.abovebar, color=color.red, size=size.small)