이 전략은 시장 트렌드와 거래 신호를 결정하기 위해 이치모쿠 쿠모 지표를 사용합니다. 이 전략은 가격이 쿠모 클라우드 아래에있을 때 길고 가격이 쿠모 클라우드 위에있을 때 짧습니다. 이 전략은 스톱 로스를 위해 ATR 지표를 사용하고 키준 센 및 센쿠 스판 라인의 브레이크로 엔트리 신호를 확인합니다. 이 전략은 위험을 제어하면서 강한 트렌드에 대한 거래 기회를 포착하는 것을 목표로합니다.
이 전략은 이치모쿠 지표의 여러 구성 요소를 활용하여 시장 트렌드를 포괄적으로 분석합니다. 동시에 전략은 위험을 제어하기 위해 ATR 스톱 로스를 사용하여 전략의 견고성을 향상시킵니다. 그러나 전략은 범위 시장에서 성능이 떨어질 수 있으며 매개 변수 선택에 의존합니다. 미래에 다른 분석 방법을 도입하고 스톱 로스 및 포지션 사이징을 최적화하여 전략의 성능을 더욱 향상시킬 수 있습니다.
/*backtest start: 2024-04-01 00:00:00 end: 2024-04-30 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © muratatilay //@version=5 strategy( "Kumo Trade Concept", overlay=true, initial_capital=10000, currency=currency.USDT, default_qty_type=strategy.percent_of_equity, default_qty_value=30, commission_type=strategy.commission.percent, commission_value=0.1, margin_long=10, margin_short=10) // ICHIMOKU Lines // INPUTS tenkanSenPeriods = input.int(9, minval=1, title="Tenkan-sen") kijunSenPeriods = input.int(26, minval=1, title="Kijun-sen") senkouBPeriod = input.int(52, minval=1, title="Senkou span B") displacement = input.int(26, minval=1, title="Chikou span") donchian(len) => math.avg(ta.lowest(len), ta.highest(len)) tenkanSen = donchian(tenkanSenPeriods) kijunSen = donchian(kijunSenPeriods) senkouA = math.avg(tenkanSen, kijunSen) senkouB = donchian(senkouBPeriod) // Other Indicators float atrValue = ta.atr(5) // Calculate Senkou Span A 25 bars back senkouA_current = math.avg(tenkanSen[25], kijunSen[25]) // Calculate Senkou Span B 25 bars back senkouB_current = math.avg(ta.highest(senkouBPeriod)[25], ta.lowest(senkouBPeriod)[25]) // Kumo top bottom senkou_max = (senkouA_current >= senkouB_current) ? senkouA_current : senkouB_current senkou_min = (senkouB_current >= senkouA_current) ? senkouA_current : senkouB_current // Trade Setups long_setup = (kijunSen > senkou_max) and (close < senkou_min) short_setup = (kijunSen < senkou_min ) and ( close > senkou_max ) // Check long_setup for the last 10 bars long_setup_last_10 = false for i = 0 to 50 if long_setup[i] long_setup_last_10 := true short_setup_last_10 = false for i = 0 to 50 if short_setup[i] short_setup_last_10 := true closeSenkouCross = (close > senkou_max) and barstate.isconfirmed closeKijunCross = (close > kijunSen ) senkouCloseCross = close < senkou_min kijunCloseCross = close < kijunSen // Handle Trades // Enter Trade var float trailStopLong = na var float trailStopShort = na if ( closeSenkouCross and long_setup_last_10 and closeKijunCross ) strategy.entry(id="Buy", direction = strategy.long) trailStopLong := na if senkouCloseCross and short_setup_last_10 and kijunCloseCross strategy.entry(id="Sell", direction = strategy.short) trailStopShort := na // Update trailing stop float temp_trailStop_long = ta.highest(high, 5) - (atrValue * 3) float temp_trailStop_short = ta.lowest(low, 5) + (atrValue * 3) if strategy.position_size > 0 if temp_trailStop_long > trailStopLong or na(trailStopLong) trailStopLong := temp_trailStop_long if strategy.position_size < 0 if temp_trailStop_short < trailStopShort or na(trailStopShort) trailStopShort := temp_trailStop_short // Handle strategy exit if close < trailStopLong and barstate.isconfirmed strategy.close("Buy", comment="Stop Long") if close > trailStopShort and barstate.isconfirmed strategy.close("Sell", comment="Stop Short") // PRINT ON CHART plot(kijunSen, color=color.rgb(214, 58, 30), title="Kijun-sen", linewidth=2) p1 = plot(senkouA, offset=displacement - 1, color=#A5D6A7, title="Senkou span A") p2 = plot(senkouB, offset=displacement - 1, color=#EF9A9A, title="Senkou Span B") fill(p1, p2, color=senkouA > senkouB ? color.rgb(67, 160, 71, 90) : color.rgb(244, 67, 54, 90)) // PRINT SETUPS plotshape(long_setup , style=shape.circle, color=color.green, location=location.belowbar, size=size.small) plotshape(short_setup, style=shape.circle, color=color.red, location=location.abovebar, size=size.small) // Trail Stop plot(strategy.position_size[1] > 0 ? trailStopLong : na, style=plot.style_linebr, color=color.purple, title="Stop Loss") plot(strategy.position_size[1] < 0 ? trailStopShort : na, style=plot.style_linebr, color=color.purple, title="Stop Loss")