이 전략은 트렌드 방향을 결정하고 트렌드를 확인하기 위해 이동 평균을 사용한다. 트렌드를 따르는 전략에 속한다. AO 지표가 0 수준을 넘어서고 빠른 MA가 느린 MA를 넘어서면 길게, AO가 0 수준을 넘어서고 빠른 MA가 느린 MA를 넘어서면 짧게, 트렌드의 방향성을 활용하여 이익을 얻는다.
이 전략은 주로 AO 지표에 의존하여 단기 트렌드 방향을 결정한다. AO 지표는 5 기간과 34 기간 간 간평균의 차이에 기초하여 계산된다. 이 지표는 모멘텀 지표 범주에 속한다. AO가 긍정적 인 경우 단기 MA가 장기 MA보다 높다는 것을 의미하며, 이는 상승 신호로 해석되어야 한다. AO가 부정적 인 경우 단기 MA가 장기 MA보다 낮다는 것을 의미하며, 이는 하향 신호로 해석되어야 한다.
따라서 AO 지표는 트렌드의 방향을 효과적으로 결정할 수 있습니다. AO가 0 수준을 넘을 때 시장 트렌드가 상승세를 보이며 우리는 길게 가야한다는 신호입니다. AO가 0 수준을 넘을 때 시장 트렌드가 하락세를 보며 우리는 짧게 가야한다는 신호입니다.
또한 이 전략은 20주기 및 200주기 이동 평균도 포함합니다. 이 두 MA의 기울기는 중장기 트렌드의 방향을 나타냅니다. 단기 트렌드 방향에 대한 AO 지표만으로 판단하는 것은 충분하지 않습니다. 중장기 트렌드의 확인도 필요합니다. 따라서 MA 교차 규칙이 추가되었습니다.
빠른 MA가 느린 MA를 넘을 때 중장기 트렌드가 상승세를 타게 되고, AO가 0을 넘어서 상승세를 타게 되면 우리는 장면을 타게 됩니다. 빠른 MA가 느린 MA를 넘을 때 중장기 트렌드가 하향세를 타게 되고, AO가 0을 넘어서 하락세를 타게 되면 우리는 단면을 타게 됩니다.
이 전략은 간단한 트렌드 다음 전략이다. 중장기 MAs에 의해 확인된 단기 트렌드 방향을 결정하기 위해 AO를 사용하는 것은 논리적으로 타당하다. AO와 MAs의 조합은 널리 사용되고 상대적으로 성숙하다. 이 전략은 또한 매우 신뢰할 수 있다. 매개 변수 및 기타 지표의 추가 최적화는 전략 성능을 향상시킬 수 있다.
/*backtest start: 2023-12-12 00:00:00 end: 2023-12-14 20:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // https://www.youtube.com/watch?v=zr3AVwjCtDA //@version=5 strategy(title="Bingx ESTRATEGIA de Trading en 1 minuto ", shorttitle="AO") long = input.bool(true, "long") short = input.bool(true, "short") profit = (input.float(10, "profit") / 100) + 1 stop = (input.float(5, "stop") / 100) + 1 ao = ta.sma(hl2,5) - ta.sma(hl2,34) diff = ao - ao[1] plot(ao, color = diff <= 0 ? #F44336 : #009688, style=plot.style_columns) changeToGreen = ta.crossover(diff, 0) changeToRed = ta.crossunder(diff, 0) alertcondition(changeToGreen, title = "AO color changed to green", message = "Awesome Oscillator's color has changed to green") alertcondition(changeToRed, title = "AO color changed to red", message = "Awesome Oscillator's color has changed to red") ema20 = ta.ema(close, 20) ema200 = ta.ema(close, 200) rsi = ta.rsi(close, 7) plot(rsi) plot(0, color=color.white) var float pentry = 0.0 var float lentry = 0.0 var bool oab = false // oab := ta.crossover(ao, 0) ? true : ta.crossover(0, ao) ? false : oab[1] if long and close > open and ta.crossover(close, ema20) and ema20 > ema200 and ao > 0 and rsi > 50 strategy.entry("long", strategy.long) pentry := close strategy.exit("exit long", "long", limit=pentry * profit, stop=pentry / stop) if short and close < open and ta.crossunder(close, ema20) and ema20 < ema200 and ao < 0 and rsi < 50 strategy.entry("short", strategy.short) lentry := close strategy.exit("exit short", "short", limit=lentry / profit, stop=lentry * stop)