
이 전략은 이치모쿠 클라우드 그래프 지표에 기반하여 양적 거래 시스템을 설계했으며, 주로 좋은 추세를 보이는 자산에 사용한다. 이 전략은 안정적인 수익을 달성하기 위해 중단, 중단, 중단 추적 등의 기능을 통합했다.
이치모쿠 클라우드 그래프는 전환선, 기준선, 전각선 1, 전각선 2, 그리고 클라우드 그래프로 구성된다. 이 전략의 거래 신호는 가격과 전각선과의 관계에서 나온다. 구체적으로, 가격이 상단 전각선 1을 통과하면 구매 신호가 발생하고, 가격이 하단 전각선 1을 통과하면 판매 신호가 발생한다. 또한, 전각선 2는 보조 판단 지표로도 쓰인다.
이 전략은 또한 ATR 지표에 기반한 중지 손실과 중단 지점을 설정합니다. ATR 지표는 시장의 변동성을 효과적으로 포착 할 수 있습니다. 중지 손실은 ATR의 2 배이며, 중지 중지량은 ATR의 4 배입니다. 이것은 단편 손실을 효과적으로 제어하고 수익의 일부를 잠금 할 수 있습니다.
마지막으로, 이 전략은 추적 스톱 메커니즘을 채택한다. 구체적으로, 더 많은 주문을 할 경우, ATR의 2배를 후퇴로 설정하여 수익을 잠금하기 위해 스톱 라인을 실시간으로 조정한다.
위험과 대응하는 방법:
이 전략은 전반적으로 안정적인 트렌드 추적 전략이다. 이치모쿠 클라우드 그래프 지표를 기반으로 트렌드 방향을 판단한다. ATR 지표를 사용하여 중지 손실을 설정한다. 추적 중지 손실을 사용하여 수익을 잠금한다. 장점은 논리적으로 간결하고 이해하기 쉽다. 단일 손실을 제어할 수 있다.
/*backtest
start: 2023-01-05 00:00:00
end: 2024-01-11 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Ichimoku Cloud Strategy with SL, TP, and Trailing Stop", overlay=true)
conversionPeriods = input(9, "Conversion Line Length")
basePeriods = input(26, "Base Line Length")
laggingSpan2Periods = input(52, "Leading Span B Length")
displacement = input(26, "Lagging Span")
atrLength = input(14, title="ATR Length")
donchian(len) => math.avg(ta.lowest(len), ta.highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = math.avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)
// Plot the Ichimoku Cloud components
plot(conversionLine, color=color.blue, title="Conversion Line")
plot(baseLine, color=color.red, title="Base Line")
plot(leadLine1, color=color.green, title="Leading Span A")
plot(leadLine2, color=color.orange, title="Leading Span B")
plot(leadLine1 > leadLine2 ? leadLine1 : leadLine2, color=color.green, title="Kumo Cloud Upper Line")
plot(leadLine1 < leadLine2 ? leadLine1 : leadLine2, color=color.red, title="Kumo Cloud Lower Line")
// ATR for stop loss and take profit
atrValue = ta.atr(atrLength)
stopLoss = atrValue * 2
takeProfit = atrValue * 4
// Strategy entry and exit conditions
longCondition = ta.crossover(close, leadLine1) and close > leadLine2
shortCondition = ta.crossunder(close, leadLine1) and close < leadLine2
// Plot buy and sell signals
plotshape(series=longCondition ? leadLine1 : na, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=shortCondition ? leadLine1 : na, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)
// Execute strategy orders with stop loss and take profit
strategy.entry("Buy", strategy.long, when=longCondition)
strategy.close("Buy", when=shortCondition) // Close buy position when sell condition is met
strategy.entry("Sell", strategy.short, when=shortCondition)
strategy.close("Sell", when=longCondition) // Close sell position when buy condition is met
// Trailing stop
strategy.cancel("Trailing Stop")
var float trailingStopPrice = na
if (longCondition)
trailingStopPrice := math.max(trailingStopPrice, close - atrValue * 2)
strategy.exit("Trailing Stop", from_entry="Buy", trail_offset=atrValue * 2, trail_price=trailingStopPrice)
else if (shortCondition)
trailingStopPrice := math.min(trailingStopPrice, close + atrValue * 2)
strategy.exit("Trailing Stop", from_entry="Sell", trail_offset=atrValue * 2, trail_price=trailingStopPrice)