KST 지표를 사용하는 트렌드 다음 전략
이 문서에서는 KST 지표를 사용하여 양적 추세에 따른 전략을 자세히 설명합니다. KST 라인과 신호 라인의 교차점을 계산하여 거래 신호를 생성합니다.
I. 전략 논리
신호 생성의 주요 단계는 다음과 같습니다.
서로 다른 기간의 여러 ROC 지표의 값을 계산합니다.
ROC 값에 이동 평균을 개별적으로 적용하고 KST 직선을 도출하기 위해 합을 취합니다.
신호선을 얻기 위해 이동평균을 사용하여 KST선을 더 부드럽게 합니다.
구매 신호는 KST 라인이 신호 라인의 위를 넘을 때 생성되며, 판매 신호는 그 반대의 경우입니다.
적절한 위치 크기를 선택할 수 있습니다.
여러 ROC 값의 합을 통해 KST 라인은 단기 및 장기 가격 추세를 반영합니다. 신호 라인과의 교차는 트렌드 방향을 결정할 수 있습니다.
II. 전략의 장점
가장 큰 장점은 종합적인 지표 계산으로 시간 프레임에 걸쳐 트렌드 정보를 통합합니다.
또 다른 장점은 명확한 신호선을 가진 간단하고 직관적인 표시기 사용입니다.
마지막으로, 조정 가능한 위치 크기는 전체 위험 노출을 제어하는 데 도움이됩니다.
III. 잠재적인 약점
그러나 몇 가지 문제가 있습니다.
첫째, 표시자 자체는 가격 변화에 반응하는 데 약간의 지연을 가지고 있습니다.
둘째, KST에만 의존하는 것은 KST가 역전되기 쉽도록 만듭니다.
또한, 과도한 부착을 피하기 위해 광범위한 최적화가 필요합니다.
IV. 요약
요약적으로,이 기사는 KST 크로스오버 신호를 사용하여 양적 트렌드를 따르는 전략을 설명했습니다. 그것은 무역 신호를위한 지표를 통해 가격 추세를 반영하지만 지표 지연 및 적절한 매개 변수 조정을 관리해야합니다. 전반적으로 간단한 트렌드 추적 접근 방식을 제공합니다.
/*backtest start: 2023-08-15 00:00:00 end: 2023-09-14 00:00:00 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 // strategy(title="KST Alert", shorttitle="KST Alert", format=format.price, precision=4) roclen1 = input.int(10, minval=1, title = "ROC Length #1") roclen2 = input.int(15, minval=1, title = "ROC Length #2") roclen3 = input.int(20, minval=1, title = "ROC Length #3") roclen4 = input.int(30, minval=1, title = "ROC Length #4") smalen1 = input.int(10, minval=1, title = "SMA Length #1") smalen2 = input.int(10, minval=1, title = "SMA Length #2") smalen3 = input.int(10, minval=1, title = "SMA Length #3") smalen4 = input.int(15, minval=1, title = "SMA Length #4") siglen = input.int(9, minval=1, title = "Signal Line Length") smaroc(roclen, smalen) => ta.sma(ta.roc(close, roclen), smalen) kst = smaroc(roclen1, smalen1) + 2 * smaroc(roclen2, smalen2) + 3 * smaroc(roclen3, smalen3) + 4 * smaroc(roclen4, smalen4) sig = ta.sma(kst, siglen) plot(kst, color=#009688, title="KST") plot(sig, color=#F44336, title="Signal") hline(0, title="Zero", color = #787B86) eL1=ta.crossover(kst,sig) eS1=ta.crossunder(kst,sig) ch = 0 t = year(time('D')) ch := ta.change(t) != 0 ? 1 : 0 T1 = time(timeframe.period, "0915-1520") session_open = na(t) ? false : true newDay = ta.change(time("15m")) != 0 strategy.entry("Long1", strategy.long, when = eL1) strategy.entry("Short1", strategy.short, when = eS1)