다중 신호 일관성 클라우드 에지 혁신 전략

技术指标 ICHIMOKU TENKAN-SEN Kijun-Sen Senkou Span CHIKOU SPAN KUMO
생성 날짜: 2025-04-16 15:24:06 마지막으로 수정됨: 2025-04-16 15:24:06
복사: 0 클릭수: 350
avatar of ianzeng123 ianzeng123
2
집중하다
319
수행원

다중 신호 일관성 클라우드 에지 혁신 전략 다중 신호 일관성 클라우드 에지 혁신 전략

개요

다중 신호 일치 클라우드 엣지 브레이크 전략은 일회성 평형표 (Ichimoku Cloud) 의 핵심 요소를 기반으로 한 정량 거래 전략이다. 이 전략은 전환선 (Tenkan-sen), 기준선 (Kijun-sen), 선도선 (A) (Senkou Span A), 선도선 (B) (Senkou Span B), 지연선 (Chikou Span) 과 같은 여러 기술 지표를 종합적으로 분석하여, 8개의 서로 다른 비즈니스 신호를 판단하여 시장의 추세와 잠재적인 역전점을 식별한다. 전략의 핵심은 여러 기술 지표의 일관성을 찾는 데 있다.

전략 원칙

이 전략의 핵심 원칙은 시장의 경향의 강도와 방향을 판단하기 위해 첫 번째 균형 표의 여러 구성 요소를 통합적으로 사용하는 것입니다. 구체적으로, 전략은 다음과 같은 8 가지 중요한 시선 신호를 정의합니다.

  1. 현재 가격은 이동주기 전보다 높습니다.[displacement])
  2. 현재 가격은 전환선보다 높습니다.
  3. 전환선은 기준선보다 높다 ((Tenkan-sen > Kijun-sen)
  4. 지연선이 위쪽으로 전환선을 통과하는 시간은 아래쪽으로 통과하는 것보다 더 가깝습니다.
  5. 지연선이 기준선을 상향으로 통과하는 시간은 기준선을 하향으로 통과하는 것보다 더 가깝습니다.
  6. 전환선이 기준선을 상향으로 통과하는 시간은 밑으로 통과하는 것보다 더 가깝습니다.
  7. 지연선이 구름의 상단 경계까지 올라가는 시간은 구름의 하단 경계까지 내려가는 것보다 더 가깝습니다.
  8. 선행 A띠가 선행 B띠를 상향으로 통과하는 시간은 아래로 통과하는 것보다 더 가깝습니다.

전략은 조건을 충족하는 신호의 수를 계산하고, 기본 절벽과 비교하여 거래 방향을 결정합니다. bullishThreshold에 도달하거나 bullishThreshold을 초과할 때 전략은 더 많은 위치를 열고 임의의 공백 위치를 평행합니다. bullishThreshold보다 적거나 같을 때 전략은 공백 위치를 열고 임의의 공백 위치를 평행합니다.

이 다중 신호 일치 판단 방법은 시장 소음을 효과적으로 필터링하여 거래 신호의 신뢰성을 높이고 가짜 돌파의 위험을 줄일 수 있습니다.

전략적 이점

코드에 대한 심층적인 분석을 통해, 이 전략은 다음과 같은 몇 가지 분명한 장점을 가지고 있습니다:

  1. 다차원 신호 확인이 전략은 단일 지표에 의존하지 않고 8개의 다른 기술 신호를 종합적으로 고려하여 여러 신호가 일치할 때만 거래를 유발하여 가짜 신호의 가능성을 크게 줄였습니다.

  2. 매우 적응력이 좋다: bullishThreshold와 bearishThreshold 파라미터를 조정함으로써, 전략은 다양한 시장 환경에 따라 신호 하락을 조정하여 다양한 시장 조건에서 유효하게 유지 할 수 있습니다.

  3. 시각화전략: 전략은 풍부한 시각적 요소를 제공하며, 구름 (Kumo) 을 그리는 것, 신호 표기 및 현재 시조 신호의 수를 표시하는 태그를 포함합니다. 이는 거래자가 시장 구조와 전략 운영 상태를 직관적으로 이해할 수 있도록합니다.

  4. 전체적인 트렌드 포착전략은 가격과 지표의 관계에만 집중하지 않고, 지표 간의 상호관계와 역사적 상황을 고려하여 시장 추세의 변화를 더 포괄적으로 포착할 수 있습니다.

  5. 유연한 변수 설정: 전략은 사용자가 다양한 거래 종류와 시간 주기에 적합하도록 전환 라인 주기, 기준 라인 주기, 선행 B띠 주기 및 이동 주기 등 1차 균형 표의 각종 파라미터를 사용자 정의 할 수 있습니다.

전략적 위험

이 전략은 정교하게 설계되었지만, 실제 적용에서는 다음과 같은 몇 가지 위험 요소가 있습니다.

  1. 지연의 위험첫눈의 평형표는 그 자체로 지연 지표이며, 특히 이동 주기 (기본 26), 신호가 지연되어 빠르게 변하는 시장에서 최적의 입문 지점을 놓칠 수 있거나 큰 스톱로스를 초래할 수 있습니다.

  2. 역사적인 데이터에 지나치게 의존하는 것: 이 전략은 역사 교차점을 비교하기 위해 많은 barssince 함수를 사용하며, 이는 충분한 역사 데이터에 의존한다. 역사 데이터가 부족하면 잘못된 신호 판단이 발생할 수 있다.

  3. 매개변수 민감도전략 효과는 파라미터 설정에 크게 의존합니다. 다른 시장 환경에는 다른 파라미터 조합이 필요할 수 있으며, 잘못된 파라미터 설정은 과도한 거래 또는 중요한 기회를 놓칠 수 있습니다.

  4. 제대로 된 위험 관리 부족: 코드에 명확한 중지 및 중지 메커니즘이 없으며, 포지션 관리가 고려되지 않았으며, 불리한 상황에서 너무 큰 손실이 발생할 수 있습니다.

  5. 신호 충돌8개의 신호가 자주 변하고 서로 상반되는 경우가 있는데, 이는 거래비용을 높여주기 위해 자주 진입과 진출을 유발한다.

이러한 위험을 줄이기 위해, 거래자는 스톱 스톱 로직을 추가하고, 파라미터 설정을 최적화하고, 다른 비관계 지표와 결합하여 신호를 확인하는 동시에 포지션 크기를 적절하게 제어 할 수 있습니다.

전략 최적화 방향

전략의 특성과 잠재적인 위험에 따라 몇 가지 최적화 방향이 있습니다.

  1. 변동성 필터 추가코드에 ATR 또는 다른 변동성 지표를 추가하여 시장의 변동성이 지나치게 많거나 지나치게 낮을 때 전략을 조정하거나 이러한 기간의 거래를 직접 회피하십시오. 이것은 낮은 변동성 동안 발생하는 가짜 돌파구 또는 높은 변동성 동안 과도한 위험을 효과적으로 피할 수 있습니다.

  2. 위험 관리 제도를 개선하기: ATR 기반의 스톱 또는 중요한 지지 저항의 위치 기반의 스톱과 같은 동적 스톱 스톱 논리를 추가하여 전략의 리스크 수익률을 높인다.

  3. 신호 무게를 최적화: 다른 시선 신호는 다른 시장 환경에서 다른 중요성을 가질 수 있으며, 전략의 적응성을 높이기 위해 단순히 계산하는 대신 8 개의 신호에 다른 무게를 할당 할 수 있습니다.

  4. 트랜잭션 수량 확인: 거래량을 추가 확인 조건으로 삼아 거래량이 뒷받침되는 경우에만 신호를 확인하는 것이 가짜 돌파구를 더욱 줄일 수 있습니다.

  5. 동적 변수 적응을 구현시장 상황에 따라 전략 매개 변수를 동적으로 조정하는 적응 메커니즘을 개발하여 변화하는 시장 환경에 더 잘 적응 할 수 있습니다.

  6. 시장 상태 판단을 높여라: 전략에 시장 상태에 대한 판단 논리를 추가하고, 다른 시장 상태에서 다른 신호 마이너스 또는 거래 전략을 사용하면 다양한 시장 환경에서 전략의 성능을 크게 향상시킬 수 있습니다.

이러한 최적화는 전략의 안정성을 높이고, 회수율을 줄이고, 장기적인 수익성을 높일 수 있습니다.

요약하다

다중 신호 일치 클라우드 엣지 브레이크 전략 (Multiple Signal Consistency Cloud Edge Breakout Strategy) 은 평형표의 여러 구성 요소를 결합한 종합적인 거래 시스템이다. 그것은 8개의 핵심 기술 신호를 정의하고 조건이 충족되는 신호의 수에 따라 시장의 경향 방향을 결정하고 거래 결정을 결정한다.

이 전략의 가장 큰 장점은 다차원적인 신호 확인 메커니즘으로, 여러 기술적 지표가 일치하도록 요구함으로써 시장 소음을 필터링하여 거래 신호의 신뢰성을 향상시키는 것입니다. 동시에, 전략은 풍부한 시각화 요소와 유연한 파라미터 설정을 제공하여 거래자가 시장 구조와 전략 상태를 직관적으로 이해할 수 있습니다.

그러나, 전략에는 신호 지연, 과도한 역사적 데이터 의존 및 완벽한 위험 관리 부족 등의 문제가 있습니다. 미래에는 변동률 필터를 추가하고, 위험 관리 메커니즘을 개선하고, 신호 무게를 최적화하는 등의 방법으로 전략을 더 개선할 수 있습니다.

전체적으로, 이것은 전체적이고, 논리적으로 명확한 전략 프레임워크로 설계되어 있으며, 초기 평형표에 대한 어느 정도 지식을 가진 거래자가 사용할 수 있습니다. 적절한 매개 변수를 조정하고 더 이상 최적화하면, 이 전략은 안정적인 거래 시스템, 특히 중장기 트렌드 추적 거래에 적합 할 잠재력이 있습니다.

전략 소스 코드
/*backtest
start: 2024-04-16 00:00:00
end: 2025-04-15 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//PineWiseTrading

//@version=6
strategy("⛅ CloudEdge", overlay=true, max_bars_back=4999)

// === INPUTS ===
// Ichimoku Periods
tenkanPeriod    = input.int(9, "Tenkan-sen Period", minval=1, tooltip="Period for Tenkan-sen (Conversion Line)")
kijunPeriod     = input.int(26, "Kijun-sen Period", minval=1, tooltip="Period for Kijun-sen (Base Line)")
senkouBPeriod   = input.int(52, "Senkou Span B Period", minval=1, tooltip="Period for Senkou Span B")
displacement    = input.int(26, "Displacement", minval=1, tooltip="Shift for Kumo and Chikou Span")

// Signal Thresholds
bullishThreshold = input.int(8, "Bullish Signal Threshold", minval=0, maxval=8, tooltip="Number of bullish signals required for a long position")
bearishThreshold = input.int(0, "Bearish Signal Threshold", minval=0, maxval=8, tooltip="Number of bullish signals below which a short position is entered")

// Visualization Options
showIchimoku = input.bool(true, "Show Ichimoku Lines", tooltip="Toggle to show/hide Ichimoku components")
showSignals  = input.bool(true, "Show Signal Indicators", tooltip="Toggle to show/hide entry signals")

// === ICHIMOKU CALCULATIONS ===
// Tenkan-sen (Conversion Line)
tenkanHigh = ta.highest(high, tenkanPeriod)
tenkanLow  = ta.lowest(low, tenkanPeriod)
tenkanSen  = (tenkanHigh + tenkanLow) / 2

// Kijun-sen (Base Line)
kijunHigh = ta.highest(high, kijunPeriod)
kijunLow  = ta.lowest(low, kijunPeriod)
kijunSen  = (kijunHigh + kijunLow) / 2

// Senkou Span A (Leading Span A)
senkouA = (tenkanSen + kijunSen) / 2

// Senkou Span B (Leading Span B)
senkouBHigh = ta.highest(high, senkouBPeriod)
senkouBLow  = ta.lowest(low, senkouBPeriod)
senkouB  = (senkouBHigh + senkouBLow) / 2

// Chikou Span (Lagging Span)
chikouSpan = close[displacement]

// Kumo Upper and Lower for Visualization
kumoUpper = math.max(senkouA[displacement], senkouB[displacement])
kumoLower = math.min(senkouA[displacement], senkouB[displacement])

// === STRATEGY SIGNALS ===
// Define 8 Bullish Signals
signal1 = close > close[displacement]  
signal2 = close > tenkanSen             
signal3 = tenkanSen > kijunSen          
signal4 = ta.barssince(ta.crossover(chikouSpan, tenkanSen)) < ta.barssince(ta.crossunder(chikouSpan, tenkanSen))  
signal5 = ta.barssince(ta.crossover(chikouSpan, kijunSen)) < ta.barssince(ta.crossunder(chikouSpan, kijunSen))    
signal6 = ta.barssince(ta.crossover(tenkanSen, kijunSen)) < ta.barssince(ta.crossunder(tenkanSen, kijunSen))      
signal7 = ta.barssince(ta.crossover(chikouSpan, kumoUpper)) < ta.barssince(ta.crossunder(chikouSpan, kumoLower))  
signal8 = ta.barssince(ta.crossover(senkouA, senkouB)) < ta.barssince(ta.crossunder(senkouA, senkouB))          
// Count Bullish Signals
bullish_count = 0
bullish_count += (signal1 ? 1 : 0)
bullish_count += (signal2 ? 1 : 0)
bullish_count += (signal3 ? 1 : 0)
bullish_count += (signal4 ? 1 : 0)
bullish_count += (signal5 ? 1 : 0)
bullish_count += (signal6 ? 1 : 0)
bullish_count += (signal7 ? 1 : 0)
bullish_count += (signal8 ? 1 : 0)

// === TRADING LOGIC ===
if bullish_count >= bullishThreshold
    strategy.entry("Long", strategy.long)
    strategy.close("Short")
else if bullish_count <= bearishThreshold
    strategy.entry("Short", strategy.short)
    strategy.close("Long")

// === VISUALIZATIONS ===
// Plot Ichimoku Lines 
plot(showIchimoku ? tenkanSen : na, "Tenkan-sen", color=color.red, linewidth=2)
plot(showIchimoku ? kijunSen  : na, "Kijun-sen",  color=color.blue, linewidth=2)
plot(showIchimoku ? chikouSpan : na, "Chikou Span", color=color.green, offset=-displacement)

// For Senkou spans, capture the plot handles
senkouA_plot = plot(showIchimoku ? senkouA : na, "Senkou Span A", color=color.orange, offset=displacement)
senkouB_plot = plot(showIchimoku ? senkouB : na, "Senkou Span B", color=color.purple, offset=displacement)
// Use the plot handles in fill
fill(senkouA_plot, senkouB_plot, color=senkouA > senkouB ? color.new(color.green, 90) : color.new(color.red, 90), title="Kumo Cloud")

// Plot Signal Indicators using conditions inside the function call
plotshape(showSignals and bullish_count >= bullishThreshold, title="Long Entry", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(showSignals and bullish_count <= bearishThreshold, title="Short Entry", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)
label.new(bar_index, high, text=str.tostring(bullish_count) + "/8", color=color.black, textcolor=color.white, style=label.style_label_down)

// Background Highlighting 
bgcolor(bullish_count >= bullishThreshold ? color.new(color.green, 90) : bullish_count <= bearishThreshold ? color.new(color.red, 90) : na)