
파동 압축 동력 브레이크 트래킹 전략은 TTM 압축 지표에 기반한 양적 거래 시스템으로, 파동 압축 이후의 강력한 브레이크 트래킹을 포착하기 위해 고안되었다. 이 전략은 우아하게 파동 압축을 (Brin Belt은 켄터나 통로 내부에 위치) 동력 확인과 결합하여 더 많은 것을하는 거래 시스템을 구성했다. 핵심적인 생각은 시장의 “에너지 축적” 단계를 식별하는 것입니다.
이 전략의 핵심 원칙은 시장의 변동성의 주기적 특성에 기초하여 “변동률의 축소와 함께 변동률의 확장이 반드시 동반된다”는 것이다. 구체적으로, 이 전략은 다음과 같은 몇 가지 핵심 구성 요소를 통해 협력적으로 작동한다:
압축 상태 판단:
동력 기둥 모양 도표:
시각화 지시:
거래 로직:
코드 분석을 통해 전략이 이 논리에 따라 엄격하게 실행되고, BB와 KC의 길이와 배수, 실제 파장을 사용하는 옵션, 거래 창의 시간 범위를 설정하는 등 사용자가 구성할 수 있는 매개 변수를 제공한다는 것을 알 수 있다.
코드에 대한 심층적인 분석 결과, 이 전략은 다음과 같은 몇 가지 중요한 장점을 보여준다.
큰 트렌드의 시작점: 변동률 압축은 보통 대시장상황의 시작을 예고하는 전조이다. 이 전략은 이러한 높은 확률의 폭출점을 포착하는 데 초점을 맞추고 있으며, 트렌드 초기에 포지션을 구축하여 수익 공간을 극대화하는 데 도움이 된다.
낮은 품질의 신호를 필터링: 연속적으로 세 개의 기둥이 압축 상태로 요구되며, 일시적인 “거짓 압축” 현상을 효과적으로 필터링하여 잘못된 신호를 줄이고 거래 품질을 향상시킵니다.
지능 동적 정지21주기 이동 평균을 스톱 로스로 사용해서 트렌드가 충분히 진행될 수 있도록 하고 동력이 쇠퇴할 때 적시에 퇴출할 수 있게 해 수익 잠재력과 위험 통제를 균형을 맞추고 있다.
시각적으로 직관적이죠전략: 전략은 동력 기둥 도표와 색상 코딩 된 압축 지점을 포함한 원래의 TTM 압축 지표의 모든 시각적 요소를 유지하여 거래자가 각 거래의 원인을 직관적으로 이해할 수 있도록합니다.
다양한 적응력: 전략 디자인은 1분에서 둘레까지의 모든 시간 프레임에 적용할 수 있으며, 다양한 거래 품종에 적합하며, 매우 보편적입니다.
사용자 정의 가능유연한 파라미터 설정을 제공하여 거래자가 특정 품종의 변동 특성에 따라 브린 띠와 켄터터 통로의 민감도를 조정할 수 있습니다.
내장된 응답 기능이 전략은 수수료와 슬라이드 시뮬레이션을 포함한 피드백을 지원하고, 전략의 성과를 보다 사실적으로 평가할 수 있습니다.
이 전략은 합리적으로 설계되었지만, 다음과 같은 잠재적인 위험들이 있습니다.
가짜 침입 위험: 3 기둥 필터링을 통과하더라도, 시장이 가짜 돌파구가 발생할 수 있으며, 돌파구 이후 가격이 빠르게 이동 평균 아래로 돌아와서 스톱로스를 유발합니다. 해결책은 거래량 확인이나 추세 필터와 같은 추가 확인 지표를 추가하는 것을 고려하는 것입니다.
시장의 부진: 장기적인 수평 변동 시장 환경에서 전략이 자주 들어가서 연속으로 작은 손실을 초래할 수 있습니다. 트렌드 판단 조건을 추가하여 명백한 변동 시장에서 거래를 중지하여 해결할 수 있습니다.
손해배상 지연성:21 주기 이동 평균은 빠른 반전 시장에서 느리게 반응하여 회수 확대를 초래할 수 있다. 높은 변동 환경에서는 더 짧은 주기 이동 평균으로 조정하거나 변동률 적응 구성 요소를 추가하는 것이 고려될 수 있다.
장기적인 하향상태의 위험: 순수 다중 전략으로, 장기적 인 곰 시장에서 도전을 할 수 있습니다. 시장 추세 필터를 추가하거나 보조적인 상장 전략을 개발하는 것을 고려하여이 위험을 차단 할 수 있습니다.
매개변수 민감도: 브린 벨트 및 켄터 통로의 파라미터 설정은 전략 성능에 상당한 영향을 미치며, 부적절한 파라미터는 과도한 신호 또는 중요한 기회를 놓치게 할 수 있습니다. 다양한 시장 조건에 대한 피드백을 통해 파라미터 설정을 최적화하는 것이 좋습니다.
유동성 위험코드 코멘트에서 언급한 바와 같이, 거래량이 매우 낮은 품종이나 비 유동성이 낮은 시간 프레임에서 더 큰 회수를 경험할 수 있다. 유동성이 부족한 시장에서 이 전략을 적용하는 것은 피해야 한다.
코드 분석을 바탕으로 이 전략이 최적화될 수 있는 방향은 다음과 같습니다.
추가량 확인: 현재 전략은 거래량 요소를 고려하지 않고 가격과 변동율에만 기반하여 결정을 내립니다. 거래량 확인 조건을 추가하여 거래량이 더 많이 지원되는 브레이크가 발생하도록 하여 브레이크의 효과를 높이는 것이 좋습니다. 이러한 최적화는 가짜 브레이크의 위험을 크게 줄일 수 있습니다.
적응 변수 메커니즘: 현재 매개 변수는 고정 값으로, 전략이 시장 상황에 따라 브린 벨트 및 켄터터 통로의 곱수를 자동으로 조정할 수 있도록, 다양한 변동 환경에서 전략을 강화하는 것을 고려할 수 있는 역사적인 변동률에 기반한 적응 매개 변수 시스템을 구현할 수 있습니다.
통합 시장 구조 분석시장 구조를 식별하는 알고리즘을 도입하는 것은 지지/저항 수준, 트렌드 라인 또는 중요한 가격 수준과 같은 중요한 구조 지점 근처의 압축 신호가 더 높은 성공률을 가질 수 있습니다.
다중 시간 프레임 분석다중 시간 프레임 확인 메커니즘을 구현하여 입시 신호가 더 긴 시간 프레임과 더 짧은 시간 프레임의 조건을 동시에 충족하도록 요구합니다. 이것은 신호 품질을 향상시키고 가짜 돌파구를 줄일 수 있습니다.
위험 관리 최적화: 현재 전략은 고정 이동 평균을 스톱으로 사용하며 ATR 기반의 동적 스톱이나 변동성 기반의 포지션 크기를 조정하여 위험 조정 후 수익률을 향상시킬 수 있습니다.
공백 논리 추가이 전략은 곰 시장에서 똑같이 효과적일 수 있도록 상호보완적인 코어 로직을 설계하는 것을 고려하여 전체 시장 주기의 적응력을 향상시킵니다.
계절과 시간 필터: 다른 계절, 달 또는 하루의 다른 시간 동안의 성능을 분석하는 전략은 특정 시간 주기의 성능이 더 좋다는 것을 발견 할 수 있습니다. 이에 따라 전체 성능을 향상시키기 위해 시간 필터를 추가하십시오.
파동 압축 동적 돌파 트래킹 전략은 우아하고 실용적인 양적 거래 시스템으로, 고전적인 TTM 압축 지표를 추적 가능한 전략 프레임 워크로 성공적으로 변환합니다. 그것의 핵심 장점은 파동 압축 후의 폭발적인 행동을 포착하고, 이동 평균을 추적하여 스톱 로스를 사용하여 이익을 보호하는 것입니다. 전략은 간단하고 효과적이며, 동시에 풍부한 시각적 피드백을 제공하여 거래자가 각 거래 신호의 형성 과정을 쉽게 이해할 수 있습니다.
가짜 브레이크와 충격 시장의 부실성과 같은 잠재적인 위험이 있음에도 불구하고, 이러한 문제는 제안된 최적화 방향에 의해 효과적으로 완화 될 수 있습니다. 특히 거래량 확인, 적응 파라미터 메커니즘 및 다중 시간 프레임 분석과 같은 최적화 조치를 추가하면 전략의 안정성과 적응성이 크게 향상 될 것으로 예상됩니다.
시장의 변동성을 포착하려는 거래자들에게는 이 전략은 직접적으로 적용할 수 있고 더 복잡한 시스템의 기본 구성 요소로 사용할 수 있는 견고한 출발점을 제공합니다. 무엇보다도, 이 전략의 설계 철학은 시장의 기본 법칙에 부합합니다. 변동률의 축소로 인해 결국 변동률이 확장되며, 이 법칙을 식별하고 활용하는 것은 성공적인 거래의 핵심 중 하나입니다.
/*backtest
start: 2024-06-19 00:00:00
end: 2025-06-17 08:00:00
period: 3d
basePeriod: 3d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("NA GPT - TTM Squeeze Strategy", overlay=false, commission_type=strategy.commission.percent, commission_value=0.01, slippage=3)
// === Inputs ===
length = input.int(20, title="BB & KC Length")
multBB = input.float(2, title="BB MultFactor")
lengthKC = input.int(20, title="KC Length")
multKC = input.float(1.5, title="KC MultFactor")
useTrueRange = input.bool(true, title="Use TrueRange (KC)")
// === Core data ===
source = close
// --- Bollinger Bands ---
basis = ta.sma(source, length)
dev = multBB * ta.stdev(source, length)
upperBB = basis + dev
lowerBB = basis - dev
// --- Keltner Channels ---
ma = ta.sma(source, lengthKC)
kcRange = useTrueRange ? ta.tr : (high - low)
kcRangeAvg = ta.sma(kcRange, lengthKC)
upperKC = ma + kcRangeAvg * multKC
lowerKC = ma - kcRangeAvg * multKC
// --- Squeeze states ---
sqzOn = (lowerBB > lowerKC) and (upperBB < upperKC)
sqzOff = (lowerBB < lowerKC) and (upperBB > upperKC)
noSqz = not sqzOn and not sqzOff
// --- Momentum histogram (same as indicator) ---
midpoint = (ta.highest(high, lengthKC) + ta.lowest(low, lengthKC)) / 2
average = (midpoint + ta.sma(close, lengthKC)) / 2
val = ta.linreg(source - average, lengthKC, 0)
// Histogram colours
bcolor = val > 0 ?
(val > nz(val[1]) ? color.lime : color.green) :
(val < nz(val[1]) ? color.red : color.maroon)
// Zero-line colour
scolor = noSqz ? color.new(color.blue, 0) :
sqzOn ? color.new(#031753, 0) :
color.new(#78797c, 0)
// === Plotting (visuals preserved) ===
plot(val, title="Momentum", style=plot.style_histogram, linewidth=4, color=bcolor)
plot(0, title="Zero Line", style=plot.style_line, linewidth=2, color=scolor)
// --- Blue-dot theme ---
dotColor = sqzOn ? color.new(#000080, 0) : // Navy Blue
sqzOff ? color.new(#7f858a, 0) : // Steel Blue
color.new(#87CEEB, 0) // Sky Blue
plotshape(true, title="Squeeze Dot", location=location.bottom, style=shape.circle, color=dotColor, size=size.tiny)
// === Trading logic ===
// 3 consecutive “blue-dot” squeeze bars
threeSqz = sqzOn and sqzOn[1] and sqzOn[2]
// 21-period SMA
sma21 = ta.sma(close, 21)
// Entry: go long when threeSqz appears inside window
if strategy.position_size == 0 and threeSqz
strategy.entry("Long", strategy.long)
// Exit: close long when price crosses below SMA-21
if strategy.position_size > 0 and ta.crossunder(close, sma21)
strategy.close("Long")