ダブルEMAシステムに基づくスパン取引戦略


作成日: 2023-09-20 11:39:40 最終変更日: 2023-09-20 11:39:40
コピー: 0 クリック数: 692
1
フォロー
1617
フォロワー

概要

この戦略は,2つのEMA指標を素早くゆっくり計算して,交差状況に応じて買入と売却のシグナルを生成することで,典型的なトレンド追跡戦略に属します. 速線でスローラインを横切るときは多行,下行平行を多頭; 速線の下行スローラインを横切るときは空行,上行平行空頭。

戦略原則

戦略は,それぞれ13と50の周期で,速やかにゆっくりと2つのEMA平均線を計算します. 速線が下から上へと遅線を突破すると買い込み信号が作られ,速線が上から下へと落ちて遅線を突破すると売り込み信号が作られ,空になります.

オーバー後,快線が再び遅線を突破すると平多頭シグナルが生成される.空き後,快線が再び遅線を突破すると平空頭シグナルが生成される.

優位分析

この戦略は,一般的な二重EMAシステムを採用し,異なる期限EMAの交差状況に基づいて市場トレンドと入場ポイントを判断する.二重EMAの配合の使用は,ノイズを効果的にフィルタリングして,トレンドを識別することができます.

操作はシンプルで直感的で,自動化が容易である.価格情報のみで実現し,他の複雑な要因を考慮する必要はありません.異なる市場環境に適応するためにEMAサイクルを自由に調整できます.

リスク分析

双EMA交差システムは,曲折変化のトレンド識別効果は一般的である.振動区間市場では,EMA交差信号は頻繁で,閉じ込めやすい.価格要因のみを考慮し,他の要素を総合的に考慮しない.

適当にEMAの週間の間隔を拡大して,交差の頻度を減らすことができる.また,取引量や変動率などの指標を補助判断のために追加することもできる.さらに,ストップ・ローズ戦略を最適化することで,被套のリスクを低減することもできる.

最適化の方向

  1. テストはEMA周期パラメータを最適化して,最適なパラメータを見つけます.

  2. 増量能指数や波動率指数などの判断規則

  3. 突破シグナルなどにより厳しい入場条件を設定する.

  4. 機械学習を用いて価格の傾向を予測し,EMAが信号の質を判断する.

  5. 移動ストップ,平均ストップなどのストップ戦略の最適化

  6. ポジションを動的に調整し,資金管理を最適化する.

要約する

この戦略は,典型的な二重EMA交差システムに属し,簡単な指標の組み合わせによってトレンドを判断する. 優点は,実現しやすいことですが,誤信号を発生させる可能性もある. より多くの指標とパラメータの最適化を組み合わせると,戦略の安定性を高めることができる. 全体的に,簡潔なトレンド追跡戦略のテンプレートを提供する.

ストラテジーソースコード
/*backtest
start: 2023-09-12 00:00:00
end: 2023-09-12 22:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © himanshumahalle

//@version=4
strategy("CROSS_ALGO SYSTEM")


// INPUT CONTROLS

lengthSEMA= input(title="LSEMA", type = input.integer, defval=13,minval=1,maxval=100,step=1)
lengthLEMA= input(title="LLEMA", type = input.integer, defval=50,minval=1,maxval=100,step=1)

//INDICATOR

SEMA= ema(close,lengthSEMA)
LEMA= ema(close,lengthLEMA)

// BUY AND SELL

buy = crossover(SEMA,LEMA)
sell = crossunder(SEMA,LEMA)

//EXITS

buyexit = crossunder(SEMA,LEMA)
sellexit = crossover(SEMA,LEMA)


//EXECUTION

strategy.entry("long",strategy.long,when=buy,comment = "Buy")
strategy.entry("short",strategy.short,when=sell,comment = "Sell")

strategy.close("long",when= buyexit , comment= "Sell")
strategy.close("short",when= sellexit , comment= "Buy")