3단계 추세 돌파 및 모멘텀 추종 전략

HLOC BAR TRINITY PA TA RANGE Trend
생성 날짜: 2025-02-17 10:53:49 마지막으로 수정됨: 2025-02-17 10:53:49
복사: 0 클릭수: 371
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

3단계 추세 돌파 및 모멘텀 추종 전략 Based on the provided code, I’ll help create an SEO-friendly article analyzing this trading strategy in both Chinese and English.

개요

이 전략은 가격 행동 분석 (Price Action) 과 빌 윌리엄스의 K선 3등분 이론에 기초하여, 현재와 이전 K선의 개시 가격, K선 3등분 사이의 폐쇄 가격의 위치 관계를 분석하여, 시장 경향의 전환점과 지속성을 식별하여 거래 신호를 생성한다. 이 전략은 가격 행동에 전적으로 기반하고, 어떤 기술 지표에도 의존하지 않으며, 체계적인 방법으로 거래 과정에서 감정 편차를 제거한다.

전략 원칙

전략의 핵심 논리는 각 K 선의 변동 영역을 세 가지로 나누고, 개시 가격과 폐시 가격의 위치를 분석하여 시장의 흐름을 판단하는 것입니다. 구체적으로 다음을 포함합니다:

  1. K 라인 분류 - K 라인을 상장 가격 위치에 따라 여러 유형으로 분류한다:
    • 여러 형태를 참조하십시오: 1-3 (아래로 열리고 위쪽으로 열립니다), 2-3 (중간에 열리고 위쪽으로 열립니다),3-3 (아래로 열리고 위쪽으로 열립니다)
    • 공중 형식: 3-1 (상향, 하향) 2-1 (중향, 하향) 1-1 (하향, 하향)
  2. 신호 생성 - 2개의 연속적인 K 선의 형태 조합을 통해 거래 신호를 확인한다:
    • 구매 신호: 이전 K 선은 임의의 볼 수 있는 다중 형태, 현재 K 선은 1-3 또는3-3 형태
    • 판매 신호: 이전 K 선은 임의의 공허 형태이며, 현재 K 선은 1-1 또는3-1 형태
  3. 거래 실행 - 확인 신호 후에 자동으로 시가 주문 실행:
    • 구매 신호가 나오면 공백을 없애고 추가로 투자하십시오.
    • 팔기 신호가 나오면, 상장을 청산하고 공백을 다.

전략적 이점

  1. 순수 가격 드라이브 - 기술 지표의 지연을 피하여 가격 행동 분석에 전적으로 기반
  2. 체계화된 거래 - 명확한 규칙 체계로 거래를 실행하여 주관적 판단으로 인한 편차를 줄입니다.
  3. 트렌드 추적 - 가격의 큰 변동을 효과적으로 포착하여 단독 수익을 올릴 수 있습니다.
  4. 리스크 제어 - 연속적인 두 개의 K 라인을 분석하여 신호 신뢰도를 높인다.
  5. 간단하고 직관적인 - 전략 논리는 명확하고 이해하기 쉽고 실행이 가능합니다.

전략적 위험

  1. 진동시장은 적용되지 않는다 - 간격 진동시장에서 빈번하게 잘못된 신호가 발생할 수 있다
  2. 진입 시간 지연 - 신호를 확인하기 위해 K 라인 종료까지 기다려야 하며, 최적의 진입 지점을 놓칠 수 있다.
  3. 자금 관리 부족 - 전략 자체에는 손해 방지 장치가 포함되어 있지 않으며 추가적인 위험 관리 조치가 필요합니다.
  4. 시장 환경 의존성 - 유동성이 부족하거나 높은 변동성 환경에서 부진할 수 있습니다.
  5. 매개 변수 민감성 - K 라인 주기 선택이 전략 성능에 중요한 영향을 미칩니다.

전략 최적화 방향

  1. 변동율 필터 도입 - ATR과 같은 변동율 지표를 추가하여 다른 시장 환경에서 거래 빈도를 동적으로 조정합니다.
  2. 리스크 관리를 개선 - K선 3등급에 기반한 동적 상쇄장치 설계
  3. 최적화된 신호 확인 - 신호 신뢰성을 높이기 위해 트래픽, 변동률과 같은 보조 지표를 도입하는 것을 고려하십시오.
  4. 시장 환경을 분석하는 것 - 시장 상태를 인식하는 모듈을 개발하여 다른 시장 환경에서 다른 거래 매개 변수를 사용합니다.
  5. 포지션 관리 개선 - 신호 강도 및 시장 환경의 동성에 따라 포지션 비율을 조정

요약하다

