
Chiến lược này là một hệ thống giao dịch theo dõi xu hướng động dựa trên chỉ số biểu đồ đám mây ichimoku. Cốt lõi của chiến lược là xác định sự thay đổi của xu hướng thị trường bằng cách giám sát sự giao thoa của đường chuyển đổi ((Tenkan-sen) và đường chuẩn ((Kijun-sen) và chuyển đổi các vị trí trống tại thời điểm thích hợp. Chiến lược này kết hợp tính tin cậy của chỉ số ichimoku truyền thống và tính linh hoạt của giao dịch hiện đại.
Chiến lược này hoạt động dựa trên một số yếu tố quan trọng:
Chiến lược này có tính năng rõ ràng về mặt logic, dễ thực hiện. Ưu điểm của chiến lược là có thể tự động thích ứng với sự thay đổi của thị trường và điều chỉnh hướng giữ vị trí kịp thời. Mặc dù có một số rủi ro vốn có, nhưng thông qua các biện pháp tối ưu hóa và kiểm soát rủi ro hợp lý, chiến lược này có thể thu được lợi nhuận ổn định trong thị trường xu hướng.
/*backtest
start: 2024-02-19 00:00:00
end: 2025-02-16 08:00:00
period: 4h
basePeriod: 4h
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/
// © pyoungil0842
//@version=6
strategy("Ichimoku Crossover Strategy with Switching", overlay=true)
// 일목균형표의 요소 계산
tenkanLength = input(9, title="전환선 기간")
kijunLength = input(26, title="기준선 기간")
tenkan = ta.sma(ta.highest(high, tenkanLength) + ta.lowest(low, tenkanLength), 2)
kijun = ta.sma(ta.highest(high, kijunLength) + ta.lowest(low, kijunLength), 2)
// 현재 캔들에서 교차 신호 확인
goldenCross = (tenkan > kijun) and (tenkan[1] <= kijun[1]) // 전환선이 기준선을 상향 돌파
deadCross = (tenkan < kijun) and (tenkan[1] >= kijun[1]) // 전환선이 기준선을 하향 돌파
// 현재 포지션 상태
isLong = strategy.position_size > 0 // 롱 포지션 여부
isShort = strategy.position_size < 0 // 숏 포지션 여부
// 전략 매수/매도 조건
if (goldenCross)
if (isShort) // 숏 포지션이 있을 경우 스위칭
strategy.close("Short")
strategy.entry("Long", strategy.long)
else if (strategy.position_size == 0) // 포지션이 없을 경우 신규 진입
strategy.entry("Long", strategy.long)
if (deadCross)
if (isLong) // 롱 포지션이 있을 경우 스위칭
strategy.close("Long")
strategy.entry("Short", strategy.short)
else if (strategy.position_size == 0) // 포지션이 없을 경우 신규 진입
strategy.entry("Short", strategy.short)
// 차트에 전환선과 기준선 표시
plot(tenkan, color=color.blue, title="전환선")
plot(kijun, color=color.red, title="기준선")