EMAの傾斜とクロストレンド取引戦略

作者: リン・ハーンチャオチャン, 日付: 2023-09-20 14:32:22
タグ:

概要

この戦略は,トレンド指向を決定するために,複数のEMA間の傾斜方向と交差関係を利用し,ノンストップトレンド取引を行う.常に長または短に保持することができます.

戦略の論理

  1. EMA の 3 つのグループを計算します.快速,中間,遅い EMA.

  2. 速いEMAが中間EMAを横切り,中間EMAの傾きが正になるとき,ロング信号が生成されます.

  3. 急速EMAが中期EMAを下回り,中期EMA傾斜がマイナスになると,ショート信号が生成されます.

  4. 価格がEMAを下回るとショートします.

  5. EMA傾斜関係は傾向の変化を反映する.価格クロスオーバーはエントリーを確認する.

利点分析

  1. 複数の EMA は,トレンド判断の精度を向上させます.

  2. 急速,中,遅い EMA は,傾向と統合を合理的に区別します.

  3. EMAの傾斜の変化は,トレンド変化の初期ヒントを提示します.

  4. 価格クロスオーバーは 偽のブレイクを避けるために 更に確認されます

  5. 常にポジションを保つことで トレンドの機会を完全に把握できます

リスク分析

  1. EMA にのみ頼るということは,範囲限定期間に大きなポジションリスクをもたらす.

  2. 誤ったEMAパラメータは ターニングポイントを見逃す可能性があります

  3. トレンド強さを判定できないので 早期に逆転するリスクがあります

  4. 効果的な単一の取引損失制御がない

改善 の 方向

  1. 最適パラメータを見つけるために EMAの異なる組み合わせをテストします.

  2. MACDのような他の指標を追加して強さを決定します.

  3. リスク管理のためのストップ・ロスのメカニズムを追加する.

  4. 傾向の強さを評価して,早急な逆転を避ける.

  5. 資本管理のためのポジションサイズを最適化する.

  6. トレンドが揺れ動いているときに一時的に取引を停止します.

概要

この戦略は,トレンドを決定するためにEMAコンボを賢明に使用する.しかし,EMAだけに依存することは制限があるため,より多くの指標を組み込むための大きな最適化空間を残している.安定性を向上させるためにリスク制御メカニズムも必要である.全体として,フレームワークは科学的に設計されており,継続的な改善後に強力なトレンド取引戦略に成長する可能性がある.


/*backtest
start: 2023-08-20 00:00:00
end: 2023-09-19 00:00:00
period: 6h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("EMA Slope + EMA Cross Strategy (by ChartArt)", shorttitle="CA_-_EMA_slope_cross", overlay=true)

// ChartArt's EMA Slope + EMA Cross Strategy
//
// Version 1.0
// Idea by ChartArt on March 10, 2018.
//
// This strategy uses divergences between
// three moving averages and their slope
// directions as well as crosses between
// the price and the moving averages
// to switch between long/short positions.
//
// The strategy is non-stop in the market
// and always either long or short.
// 
// In addition the moving averages are colored
// depending if they are trending up or down.
//
// List of my work: 
// https://www.tradingview.com/u/ChartArt/

// Input
price = input(close)
MA1_Length = input(2,step=1, title="EMA 1 Length")
MA2_Length = input(4,step=1, title="EMA 2 Length")
MA3_Length = input(20,step=1, title="EMA 3 Length")

switch1=input(true, title="Show Bar Color?")
switch2=input(true, title="Show Moving Averages?")

// Calculation
MA1 = ema(price, MA1_Length)
MA2 = ema(price, MA2_Length)
MA3 = ema(price, MA3_Length)

// Strategy
long = crossunder(price, MA3) or ( change(price)<0 and change(MA1)<0 and crossunder(price,MA1) and change(MA2)>0 )
short = crossover(price, MA3) or ( change(price)>0 and change(MA1)>0 and crossover(price,MA1)  and change(MA2)<0 ) 

if long
    strategy.entry("Long", strategy.long, comment="Long")

if short
    strategy.entry("Short", strategy.short, comment="Short")

// Strategy Alert
alertcondition(long, title='EMA Slope + EMA Cross Strategy, Long Alert', message='Go Long!')
alertcondition(short, title='EMA Slope + EMA Cross Strategy, Short Alert', message='Go Short!')

// MA trend bar color
up =  change(MA2)>0 and change(MA3)>0
dn =  change(MA2)<0 and change(MA3)<0
bar_color = up?green:dn?red:blue
barcolor(switch1?bar_color:na)

// MA trend output color
MA2_color = change(MA2)>0?lime:change(MA2)<0?red:blue
MA3_color = change(MA3)>0?lime:change(MA3)<0?red:blue

// MA output
EMA2 = plot(switch2?MA2:na, title="EMA 2", style=linebr, linewidth=2, color=MA2_color)
EMA3 = plot(switch2?MA3:na, title="EMA 3", style=linebr, linewidth=4, color=MA3_color)
fill(EMA2, EMA3, color=silver, transp=50)

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

もっと