이 전략은 더 강력하고 안정적인 거래 전략을 형성하기 위해 이중 오스실레이션 역전 전략과 신호-소음 비율 최적화 전략을 결합합니다. 전략은 트렌드 역전 지점에서 더 정확한 거래 신호를 생성하는 것을 목표로합니다.
듀얼 오스실레이션 역전 전략은 지난 14일 동안의 빠르고 느린 K 값을 계산하여 2일 연속 거래일에 반전이 있는지 여부를 결정합니다. 빠른 K가 50보다 낮을 때 반전이 발생하면 구매 신호입니다. 빠른 K가 50보다 높으면 판매 신호입니다.
신호-소음 비율 최적화 전략은 지난 21 일 동안의 신호-소음 비율을 계산하고 29 일 간 간단한 이동 평균으로 평평화합니다. 신호-소음 비율이 이동 평균 이상으로 넘으면 판매 신호입니다. 아래로 넘으면 구매 신호입니다.
마지막으로, 이 전략은 두 전략이 동일한 신호를 발산할 때만 구매 또는 판매 거래를 시작합니다.
여러 전략을 결합하면 더 정확한 거래 신호를 생성하고 하나의 전략에서 잘못된 신호를 피할 수 있습니다.
이중 오스실레이션 역전 전략은 트렌드 역전 지점을 잡습니다. 신호-음향 비율 최적화는 잘못된 신호를 필터링합니다. 함께 작동하면 역전에서 정확하게 거래 할 수 있습니다.
최적화된 매개 변수들, 예를 들어 14일간의 빠른/슬로우 스토카스틱과 21일간의 신호-소음 기간은 너무 많은 소음 없이 최근 트렌드를 포착합니다.
이중 확인 신호는 거래 위험을 크게 줄이고 불필요한 손실을 피합니다.
반전 신호는 절대적 바닥 또는 최고치를 지연하고 놓칠 수 있습니다. 지연을 단축하기 위해 매개 변수를 조정할 수 있습니다.
이중 신호 확인은 일부 거래 기회를 놓칠 수 있습니다. 확인 조건은 완화 될 수 있지만 또한 위험을 증가시킬 수 있습니다.
신호 대 소음 비율 매개 변수는 최적화가 필요합니다. 부적절한 기간은 신호가 누락되거나 잘못된 신호를 일으킬 수 있습니다.
여러 지표를 모니터링하면 복잡성이 증가합니다. 코드 최적화와 컴퓨팅 자원은 고려해야합니다.
MACD, RSI 등과 같은 더 나은 콤보 신호를 찾기 위해 더 많은 지표 조합을 테스트하십시오.
더 정확하고 신속한 신호를 위해 역전 전략의 매개 변수를 최적화합니다.
최적의 균형을 찾기 위해 신호와 소음 비율 기간을 최적화하십시오.
단일 트레이드에 대한 잠재적 손실을 제어하기 위해 스톱 로스 전략을 추가합니다.
더 나은 적응력을 위해 매개 변수를 자동으로 최적화하는 기계 학습 방법을 고려하십시오.
이 전략은 트렌드 반전 지점에서 안정적인 신호를 제공하기 위해 이중 오스실레이션 반전 및 신호-소음 비율 전략을 결합합니다. 최적화된 매개 변수는 잘못된 신호를 크게 줄이고 이중 확인은 거래 위험을 감소시킵니다. 지표 매개 변수, 스톱 손실과 같은 추가 최적화는 성능을 향상시킬 수 있습니다. 전반적으로 이것은 실용적인 거래 가치를 가진 안정적인 전략입니다.
/*backtest start: 2023-10-01 00:00:00 end: 2023-10-31 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 196/01/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 // The signal-to-noise (S/N) ratio. // And Simple Moving Average. // // 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 SignalToNoise(length) => StN = 0.0 for i = 1 to length-1 StN := StN + (1/close[i])/length StN := -10*log(StN) StN(length,Smooth) => pos = 0.0 StN = SignalToNoise(length) SMAStN = sma(StN, Smooth) pos := iff(SMAStN[0] > StN[0] , -1, iff(SMAStN[0] < StN[0], 1, 0)) pos strategy(title="Combo Backtest 123 Reversal & Signal To Noise", shorttitle="Combo", overlay = true) Length = input(14, minval=1) KSmoothing = input(1, minval=1) DLength = input(3, minval=1) Level = input(50, minval=1) //------------------------- lengthStN = input(title="Days", type=input.integer, defval=21, minval=2) SmoothStN = input(title="Smooth", type=input.integer, defval=29, minval=2) reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posStN = StN(lengthStN,SmoothStN) pos = iff(posReversal123 == 1 and posStN == 1 , 1, iff(posReversal123 == -1 and posStN == -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 )