この戦略は,トレンド方向を決定するために Awesome Oscillator (AO) インジケーターとトレンドを確認するための移動平均を使用する.これはトレンドフォロー戦略に属している.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期間の移動平均値も含まれています.この2つのMAの傾斜は中長期トレンドの方向を表しています.短期トレンドの方向性に対するAO指標のみを判断することは不十分であり,中長期トレンドからの確認も必要です.したがってMAクロスオーバー規則を追加しました.
急速MAが緩やかなMAを超えると,中長期トレンドは上昇傾向になり,AOが上昇傾向を走るために0を超えると,ロングになります.高速MAが緩やかなMAを下回ると,中長期トレンドは下落傾向を走るためにAOが0を下回るとショートになります.
これは,戦略のトレンドフォローというシンプルな方法である.中長期MAsによって確認された短期トレンド方向を決定するためにAOを使用することは論理的に合理的である.AOとMAの組み合わせは広く使用され,比較的成熟している.この戦略も非常に信頼性がある.パラメータやその他の指標のさらなる最適化は戦略のパフォーマンスを向上させることができる.
/*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)