이 전략은
이 전략은 주로 트렌드 트레이딩을 위한 여러 가지 기술적 지표를 포함하는 이치모쿠 킨코 히오 시스템을 기반으로 합니다. 주요 구성 요소는 다음과 같습니다.
키준 센: 시장 트렌드 방향을 나타냅니다. 지난 26 일 동안 가장 높고 가장 낮은 가격의 중간 지점이며, 지원 및 저항 라인으로 작용합니다. 가격 폐쇄가 키준 센을 넘을 때 구매 및 판매 신호가 생성됩니다.
텐칸 센: 가격의 움직임을 나타냅니다. 지난 9 일 동안 가장 높고 가장 낮은 가격의 중간 지점이며 가장 좋은 입점과 출구 지점을 결정하는 데 도움이됩니다.
센쿠 스판 A: 이치모쿠의 중간선을 나타냅니다. 키준 센과 텐칸 센의 평균이며, 이치모쿠의 경고 라인으로 작용합니다.
센쿠 스판 B: 장기 트렌드 라인을 나타냅니다. 지난 52 일 중점입니다. 장기 및 단기 트렌드를 결정하기 위해 이치모쿠 클라우드를 형성합니다.
또한, 전략은 또한 RSI 지표를 통합하여 과잉 구매 및 과잉 판매 구역에서 거래 신호를 생성합니다.
구매 신호는 가격 종료가 키
이치모쿠 시스템은 상대적으로 높은 승률을 가진 트렌드를 정확하게 결정합니다.
여러 가지 지표를 통합하면 놓친 기회를 피할 수 있습니다.
RSI는 반전 지점을 효과적으로 결정합니다.
클라우드는 직관적으로 장기적이고 단기적인 트렌드를 제시합니다.
이치모쿠 시스템은 약간의 차질이 있습니다. 다른 지표들을 포함해야 합니다.
트렌딩 시장에서는 매우 잘 작동하지만, 다양한 시장에서는 소박합니다.
RSI 매개 변수는 시장에 따라 조정되어야 합니다.
클라우드 구조는 복잡한 구조로 능숙한 조작이 필요합니다.
이치모쿠의 매개 변수를 최적화하거나 더 많은 지표를 추가할 수 있습니다.
이치모쿠의 매개 변수를 최적화해서 추세를 더 빨리 결정해
신호의 정확성을 높이기 위해 이동 평균과 같은 더 많은 지표를 추가합니다.
다른 시장에 따라 RSI 매개 변수를 조정합니다.
위험을 통제하기 위해 스톱 로스 메커니즘을 추가하는 것을 고려하십시오.
이치모쿠는 RSI와 같은 지표와 결합하여 상승 추세를 파악하는 데 높은 정확성을 가지고 있습니다. 이치모쿠의 지연과 시장 범위에서의 적응성이 주요 위험 요소입니다. 적절한 매개 변수 조정 및 더 많은 지표를 추가하면 이러한 위험을 크게 완화하여 전략을 더욱 견고하고 신뢰할 수 있습니다.
/*backtest start: 2022-12-13 00:00:00 end: 2023-12-19 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("My Ichimoku Strat v2", overlay=true,default_qty_type=strategy.fixed, default_qty_value=1, initial_capital=1000, currency=currency.EUR,commission_type=strategy.commission.percent,commission_value=0.05) // === BACKTEST RANGE === FromMonth = input(defval = 3, title = "From Month", minval = 1) FromDay = input(defval = 1, title = "From Day", minval = 1) FromYear = input(defval = 2018, title = "From Year", minval = 2014) ToMonth = input(defval = 1, title = "To Month", minval = 1) ToDay = input(defval = 1, title = "To Day", minval = 1) ToYear = input(defval = 9999, title = "To Year", minval = 2014) // === SERIES SETUP === //**** Inputs ******* KijunSenLag = input(6,title="KijunSen Lag",minval=1) //Kijun-sen //Support resistance line, buy signal when price crosses it KijunSen = sma((high+low)/2,26) buy2 = crossover(close,KijunSen) and (rising(KijunSen,KijunSenLag) or falling(KijunSen,KijunSenLag)) sell2= crossunder(close,KijunSen) and (rising(KijunSen,KijunSenLag) or falling(KijunSen,KijunSenLag)) //Tenkan-Sen TenkanSen = sma((high+low)/2,9) //Senkou Span A SenkouSpanA = (KijunSen + TenkanSen)/2 //Senkou Span B SenkouSpanB = sma((high+low)/2,52) //Cloud conditions : ignore buy if price is under the cloud // Huge cloud means safe support and resistance. Little cloud means danger. buy3 = close > SenkouSpanA and close > SenkouSpanB sell3 = close < SenkouSpanA and close < SenkouSpanB //Chikou Span //Buy signal : crossover(ChikouSpan,close) //Sell Signal : crossunder(ChikouSpan,close) ChikouSpan = close buy1=crossover(ChikouSpan,close[26]) sell1=crossunder(ChikouSpan,close[26]) plotshape(buy1,style=shape.diamond,color=lime,size=size.small) plotshape(sell1,style=shape.diamond,color=orange,size=size.small) //Alerts buyCompteur = -1 buyCompteur := nz(buyCompteur[1],-1) buyCompteur := buy2 or buy3 ? 1 : buyCompteur buyCompteur := buyCompteur > 0 ? buyCompteur + 1 : buyCompteur buyCompteur := sell2 or sell3 ? -1 : buyCompteur sellCompteur = -1 sellCompteur := nz(sellCompteur[1],-1) sellCompteur := sell2 or sell3 ? 1 : sellCompteur sellCompteur := sellCompteur > 0 ? sellCompteur + 1 : sellCompteur sellCompteur := buy2 or buy3 ? -1 : sellCompteur //RSI src = close, len = input(14, minval=1, title="RSI Length") up = rma(max(change(src), 0), len) down = rma(-min(change(src), 0), len) rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down)) buyRSI = crossover(rsi,40) and close > TenkanSen and rsi[5]<30 and (rsi-rsi[1])>5 sellRSI = crossunder(rsi,60) and close < TenkanSen and rsi[5]>70 and (rsi[1]-rsi)>5 plotshape(buyRSI,style=shape.triangleup,color=lime,transp=0,location=location.belowbar,size=size.small) sell= sell2 and sell3 or (sell1 and buyCompteur <= 8) or sellRSI buy=buy2 and buy3 or (buy1 and sellCompteur <=8) or buyRSI plotchar(buy,char='B',size=size.small,color=lime) plotchar(sell,char='S',size=size.small,color=orange) //plots plot(KijunSen,title="Kijun-Sen",color=blue,linewidth=4) plot(TenkanSen,title="Tenkan-Sen",color=red,linewidth=2) cloudA = plot(SenkouSpanA,title="cloud A", color=lime,offset=26,linewidth=2) cloudB = plot(SenkouSpanB,title="cloud B", color=orange,offset=26,linewidth=2) plot(ChikouSpan,title="lag span",color=fuchsia, linewidth=2,offset=-26) //plot() fill(cloudA,cloudB,color=SenkouSpanA>SenkouSpanB?lime:orange) //plot(close,color=silver,linewidth=4) // === ALERTS === strategy.entry("L", strategy.long, when=(buy and (time > timestamp(FromYear, FromMonth, FromDay, 00, 00)) and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59)))) strategy.close("L", when=(sell and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59))))