この戦略は,二重移動平均値を使用して取引信号を生成する.短期移動平均値が長期移動平均値を超えると購入信号を送信し,逆が起きたとき売却信号を送信する.この戦略は,移動平均値のトレンドフォロー能力を組み合わせて,価格トレンドを効果的に把握し,トレンド取引を実施する.
この戦略は,異なる期間の2つの指数関数移動平均値 (EMA) を活用する. EMA1は,期間の9で設定された短期MAであり,EMA2は,期間の21で設定された長期MAである.この戦略は,EMA1がEMA2を超えると購入信号を生成し,EMA2を下回ると販売信号を生成する.
この戦略は,価格が新しいトレンド方向を開始するときにシグナルを捕捉するために移動平均のトレンド追跡能力を利用する.例えば,価格が下落から反転すると,短期MAは長期MAよりも早く上昇する.上記の交差は上昇傾向が始まる早期信号を生成する.
この戦略の最大の強みは,価格傾向を効果的に識別する能力にあります.特に傾向が強い市場に適しています.移動平均値自体にはトレンドフォローする優れた機能があり,ダブルMAメカニズムはさらに改善します.また,シングルMA戦略と比較して,ダブルMAはより多くの偽信号をフィルタリングし,信頼性を向上させることができます.
最も大きなリスクは,価格が劇的に変動すると,MAsの遅滞性により,最良のエントリーまたは出口ポイントが欠落する可能性があります.また,市場が範囲で統合すると,より無効な信号があり,戦略の安定性が低下します.
リスクを軽減するために,MA期間のようなパラメータをそれに応じて調整したり,追加のフィルターを追加したりできます.例えば,波動性指数を組み合わせて
最適化空間は主に以下の側面にあります:
この戦略は,トレンド逆転を検出するための価格トレンド追跡能力の強さを持つ二重指数移動平均値で信号を生成する.しかし,MA遅延のような制限は存在する.次のステップは,信号品質,エントリータイミング,さまざまな次元からのストップ損失を向上させることである.
/*backtest start: 2024-01-18 00:00:00 end: 2024-02-17 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © technicalTruff99446 //@version=4 strategy("AhmetMSA", overlay=true, initial_capital = 10000, commission_value = 0.002, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0, calc_on_order_fills = true) //2. DEĞERDEN SONRA GEÇMİŞ HESAPLAMA DEĞERİ, KOMİSYON ORANI, PARANIN TAMAMI, DEĞERLERİ EKLEMDİ emaShPD = input (title="EMA KISA PERİYOT", defval=9, minval=1) emaLngPD = input (title="EMA UZUN PERİYOT", defval=21, minval=1) //input DEĞİŞKEN DEĞER ATAMA ema1 = ema (close,emaShPD) ema2 = ema (close,emaLngPD) //EMALAR ARASINI BOYAMA upTrend downTrend upTrend = plot (ema1, color=#4DFF00, linewidth=2, title= "EMA KISA", transp=0) downTrend = plot (ema2, color=#FF0C00, linewidth=3, title= "EMA UZUN", transp=0) //linewidth ÇİZGİ KALINLIĞI //title İSİM VERME //BACKTESTİN BAŞLANGIÇ TARİHİNİ BELİRLEME yearin = input(2024, title = "Backtest Başlangıç Tarihi") //longCondition = crossover(ema1, ema2) //shortCondition = crossover(ema2, ema1) buy = crossover(ema1, ema2) and yearin >= year sell = crossover(ema2, ema1) and yearin >= year //ta.crossunder KESİŞİM KODU //Barları BOYAMA barbuy = ema1 >= ema2 barsell = ema2 < ema1 //AL SAT AŞK KUTUCUKLU EKRANA YAZMA plotshape(buy, title = "AL AŞK", text = 'AL AŞK', style = shape.labelup, location = location.belowbar, color= color.green, textcolor = color.white, transp = 0, size = size.tiny) plotshape(sell, title = "SAT AŞK", text = 'SAT AŞK', style = shape.labeldown, location = location.abovebar, color= color.red, textcolor = color.white, transp = 0, size = size.tiny) //Barları BOYAMA KOŞULU barcolor(barbuy? #4DFF00: barsell? #FF0C00: #FF0C00) fill(upTrend, downTrend, color = ema1 >= ema2?#4DFF00 : #FF0C00, transp = 80, title = "bgcolor") //longCondition = ta.crossover(ta.sma(close, 14), ta.sma(close, 28)) //shortCondition = ta.crossunder(ta.sma(close, 14), ta.sma(close, 28)) //14 GÜNLÜĞÜN KAPANIŞDEĞERİNİN 28 GÜNLÜK KAPANIŞ DEĞERİNİ KESMESİ KOŞULU if (buy) strategy.entry("AL AŞK", strategy.long) if (sell) strategy.entry("SAT AŞK", strategy.short)