ロング・オンリー・トリプル・EMA ゴールデン・クロス・トレーディング・ストラテジー

作者: リン・ハーンチャオチャン, 日時: 2023-09-26 16:23:53
タグ:

概要

この戦略は,異なる期間の3つのEMAラインの黄金十字と死十字に基づいて取引信号を生成し,それぞれのEMAの強みを活用し,より良い取引パフォーマンスを達成します.

戦略の論理

この戦略は 8, 50 および 200 の期間を持つ 3 つの EMA ラインを計算し,より速い EMA がより遅い EMA を上または下を横切るときに信号を生成します.論理は:

  1. 8期,50期,200期 EMAラインを計算する.

  2. 8期間の EMA が 50期間の EMA を超えるとロング (ゴールデン・クロス),50期間の EMA が 8期間の EMA を超えたとき (デス・クロス) ローズする.

  3. 選択的には,価格が200期EMAを超えるとロングするだけです.

  4. 価格がその値を下回るときに EMAラインを閉じるように設定できます.

急速なEMAは底盤を特定し,中期EMAはトレンドを決定し,遅いEMAはノイズをフィルタリングします.一緒に彼らは適切な取引頻度を維持しながらトレンドの変化を特定します.

利点

  1. トリプル EMA は,動向を効果的に決定し,個々の強みから利益を得ます. 8 期間の EMA は短い底を捉え, 50 期間の EMA は中期トレンドを決定し, 200 期間の EMA はノイズをフィルタリングします.

  2. 200期間の EMA を長引くだけで ストップを避けられます

  3. 調整可能な利得率 EMAは合理的な利得目標を設定します

  4. バールカラーやEMAプロットなどの視覚的カスタマイゼーションにより 柔軟性が向上します

  5. 単純な黄金・死十字の論理は 分かりやすいです

リスクと緩和策

  1. EMAの遅延は,EMA期間を短縮したり,MACDのような指標と組み合わせたりします.

  2. Whipsawsは悪い信号を生む可能性があります. フィルターまたは条件を追加するためにより長い EMA を使用します.

  3. 固定利益目標は適応性がない ATRなどに基づく動的出口を使う

  4. 停止しないことは無制限のリスクを意味します 遅延または固定値停止を追加します

増進 の 機会

  1. EMA期間を最適化して 最適なパラメータを設定する

  2. MACDのようなインディケーターを追加します

  3. 動向的な利益を得ること

  4. ストップ・ロスト・ロジック,トラッキング,固定値を追加します.

  5. 容量フィルターなどの 入力条件を改善する.

結論

この戦略は,高い確率の動きを特定するためにEMAのトレンドフィルタリングを利用する.出口を最適化し,指標やフィルタを追加することでパフォーマンスを向上させることができる.全体的には,EMAベースのトレンドフォローにシンプルで実践的です.


/*backtest
start: 2023-09-18 00:00:00
end: 2023-09-20 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Long only EMA CROSS 8/50/200 Backtest", shorttitle="Golden Cross Tri EMA", overlay=true)

// EMA 8/50/200 Cross TEST



// Input
switch1=input(true, title="Enable Bar Color?")
switch2=input(true, title="Show 8 EMA")
switch3=input(true, title="Show 50 EMA")
switch4=input(true, title="Show 200 EMA")
switch5=input(false, title="Show profit level EMA")
bool_Long_EMA200=input(false, title="Long only above EMA200")
movingaverage_8 = ema(close, input(8))
movingaverage_50 = ema(close, input(50))
movingaverage_market_signal = ema(close, input(200))
movingaverage_profitlvl = ema(close, input(50))


// Calculation
bullish_cross = if bool_Long_EMA200 == true
    crossover(movingaverage_8, movingaverage_50) and movingaverage_8 > movingaverage_market_signal
else 
    bullish_cross = crossover(movingaverage_8, movingaverage_50)
bearish_cross = crossunder(close, movingaverage_profitlvl)

// Strategy
if bullish_cross
    strategy.entry("long", strategy.long)

strategy.close("long", when = bearish_cross )

// Colors
bartrendcolor = close > movingaverage_8 and close > movingaverage_50 and change(movingaverage_50) > 0 ? green : close < movingaverage_8 and close < movingaverage_50 and change(movingaverage_50) < 0 ? red : blue
barcolor(switch1?bartrendcolor:na)

// Output
plot(switch2?movingaverage_8:na,color = change(movingaverage_8) > 0 ? green : red,linewidth=2, title="EMA8")
plot(switch3?movingaverage_50:na,color = change(movingaverage_50) > 0 ? green : red,linewidth=2,title="EMA50")
plot(switch4?movingaverage_market_signal:na,color = change(movingaverage_market_signal) > 0 ? green : red,linewidth=3,title="EMA200")
plot(switch5?movingaverage_profitlvl:na,color = change(movingaverage_profitlvl) > 0 ? green : red,linewidth=3, title="EMA Profit LVL")

//
alertcondition(bullish_cross, title='Golden Cross (bullish)', message='Bullish')
alertcondition(bearish_cross, title='Death Cross (bearish)', message='Bearish')

もっと