카이루 전략은 이치모쿠 클라우드, MACD, 차이킨 머니 플로우 (CMF) 및 트루 스트리트 인덱스 (TSI) 를 포함한 여러 기술적 지표를 통합하는 양적 거래 전략입니다. 이 전략은 시장에서 중장기 거래 기회를 발견하는 것을 목표로합니다.
카이루 전략의 핵심 아이디어는 이치모쿠 클라우드의 긴/단 신호, MACD의 긴/단 지표, CMF의 자본흐름 지표, TSI의 강도 지표를 결합하여 시장 트렌드, 과소매 및 과소매 영역을 판단하는 것입니다. 이치모쿠 클라우드는 트렌드 방향과 주요 지원 / 저항을 명확하게 결정할 수 있습니다. MACD는 구매 / 판매 힘과 과소매 / 과소매 현상의 대조를 반영합니다. CMF는 자본 유입과 출입을 판단합니다. TSI는 시장의 실제 구매 및 판매 힘을 보여줍니다.
특히 전략은 주로 다음의 지표에 근거하여 판단합니다.
위의 5가지 조건이 동시에 충족되면 긴 신호가 생성됩니다. 텐칸 선이 키준 선 아래로 넘어가면 짧은 신호가 생성됩니다.
이 전략은 단일 지표 판단에 의한 소음을 피하기 위해 여러 지표의 긴 및 짧은 조건을 결합합니다. 동시에 Ichimoku 클라우드를 사용하여 주요 지지 및 저항 영역을 결정하고 실제 자본 흐름의 방향을 결정하기 위해 지연 스판의 그림자의 방향을 결합함으로써 추세의 후기 단계에서 진입하고 주요 지점에서 먼저 빠져 나가는 것이 가능하며 이로 인해 더 큰 이익을 얻을 수 있습니다.
카이루 전략의 가장 큰 장점은 시장에서 과잉 구매/ 과잉 판매 현상을 판단하고 구매 및 판매 지점을 정확하게 결정하기 위해 여러 지표를 포괄적으로 사용하는 것입니다. 구체적인 장점:
여러 지표 통합을 통해 신호 정확성 향상단일 지표는 잘못된 신호에 취약하지만 이 전략은 효과적으로 소음을 필터하고 Ichimoku 클라우드, MACD, CMF, TSI 등을 통합함으로써 신호 신뢰성을 향상시킵니다.
이치모쿠 클라우드를 통해 주요 지원 및 저항을 식별이치모쿠 클라우드는 주요 지지 및 저항 수준을 명확히 표시합니다. 전략은 추세의 후단 단계에 시장에 진입하기 위해 이러한 영역 주위에 긴 및 짧은 지점을 배치 할 수 있습니다.
래거 스펀드를 사용하여 실제 자본 흐름을 결정합니다뒤떨어진 기간은 실제 자금보다 중재 명령에서 잘못된 움직임을 발견하는 데의 분리를 보여줍니다.
MACD로 과잉 구매/ 과잉 판매 표시. MACD는 과잉 구매/ 과잉 판매 조건을 빠르게 표시합니다. 이치모쿠 클라우드 레벨과 함께 긴 및 짧은 엔트리 신호를 정확하게 결정합니다.
CMF의 자본 흐름을 표시합니다.CMF 지표는 대량 변화로 큰 플레이어의 움직임을 반영하며 중재 흐름의 잘못된 신호를 피합니다.
TSI와 함께 구매/판매 힘의 강도를 표시가격 움직임의 크기를 제거함으로써 TSI는 하위 반등과 상위 하락을 발견하기 위해 구매/판매 세력의 실제 힘을 정확하게 표시합니다.
카이로 전략의 장점에도 불구하고 주목할 만한 몇 가지 위험도 있습니다. 주요 위험과 최적화 방향은 다음과 같습니다.
매개 변수 최적화기존의 매개 변수는 최적화되지 않을 수 있습니다. 더 안정적인 이익을위한 더 나은 매개 변수를 찾기 위해 더 체계적인 최적화 방법을 사용할 수 있습니다.
스톱 로스 메커니즘이 없는 경우현재 스톱 로스 메커니즘이 없습니다. 상당한 시장 반전이 통제 할 수없는 손실로 이어질 수 있습니다. 합리적인 후속 또는 제한 주문 스톱 손실이 구현되어야합니다.
높은 거래 빈도여러 통합 지표가 과도하게 높은 거래 빈도를 생성 할 수 있습니다. 거래 수를 합리적으로 제어하기 위해 매개 변수 조정이 사용되어야합니다.
성능 변동여러 지표 간의 상호 작용은 특정 시장 조건에서 더 큰 성과 변동으로 이어질 수 있습니다. 모델 조합에서 무게를 가하는 방법을 탐구 할 수 있습니다.
신호 분산 위험지표가 상반된 신호를 나타낸다면 입시 결정이 어려워집니다. 이러한 경우 수동 검토와 분석이 필요합니다.
카이루 전략은 다중 지표 양적 거래 전략이다. 이치모쿠 클라우드, MACD, CMF, TSI 등의 보완적인 강점을 최대한 활용하여 엔트리 및 엑시트 타이밍을 고유하게 결정합니다. 또한 전략 운영의 안정성을 크게 향상시키기 위해 스톱 로스 메커니즘, 매개 변수 조정, 웨이트 할당 등과 같은 측면에 최적화 할 여지가 있습니다.
/*backtest start: 2023-10-22 00:00:00 end: 2023-11-21 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Ichimoku with MACD/ CMF/ TSI ", overlay=true) //Inputs ts_bars = input(10, minval=1, title="Tenkan-Sen Bars") ks_bars = input(30, minval=1, title="Kijun-Sen Bars") ssb_bars = input(52, minval=1, title="Senkou-Span B Bars") cs_offset = input(26, minval=1, title="Chikou-Span Offset") ss_offset = input(26, minval=1, title="Senkou-Span Offset") long_entry = input(true, title="Long Entry") short_entry = input(true, title="Short Entry") middle(len) => avg(lowest(len), highest(len)) // Ichimoku Components tenkan = middle(ts_bars) kijun = middle(ks_bars) senkouA = avg(tenkan, kijun) senkouB = middle(ssb_bars) // Plot Ichimoku Kinko Hyo plot(tenkan, color=#0496ff, title="Tenkan-Sen") plot(kijun, color=#991515, title="Kijun-Sen") plot(close, offset=-cs_offset+1, color=#459915, title="Chikou-Span") sa=plot(senkouA, offset=ss_offset-1, color=color.green, title="Senkou-Span A") sb=plot(senkouB, offset=ss_offset-1, color=color.red, title="Senkou-Span B") fill(sa, sb, color = senkouA > senkouB ? color.green : color.red, title="Cloud color") ss_high = max(senkouA[ss_offset-1], senkouB[ss_offset-1]) ss_low = min(senkouA[ss_offset-1], senkouB[ss_offset-1]) // Entry/Exit Signals fast_length = input(title="Fast Length", type=input.integer, defval=12) slow_length = input(title="Slow Length", type=input.integer, defval=26) src = input(title="Source", type=input.source, defval=hl2) signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9) sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=true) sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=false) // Plot colors col_grow_above = #26A69A col_grow_below = #FFCDD2 col_fall_above = #B2DFDB col_fall_below = #EF5350 col_macd = #0094ff col_signal = #ff6a00 // Calculating fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length) slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length) macd = fast_ma - slow_ma signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length) hist = macd - signal tk_cross_bull = tenkan > kijun tk_cross_bear = tenkan < kijun cs_cross_bull = mom(close, cs_offset-1) > 0 cs_cross_bear = mom(close, cs_offset-1) < 0 price_above_kumo = close > ss_high price_below_kumo = close < ss_low //CMF lengthA = input(10, minval=1, title="CMF Length") ad = close==high and close==low or high==low ? 0 : ((2*close-low-high)/(high-low))*volume mf = sum(ad, lengthA) / sum(volume, lengthA) //TSI long = input(title="Long Length", type=input.integer, defval=20) short = input(title="Short Length", type=input.integer, defval=20) price = close double_smooth(src, long, short) => fist_smooth = ema(src, long) ema(fist_smooth, short) pc = change(price) double_smoothed_pc = double_smooth(pc, long, short) double_smoothed_abs_pc = double_smooth(abs(pc), long, short) tsi_value = 100 * (double_smoothed_pc / double_smoothed_abs_pc) bullish = tk_cross_bull and cs_cross_bull and price_above_kumo and hist > 0 and mf > 0.1 and tsi_value > 0 bearish = tk_cross_bear and cs_cross_bear and price_below_kumo and hist < 0 and mf < -0.1 and tsi_value < 0 strategy.entry("Long", strategy.long, when=bullish and long_entry) strategy.entry("Short", strategy.short, when=bearish and short_entry) strategy.close("Long", when=bearish and not short_entry) strategy.close("Short", when=bullish and not long_entry)