이중 이동 평균 반전 거래 전략은 볼링거 밴드 반전 거래 전략과 이중 기하급수적 이동 평균 거래 전략을 결합하여 포괄적인 신호 판단 거래 전략을 설계합니다. 주식, 외화 및 암호화폐와 같은 시장에서 사용할 수 있습니다.
이 전략은 두 부분으로 구성됩니다.
볼링거 밴드 반전 거래 전략
볼링거 밴드 지표의 두 줄 - %K 라인 및 %D 라인을 사용하십시오. 닫기 가격이 전날의 닫기보다 낮고 %K 라인이 %D 라인의 위에 있는 2 일 연속으로 닫을 때 장거리 이동; 닫기 가격이 전날의 닫기보다 높고 %K 라인이 %D 라인의 아래에 있는 2 일 연속으로 닫을 때 단기 이동.
이중 지수적 이동 평균 전략
20일 및 20일*2 이중 지수 이동 평균을 계산합니다. 가격이 이중 이동 평균을 넘거나 밑을 넘을 때 거래 신호가 생성됩니다.
결합된 신호 판단 규칙: 두 전략의 거래 신호가 일치할 때만 실제 거래 신호가 생성됩니다.
이 결합 전략의 가장 큰 장점은 높은 신뢰성 및 적은 잘못된 신호입니다. 왜냐하면 두 가지 다른 유형의 전략의 신호가 동시에 발사되어야하기 때문에 단일 전략에서 나타날 수있는 잘못된 신호의 일부를 필터링합니다.
또한, 역전과 트렌드 전략을 결합함으로써, 단기적 역전과 중기적 트렌드를 모두 파악할 수 있습니다.
이 전략의 주요 위험은 시장이 장기적으로 변동할 때 두 전략이 일관된 신호를 생성하지 못할 수 있으며 이로 인해 시장 조건이 유효하지 않다는 것입니다. 이 시점에서 거래자는이 전략의 사용을 중단하고 명확한 추세가 형성 될 때까지 기다려야합니다.
또한, 중장기 지표로서, 이중 이동 평균은 단기 반전이 급격하게 발생하면 실패 할 수 있습니다. 이것은 거래자가 더 많은 지표로 더 넓은 시장 추세를 판단해야합니다.
전략은 다음과 같은 방법으로 최적화 될 수 있습니다.
더 많은 매개 변수를 추가로 중지 손실 가격, 트레일링 중지 손실 가격 범위 등 전략을 더 제어 할 수 있습니다.
더 많은 지표를 추가하여 여러 필터 기준을 형성하고 더 시끄러운 거래를 제거하십시오. 예를 들어 MACD, KD 및 기타 지표와 결합하십시오.
가장 좋은 매개 변수 조합을 찾기 위해 볼링거 기간, 이동 평균 기간 등 지표 매개 변수를 최적화하십시오.
이 전략의 효과를 각각 다른 제품 (주식, 외환, 암호화폐 등) 에서 테스트하고 가장 적합한 제품을 선택하십시오.
이중 이동 평균 반전 전략은 반전 및 트렌드 전략을 결합하여 비교적 신뢰할 수 있는 복합 거래 신호를 생성합니다. 증권 가격의 단기 반전 및 중기 트렌드에 관심이있는 거래자에게 적합합니다. 그러나 전략이 장기 범위 시장에서 실패 할 수 있습니다. 매개 변수를 최적화하고 더 많은 지표를 추가함으로써이 전략의 실용성이 더욱 향상 될 수 있습니다.
/*backtest start: 2023-01-08 00:00:00 end: 2024-01-14 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 12/04/2019 // This is combo strategies for get // a cumulative signal. Result signal will return 1 if two strategies // is long, -1 if all strategies is short and 0 if signals of strategies is not equal. // // 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. // // Secon strategy // This indicator plots 2/20 exponential moving average. For the Mov // Avg X 2/20 Indicator, the EMA bar will be painted when the Alert criteria is met. // Please, use it only for learning or paper trading. Do not for real trading. // // 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 EMA2_20(MA_Length, MA_xPrice) => xXA = ema(MA_xPrice, MA_Length) nHH = max(high, high[1]) nLL = min(low, low[1]) nXS = iff((nLL > xXA)or(nHH < xXA), nLL, nHH) pos = 0.0 pos := iff(nXS > close[1] , -1, iff(nXS < close[1] , 1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Reversal and 2/20 EMA", shorttitle="Combo Backtest", overlay = true) Length = input(14, minval=1) KSmoothing = input(1, minval=1) DLength = input(3, minval=1) Level = input(50, minval=1) MA_Length = input(20, minval=1) reverse = input(false, title="Trade reverse") MA_xPrice = close posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posEMA2_20 = EMA2_20(MA_Length, MA_xPrice) pos = iff(posReversal123 == 1 and posEMA2_20 == 1 , 1, iff(posReversal123 == -1 and posEMA2_20 == -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 ? red: possig == 1 ? green : blue )