AO指標に基づく傾向 戦略をフォローする

作者: リン・ハーンチャオチャン, 日付: 2023年12月20日 11:59:48
タグ:

img

概要

この戦略は,トレンド方向を決定するために 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を下回るとショートになります.

利点

  1. AO指標を用いて短期トレンドの方向性を正確に決定する
  2. 中期・長期間の傾向を確認するためのMAフィルターを追加し,誤ったブレイクを効果的に回避する
  3. 短期取引に適した迅速な利益

リスク分析

  1. ショートに行くと入場が失敗するリスク.AOが0を下回り,MA信号が下回る前に売れる後も,価格はしばらく上昇し続けることがあります.
  2. ロングに行くとき入場が失敗するリスク.AOが0を超え,MA信号が上昇する前に購入した後,価格はしばらく下落し続けることがあります.
  3. 主要な技術レベルでの AO信号の歪みのリスク

改善 の 方向

  1. より良い設定を見つけるために,異なるMA組み合わせをテストします.例えば,10期および50期MAs
  2. 信号確認のためのRSIのような他の指標を追加
  3. ストップ・ロスの割合を最適化して,より良いリスク/リターン比を得る

結論

これは,戦略のトレンドフォローというシンプルな方法である.中長期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)

もっと