이 전략은 K선 3등급의 혁신적인 방법을 사용하여 가격 행동을 분석하여 간단하고 효과적인 트렌드 추적 시스템을 구축한다. 약간의 한계가 있지만, 합리적인 최적화 및 위험 제어 조치를 통해 트렌드가 명백한 시장 환경에서 안정적인 수익을 얻을 수 있다. 전략의 핵심 장점은 체계화된 방법론과 가격 행동에 대한 깊이 있는 분석에 있으며, 정량 거래에 대한 참고 가치가있는 연구 방향을 제공합니다.

전략 소스 코드
/*backtest
start: 2025-01-17 00:00:00
end: 2025-02-15 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("TrinityBar", overlay=true, initial_capital=100000, 
     default_qty_type=strategy.percent_of_equity, default_qty_value=200)

//─────────────────────────────────────────────────────────────
// Current Bar Thirds Calculations
//─────────────────────────────────────────────────────────────
cur_range      = high - low
cur_lowerThird = low + cur_range / 3
cur_upperThird = high - cur_range / 3

//─────────────────────────────────────────────────────────────
// Previous Bar Thirds Calculations
//─────────────────────────────────────────────────────────────
prev_range      = high[1] - low[1]
prev_lowerThird = low[1] + prev_range / 3
prev_upperThird = high[1] - prev_range / 3

//─────────────────────────────────────────────────────────────
// Define Bullish Bar Types for Current Bar
//─────────────────────────────────────────────────────────────
is_1_3 = (open <= cur_lowerThird) and (close >= cur_upperThird)
is_3_3 = (open >= cur_upperThird) and (close >= cur_upperThird)
is_2_3 = (open > cur_lowerThird) and (open < cur_upperThird) and (close >= cur_upperThird)

//─────────────────────────────────────────────────────────────
// Define Bearish Bar Types for Current Bar
//─────────────────────────────────────────────────────────────
is_3_1 = (open >= cur_upperThird) and (close <= cur_lowerThird)
is_1_1 = (open <= cur_lowerThird) and (close <= cur_lowerThird)
is_2_1 = (open > cur_lowerThird) and (open < cur_upperThird) and (close <= cur_lowerThird)

//─────────────────────────────────────────────────────────────
// Define Bullish Bar Types for Previous Bar
//─────────────────────────────────────────────────────────────
prev_is_1_3 = (open[1] <= prev_lowerThird) and (close[1] >= prev_upperThird)
prev_is_3_3 = (open[1] >= prev_upperThird) and (close[1] >= prev_upperThird)
prev_is_2_3 = (open[1] > prev_lowerThird) and (open[1] < prev_upperThird) and (close[1] >= prev_upperThird)

//─────────────────────────────────────────────────────────────
// Define Bearish Bar Types for Previous Bar
//─────────────────────────────────────────────────────────────
prev_is_3_1 = (open[1] >= prev_upperThird) and (close[1] <= prev_lowerThird)
prev_is_1_1 = (open[1] <= prev_lowerThird) and (close[1] <= prev_lowerThird)
prev_is_2_1 = (open[1] > prev_lowerThird) and (open[1] < prev_upperThird) and (close[1] <= prev_lowerThird)

//─────────────────────────────────────────────────────────────
// Valid Signal Conditions
//─────────────────────────────────────────────────────────────
// Bullish Signal: If the previous bar is any bullish type (2‑3, 3‑3, or 1‑3)
// and the current bar is either a 1‑3 or a 3‑3 bar.
validBuy = (prev_is_2_3 or prev_is_3_3 or prev_is_1_3) and (is_1_3 or is_3_3)

// Bearish Signal: If the previous bar is any bearish type (2‑1, 1‑1, or 3‑1)
// and the current bar is either a 1‑1 or a 3‑1 bar.
validSell = (prev_is_2_1 or prev_is_1_1 or prev_is_3_1) and (is_1_1 or is_3_1)

//─────────────────────────────────────────────────────────────
// Plot Only the Signal Triangles
//─────────────────────────────────────────────────────────────
plotshape(validBuy, title="Valid Buy", style=shape.triangleup, location=location.belowbar, 
     color=color.green, size=size.small, text="B")
plotshape(validSell, title="Valid Sell", style=shape.triangledown, location=location.abovebar, 
     color=color.red, size=size.small, text="S")

//─────────────────────────────────────────────────────────────
// Market Order Execution Based on Signals
//─────────────────────────────────────────────────────────────
if validBuy
    // Close any short positions.
    strategy.close("Short", comment="")
    // If not already long, enter a market long.
    if strategy.position_size <= 0
        strategy.entry("Long", strategy.long, comment="")
        
if validSell
    // Close any long positions.
    strategy.close("Long", comment="")
    // If not already short, enter a market short.
    if strategy.position_size >= 0
        strategy.entry("Short", strategy.short, comment="")