이 전략은 중장기에서 단기간에 수익을 창출하는 것을 목표로 하는 복합 거래 전략입니다. 이 전략은 123 리버서 전략과 Awesome 오시레이터 전략을 통합하여 두 가지의 강점을 활용하고 더 신뢰할 수있는 거래 신호를 얻습니다.
이 전략은 두 부분으로 구성됩니다.
123 역전 전략
이 부분은 울프 젠슨의 책
멋진 오시레이터 전략
이 부분에서는 AWESOME 오시일레이터 인디케이터를 사용하여 AO의 현재 값을 이전 값과 비교합니다. 현재 AO 값이 이전 값보다 높다면, 그것은 긴 길이의 좋은 기회를 나타냅니다. 히스토그램 바 색상은 파란색입니다. 현재 AO 값이 이전 값보다 높지 않으면, 그것은 짧은 길이의 좋은 기회를 나타냅니다. 바 색상은 빨간색입니다.
결합 신호는 다음과 같이 생성됩니다. 123 역전 및 Awesome 오시레이터 전략이 모두 구매 신호를 제공한다면 긴 전략을 채택하십시오. 두 가지 모두 판매 신호를 제공한다면 짧은 전략을 채택하십시오.
이 복합 전략의 가장 큰 장점은 두 가지 다른 유형의 전략의 강점을 결합하여 거래 신호의 신뢰성과 안정성을 향상시키는 것입니다.
특히, 123 역전 전략은 중장기에서 단기간에 더 적용되며 역전 기회를 포착 할 수 있습니다. 멋진 오시일레이터 전략은 단기 트렌드에 더 집중하고 더 민감합니다. 두 전략은 서로를 보완하고 잘못된 신호를 필터링하고 다른 단계에서 더 나은 진입 기회를 포착하는 데 도움이됩니다.
또한 이 전략은 K선 정보와 오시레이터 지표를 포괄적으로 활용하여 보다 종합적인 접근을 위해 가격 행동 자체와 부피 가격 관계를 모두 고려합니다.
이 전략의 가장 큰 위험은 여러 전략을 결합하면 개별적인 위험도 증가한다는 것입니다.
123 리버스 전략 자체는 범위에 묶여있는 시장에 갇히는 위험을 완전히 피할 수 없습니다. 멋진 오시일레이터 전략은 또한 단기 시장 변동에 민감합니다. 두 전략의 잘못된 신호는 증폭됩니다.
또한 매개 변수 설정은 전략 성능에도 영향을 미칩니다. 최적의 매개 변수를 찾기 위해 광범위한 테스트와 최적화가 필요합니다.
리스크를 줄이기 위해, 개별 트레이드에서 하락률을 제한하기 위해 포지션을 적절히 사이즈하십시오. 또한 더 많은 손실을 방지하기 위해 스톱 로스 오더를 설정하십시오.
이 전략은 다음 측면에서 더 이상 최적화 될 수 있습니다.
최적의 매개 변수를 찾기 위해 매개 변수를 테스트하고 최적화합니다.
신호 품질을 더 향상시키기 위해 다른 표시기 또는 필터를 추가하십시오.
여러 시간 프레임 접근을 위해 다양한 시간 프레임에 최적화하십시오.
더 나은 위험 통제를 위해 동적 중지 추가.
실제 트랜잭션 비용을 고려하고 진입/출출 기준을 정의합니다.
역동 트렌드 거래를 피하기 위해 주요 트렌드 방향을 고려하십시오.
이 전략은 123 리버서스 및 멋진 오시일레이터 전략의 강점을 결합하여 시장 변화에 대한 유연성과 민감성을 유지하면서 신호 신뢰성을 향상시킵니다. 라이브 거래에서 안정적인 수익을 위해 추가 매개 변수 최적화 및 엄격한 위험 통제가 필요합니다. 전반적으로이 전략은 중장기 및 단기 거래에 좋은 잠재력을 가지고 있으며 연구 및 적용 가치가 있습니다.
/*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 09/08/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 plots the oscillator as a histogram where blue denotes // periods suited for buying and red . for selling. If the current value // of AO (Awesome Oscillator) is above previous, the period is considered // suited for buying and the period is marked blue. If the AO value is not // above previous, the period is considered suited for selling and the // indicator marks it as red. // // 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 BWAC(nLengthSlow,nLengthFast) => pos = 0.0 xSMA1_hl2 = sma(hl2, nLengthFast) xSMA2_hl2 = sma(hl2, nLengthSlow) xSMA1_SMA2 = xSMA1_hl2 - xSMA2_hl2 xSMA_hl2 = sma(xSMA1_SMA2, nLengthFast) nRes = xSMA1_SMA2 - xSMA_hl2 pos:= iff(nRes > nRes[1], 1, iff(nRes < nRes[1], -1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Reversal & Awesome Oscillator (AC)", 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) //------------------------- line2 = input(true, "---- Awesome Oscillator (AC) ----") nLengthSlow = input(34, minval=1, title="Length Slow") nLengthFast = input(5, minval=1, title="Length Fast") reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posBWAC = BWAC(nLengthSlow,nLengthFast) pos = iff(posReversal123 == 1 and posBWAC == 1 , 1, iff(posReversal123 == -1 and posBWAC == -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 )