
이 전략은 ICHIMOKU 클라우드 그래프 형태 지표와 STOCH 무작위 지표에 기반하여 트렌드를 판단하고 추적한다. 이 전략은 ?? 클라우드 그래프 Stoch 트렌드 추적 전략 ?? 이라고 한다.
이 전략은 주로 ICHIMOKU 클라우드 그래프와 STOCH 지표를 통해 현재 트렌드 방향을 판단하고, 과잉 구매 과잉 판매 상황을 가한다.
변환 라인이 전환 라인에 베이스 라인을 통과하고 스토흐 지표가 초과 지역에서 반발 할 때, 낙관적 인 방향으로 전략이 취됩니다. 변환 라인이 기본 라인을 통과하고 스토흐 지표가 초과 지역에서 다시 떨어질 때, 낙관적 인 방향으로 전략이 취됩니다.
코드에서, Conversion Line 변환선은 K선 근처의 N1의 최고 가격과 최저 가격의 평균값으로 정의되고, Base Line 기준선은 K선 근처의 N2의 최고 가격과 최저 가격의 평균값으로 정의된다. 변환선은 기준선을 통과할 때 포지션 신호를 발생시킨다.
스토치 지표에서는 오버 바이 라인과 오버 소이 라인 약점을 정의하고 평형 변수 K와 D를 정의한다. 스토치는 오버 소이 지역에서 반발할 때 부진 신호를 발생시키고, 오버 소이 지역에서 반발할 때 부진 신호를 발생시킨다.
이 전략은 두 가지 지표를 통합하여 트렌드 방향에 대한 판단을 수행합니다.
이 전략은 그래픽 형태 지표와 오버 바이 오버 셀 지표를 결합하여 트렌드 방향을 효과적으로 판단할 수 있다.
단일 트렌드 판단 지표를 사용하는 것과 비교하여, 이 전략은 종합적으로 트렌드 및 오버오프 상황을 고려하여 진입 시기를 더 정확하게 판단할 수 있다.
ICHIMOKU 클라우드 그래프는 중장선 트렌드를 식별할 수 있고, 스토흐 지표는 단기간에 과매매되는 것을 발견할 수 있으며, 둘은 상호 보완하여 체계적인 판단을 형성한다.
이 전략에는 다음과 같은 위험들이 있습니다.
급격한 검은 천둥 사태가 발생했을 때, 지표가 작동하지 않는 시스템적 위험.
이 경우, 지연이 존재하고, 시장의 일부를 놓칠 수도 있고, 역으로 포지션을 열 수도 있습니다.
다인자 통합 판단에는 어느 정도 주관성이 존재하며, 파라미터를 적절히 설정하지 않으면 오류가 발생할 수 있다.
거래가 자주되면 거래 비용이 수익에 영향을 미칩니다.
대응 최적화 조치:
뉴스 사건 판단과 함께 주요 정책 사건이 발생했을 때 맹목적인 거래를 피하십시오.
적절히 축소된 주기 변수, 미지수 판단의 확률을 낮추는 것.
역검사 최적화 매개 변수, 매개 변수 설정의 과학성을 높이기
거래 빈도를 낮추기 위해 스톱 스톱 손실을 적절히 늘리십시오.
이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.
ICHIMOKU 전환선과 기준선의 주기 변수를 최적화하여 다른 시장의 특성에 더 적합하게 만듭니다.
스토흐 지표의 K, D 평형 변수, 그리고 오버 바이 오버 세 값 변수를 최적화한다.
다른 지표 판단을 늘리고, 다중 인자 모델을 형성하고, 전략의 체계성을 향상시킨다.
스톱포드 스톱로스를 최적화하여 거래 빈도를 낮추는 동시에 수익을 보장합니다.
급격한 사건에 대한 판단 모듈을 추가하여 중대한 사건이 발생했을 때 무효가 되는 것을 방지한다.
이 전략은 ICHIMOKU 클라우드 그래프와 Stoch 지표를 기반으로 트렌드 방향과 과매매 상황을 종합적으로 판단하여 트렌드 상황을 효과적으로 추적할 수 있습니다. 그래픽 형태와 정량 지표를 고려하여 전략이 더 체계적입니다. 향후에는 최적화 매개 변수, 다른 지표 및 갑작스러운 사건 판단 모듈을 추가하여 전략을 더욱 최적화 할 수 있습니다.
/*backtest
start: 2023-10-15 00:00:00
end: 2023-11-14 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("ICHI + STOCH V1", overlay=true)
length = input.int(20, minval=1)
smoothK = input(5)
smoothD = input(3)
OverBought = input(25)
OverSold = input(65)
Profit = input(1800)
Stop = input(1200)
k = ta.sma(ta.stoch(close, high, low, length), smoothK)
d = ta.sma(k, smoothD)
co = ta.crossover(k,d)
cu = ta.crossunder(k,d)
conversionPeriods = input.int(9, minval=1, title="Conversion Line Length")
basePeriods = input.int(26, minval=1, title="Base Line Length")
laggingSpan2Periods = input.int(52, minval=1, title="Leading Span B Length")
displacement = input.int(1, minval=1, title="Lagging Span")
conversionLine = math.avg(ta.lowest(conversionPeriods), ta.highest(conversionPeriods))
baseLine = math.avg(ta.lowest(basePeriods), ta.highest(basePeriods))
leadLine1 = math.avg(conversionLine, baseLine)
leadLine2 = math.avg(ta.lowest(laggingSpan2Periods), ta.highest(laggingSpan2Periods))
TREND = ta.ema(math.avg(leadLine1,leadLine2),displacement)
//plot(conversionLine, color=#2962FF, title="Conversion Line")
//plot(baseLine, color=#B71C1C, title="Base Line")
//plot(close, offset = -displacement + 1, color=#43A047, title="Lagging Span")
plot(TREND, color=#2962FF, title="TREND")
p1 = plot(leadLine1,style=plot.style_line, offset = displacement - 1, color=#A5D6A7,
title="Leading Span A")
p2 = plot(leadLine2,style=plot.style_line, offset = displacement - 1, color=#EF9A9A,
title="Leading Span B")
fill(p1, p2, color = leadLine1 > leadLine2 ? color.rgb(67, 160, 71, 90) : color.rgb(244, 67, 54, 90))
close_price = ta.sma(close,1)
pc = plot(close_price,style=plot.style_line, color=#2a0ab9,
title="Price Close")
if (not na(k) and not na(d))
if (co and k < OverSold)and(close_price > TREND)
strategy.entry("BUY order", strategy.long, comment="BUY order")
strategy.exit("exitBUY", "BUY order", profit = Profit, loss = Stop)
if (cu and k > OverBought)and(close_price < TREND)
strategy.entry("SELL order", strategy.short, comment="SELL order")
strategy.exit("exitSELL", "SELL order", profit = Profit, loss = Stop)
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)