双 EMA システムに基づくクロスオーバー取引戦略

作者: リン・ハーンチャオチャン, 日時: 2023-09-20 11:39:40
タグ:

概要

この戦略は,1つの速いEMA指標と1つの遅いEMA指標を計算し,そのクロスオーバー状況に基づいて,典型的なトレンドフォロー戦略に属する購入・販売信号を生成する.速い線がスローラインを越えると長行し,速い線がスローラインを越えると長行が平坦化する.逆に,速い線がスローラインを越えると短行し,速い線がスローラインを越えるとショートが平坦化する.

戦略の論理

この戦略は,それぞれ 13 と 50 の周期を持つ 1 つの高速EMAラインと 1 つの遅いEMAラインを計算する.高速EMAラインが遅いEMAラインを横断して上向きに突破すると,買い信号が生成される.高速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")




もっと