AOオシレーターに基づくEMAクロスオーバー日中取引戦略

作者: リン・ハーンチャオチャン, 日付: 2023年12月25日 10:53:48
タグ:

img

概要

これは,取引信号を生成するために,AOオシレーターとEMAクロスオーバーを使用する日中取引戦略である.主なアイデアは,AOが中期EMA線を高速に横切ると同時にゼロラインを横切ったときに取引を行うことである.

戦略の論理

この戦略は主に入国と出国に関する2つの指標に基づいています.

  1. AOオシレーター:現在のトレンド方向を測定するために5期と34期HL2平均の違いを測定する.ポジティブなAOは上昇傾向を表し,マイナスAOは下落傾向を示す.

  2. EMAクロスオーバー: 戦略は,短期トレンドのために3期間のEMAと,中期トレンド方向のために20期間のEMAを使用する. 3EMAが20EMAを通過して上昇する黄金色のクロスは購入信号を生成し, 3EMAが20EMAを通過してダウンする死亡クロスは販売信号を生成する.

取引は,AOがEMAクロスオーバーと同時にゼロラインを横切ったときにのみ行われます.これは,AOが振動しているときに間違った信号を回避します.すべてのポジションを平坦化することによって,ロンドンセッションが終了した後,出口が起こります.

利点分析

この戦略の主な利点は以下の通りです.

  1. AOオシレーターは,信頼性の高い信号の正確な傾向方向を保証します.
  2. 二重インジケータコンボは,高信頼性の信号のノイズをフィルターします.
  3. 主要なセッションでの取引のみは,一日のリスクを回避します.
  4. シンプルで明快なロジックは理解し,実行しやすくします
  5. 安定したパラメータで最適化や曲線調整は必要ありません

リスク分析

留意すべきリスクは以下のとおりです.

  1. ブラック・スワン・イベントでは,タイムリーストップ・ロスのない長期損失のリスク
  2. 偽のEMAクロスオーバーから発生するウィプソー
  3. 変化する市場サイクルに 固定パラメータから適応性が欠けている

ストップ損失,変化するサイクルに調整された適応パラメータなどによってリスクは軽減できる.

オプティマイゼーションの方向性

パラメータチューニングを中心に最適化しています.

  1. EMA期間を調整し,短期間コンボまたは信号生成における追加EMAをテストする.
  2. オシレーターへの影響の評価のために AO パラメータを調整する.
  3. RSIbord のような補完指標を追加し,過買い/過売り条件を回避する.
  4. 異なる地域やより長い期間をテストするために取引セッションのタイミングを調整します.

パラメータの調整や追加のフィルターは,戦略の強固性と効率性を高めることができます.

結論

概要すると,このイントラデイ・トレーディング戦術は,AOトレンド・ゲージとEMA・クロスオーバーを組み合わせてシンプルで実用的なアプローチを策定する.実装が簡単で適応性のあるパラメータが欠けている明確なシグナルを持っています.さらなるテストと改良により,その安定性と異なる市場景観との連携が向上します.全体として,小売イントラデイトレーダーに優れた選択肢を提供します.


/*backtest
start: 2022-12-18 00:00:00
end: 2023-12-24 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//@author SoftKill21

strategy(title="MA cross + AO", shorttitle="MA_AO")
ao = sma(hl2,5) - sma(hl2,34)

len = input(3, minval=1, title="Length")
src = input(close, title="Source")
out = ema(src, len)

len1 = input(20, minval=1, title="Length")
src1 = input(close, title="Source")
out1 = sma(src1, len1)

timeinrange(res, sess) => time(res, sess) != 0
londopen = timeinrange(timeframe.period, "0300-1100") 
nyopen = timeinrange(timeframe.period, "0800-1600") 

longC = crossover(out,out1) and ao>0 and londopen
shortC = crossunder(out,out1) and ao<0 and londopen

invert = input(title="Reverse position ?", type=input.bool, defval=false)

if(invert==false)
    strategy.entry("LONG",1,when=longC)
    strategy.entry("SHORT",0,when=shortC)



if(invert==true)
    strategy.entry("short",0,when=longC)
    strategy.entry("long",1,when=shortC)
    
strategy.close_all(when= not (londopen))




もっと