EMAの逆買い売り戦略

作者: リン・ハーンチャオチャン, 日付: 2023-11-28 16:54:14
タグ:

img

概要

EMAラインをベースにしたトレンドフォロー戦略である.異なる期間である21と55の2つのEMAラインを使用する.より速いEMAラインがより遅いEMAラインの上を横切ると,購入信号が生成される.より速いEMAがより遅いより下を横切ると,販売信号が生成される.

さらに,この戦略にはリバース・トレード,ATRストップ・ロース,リバース・テイク・プロフィートが組み込まれ,安定性と収益性を高めます.

戦略の論理

  1. 21 EMA は短期トレンドと55 EMA は長期トレンドを表します.

  2. 21 EMA が 55 EMA を越えると,短期的な傾向が上昇し,買い信号が発信される.

  3. 21 EMAが55 EMAを下回ると,短期トレンドが下向きになり,セールシグナルが発信されます.

  4. リバース・トレード: 価格がオープン価格を下回る時にのみ購入し,価格がオープン価格を下回るときにのみ販売する.これは短期的な引き下げで購入し,リバウンドで販売することを目的としています.

  5. ATRストップ損失: N × ATR を使ってストップ損失価格を設定します.これは市場の変動に基づいてストップ損失を動的に調整します.

  6. リバーサル・テイク・プロフィート: 収益目標としてエントリー価格マイナスN倍ATRを使用します.これは,前のサポートからレジスタンス領域への価格再テストの利点です.

戦略 の 利点

  1. 中期から長期間のトレンドを二重EMAを用いて把握する.

  2. リバース・トレーディングは短期的なトレンドの引き下げ取引に適しています

  3. ATRストップは市場の変動に適応します

  4. 収益の逆転は 重要な技術レベルに近い確率で

  5. シンプルで明快な論理で 分かりやすく修正できます

  6. 仮想通貨のような高変動市場に適用できます

リスク と 解決策

  1. 双 EMA は 偽信号 を 生み出し EMA 期間 を 延長 する こと が でき ます.

  2. ストップ・ロスを少し緩めることができます.

  3. 偽の脱出はよくある フィルターを追加

  4. 高リスクで,手動で利益を取る注文を削除します.

最適化 の 提案

  1. MACD,KDのような指標を追加して 過剰購入/過剰販売のゾーンでシグナルをフィルターします

  2. 120期間のEMAのような EMAを追加して 傾向を包括的に判断できます

  3. ロングとショートで異なるスライドを設定して 価格を向上させる

  4. ATRストップロスを緩め 高い不安定な暗号取引のために

  5. 最大利益と最小引き上げを目的として ATR マルチプリキュアとトライリングストップメカニズムを最適化する.

結論

結論として,これは比較的単純な二重EMAトレンドフォロー戦略である.その強みは,クリーンな論理,柔軟なパラメータ,中長期トレンドと短期逆転の適用性にある.我々はまた,将来の改善のためのいくつかの勧告とともに,潜在的な弱点と解決策も分析した.全体的に言えば,この戦略は,ある程度実践的で,進化する余地があるが,そのパラメータは,異なる市場のために調整する必要がある.


/*backtest
start: 2022-11-21 00:00:00
end: 2023-11-27 00:00:00
period: 1d
basePeriod: 1h
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/
// © TheHulkTrading

// Simple EMA strategy, based on ema55+ema21 and ATR(Average True Range) and it enters a deal from ema55 when the other entry conditions are met


//@version=4
strategy("Simple Ema_ATR Strategy HulkTrading", overlay=true)

atr_multiplier = input(2, minval=1, title="ATR Multiplier") // ATR Multiplier. Recommended values between 1..4


emaFast=ema(close,21)
emaSlow=ema(close,55)

//Basically long and short conditions

//If long: 
// 1) close must be less than open (because we are searching for a pullback)
// 2) emaFast(21) must be bigger than emaSlow(55) - for a trend detection
// 3) Difference between emaFast and emaSlow must be greater than ATR(14) - for excluding flat
longCond = close < open and emaFast > emaSlow and abs(emaSlow-emaFast) > atr(14)  

//For short conditions are opposite
shortCond = close > open and emaFast < emaSlow and abs(emaSlow-emaFast) > atr(14) 

//Stop levels and take profits, based on ATR multiplier

stop_level_long = strategy.position_avg_price - atr_multiplier*atr(14)
take_level_long = strategy.position_avg_price + atr_multiplier*atr(14)
stop_level_short = strategy.position_avg_price + atr_multiplier*atr(14)
take_level_short = strategy.position_avg_price - atr_multiplier*atr(14)


//Entries and exits 
strategy.entry("Long", strategy.long, when=longCond, limit = emaSlow)
strategy.exit("Stop Loss/TP","Long", stop=stop_level_long, limit = take_level_long)
strategy.entry("Short", strategy.short, when=shortCond, limit = emaSlow)
strategy.exit("Stop Loss/TP","Short", stop=stop_level_short, limit = take_level_short)



もっと