이 전략은 울프 젠센이 그의 책에서 제안 한 123 역전 거래 전략을 마틴 프링이 제안 한 이동 평균 컨버전스 디버전스 오시레이터 (KST) 와 결합하여 역전 패턴과 트렌드 오시레이션 지표를 사용하여 거래 신호를 생성하는 양적 전략을 구축합니다.
이 전략의 핵심 논리는 지난 2일 동안 주식의 폐쇄 가격이 역전되었는지 여부를 모니터링하는 것입니다. 특히:
지난 2 일 동안의 종료 가격은 하락 추세에 있다면, 즉, 전날의 종료 가격은 전날보다 높고, 오늘의 종료 가격은 전날의 종료 가격보다 높은 전날의 종료 가격에서 상승률을 올리는 경우, 그것은 바닥 반전으로 판단 될 수 있으며 구매 신호가 생성됩니다.
반대로, 지난 2 일 동안의 종료 가격은 상승 추세에 있다면, 즉, 전날의 종료 가격은 전날보다 낮고, 오늘날의 종료 가격은 전날의 종료 가격보다 낮아지면, 그것은 최상위 반전으로 판단 될 수 있으며 판매 신호가 생성됩니다.
이 전략의 부분은 또한 역행이 아닌 거래 신호를 필터링하기 위해 너무 많이 구매되거나 너무 많이 팔렸는지 결정하기 위해 스토카스틱 지표를 결합합니다.
KST 지표에서 ROC는 가격 변화율을 나타내고, 각각 6일, 10일, 15일 및 20일 ROC를 계산하고, 다른 매개 변수 이동 평균 평형화 후 가중 합을 수행하여 KST 지표를 구성합니다.
빠른 선이 느린 선 위에 넘어가면 상승선으로 판단되며 빠른 선이 느린 선 아래에 넘어가면 하락선으로 판단됩니다. 여기서 빠른 선은 원래 KST 값이고 느린 선은 KST의 이동 평균입니다.
이 전략은 KST>0을 이용해서 상승세를 판단하고 KST<0을 이용해서 하락세를 판단합니다.
123 회전 전략의 판단 신호와 KST 지표가 결합됩니다.
이 전략은 두 가지 다른 유형의 기술적 지표를 포괄적으로 사용하고 있으며, 역전 패턴과 지표 판단을 사용하여 더 진보 된 양적 거래 전략을 설계하기 위해 신호 강점을 결합한다는 것을 알 수 있습니다.
매개 변수 조정, 반전 논리의 최적화, 스톱 로스 메커니즘 도입과 같은 방법은 위험을 제어하는 데 사용될 수 있습니다.
이 전략은 여러 가지 유형의 기술적 지표를 통합합니다. 이중 확인 및 조합 최적화를 통해 과학적으로 비교적 강력한 양적 거래 전략을 설계하고 전략 조합의 모델입니다. 라이브 거래에서의 성능은 아직 검증되지 않았지만 이론적 개념화 관점에서 여러 시나리오를 포괄적으로 고려하고 단일 지표의 한계를 해결하며 추가 연구 및 응용 가치가 있습니다.
/*backtest start: 2023-10-22 00:00:00 end: 2023-11-21 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 23/03/2021 // This is combo strategies for get a cumulative signal. // // First strategy // This System was created from the Book "How I Tripled My Money In The // Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies. // The strategy buys at market, if close price is higher than the previous close // during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. // The strategy sells at market, if close price is lower than the previous close price // during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50. // // Second strategy // This indicator really is the KST indicator presented by Martin Pring. // the KST indicator is a weighted summed rate of change oscillator that // is designed to identify meaningful turns. Various smoothed rate of change // indicators can be combined to form different measurements of cycles. // // WARNING: // - For purpose educate only // - This script to change bars colors. //////////////////////////////////////////////////////////// Reversal123(Length, KSmoothing, DLength, Level) => vFast = sma(stoch(close, high, low, Length), KSmoothing) vSlow = sma(vFast, DLength) pos = 0.0 pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1, iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) pos MROC() => pos = 0.0 xROC6 = sma(roc(close, 6), 10) xROC10 = sma(roc(close, 10), 10) xROC15 = sma(roc(close, 15), 9) xROC20 = sma(roc(close, 20), 15) nRes = xROC6 + (2 * xROC10) + (3 * xROC15) + (4 * xROC20) pos := iff(nRes > 0, 1, iff(nRes < 0, -1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Reversal & MovROC (KST indicator)", shorttitle="Combo", overlay = true) line1 = input(true, "---- 123 Reversal ----") Length = input(14, minval=1) KSmoothing = input(1, minval=1) DLength = input(3, minval=1) Level = input(50, minval=1) //------------------------- reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posMROC = MROC() pos = iff(posReversal123 == 1 and posMROC == 1 , 1, iff(posReversal123 == -1 and posMROC == -1, -1, 0)) possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1 , 1, pos)) if (possig == 1 ) strategy.entry("Long", strategy.long) if (possig == -1 ) strategy.entry("Short", strategy.short) if (possig == 0) strategy.close_all() barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )