この戦略は,取引信号を決定するために99期シンプル・ムービング・アベア (MA99) をベースにしている.価格がMA99に触ると,2つのキャンドルからの確認を必要とせずにポジションを開くことができる.ストップ・ロスはダイナミックなアプローチを使用し,価格がMA99を突破して次のキャンドルで確認されると,ストップ・ロスのためにポジションが閉鎖される.この戦略は,ダイナミック・ストップ・ロスの経由でリスクを制御しながら,MA99の周辺の価格変動を把握することを目的としている.
MA99タッチとダイナミックストップロスの戦略は,価格とMA99の関係に基づいてポジションを開き,リスクを制御するためにダイナミックストップロスを使用する.この戦略は単純で使いやすいもので,中長期のトレンドを追跡できるが,不安定な市場で頻繁な取引の問題に直面する可能性がある.フィルタリング,パラメータの最適化,ポジションの管理,コストの考慮のための他の指標を導入することで,この戦略のパフォーマンスと強度がさらに向上することができる.
/*backtest start: 2023-04-23 00:00:00 end: 2024-04-28 00:00:00 period: 1d basePeriod: 1h 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/ //@version=5 strategy("MA99 Temas ve Dinamik Stop-Loss Stratejisi", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10) // MA99 hesaplayalım ma99 = ta.sma(close, 99) plot(ma99, color=color.blue, title="MA99") // Fiyatın MA99'a temas edip etmediğini kontrol edelim priceTouchedMA99 = (low <= ma99 and high >= ma99) // Long ve short koşullarını tanımlayalım longCondition = priceTouchedMA99 and close > ma99 shortCondition = priceTouchedMA99 and close < ma99 var float longStopLoss = na var float shortStopLoss = na var int longStopTriggered = 0 var int shortStopTriggered = 0 // Alım veya satım sinyallerine göre işlemleri başlatalım ve stop-loss ayarlayalım if (longCondition) strategy.entry("Long Entry", strategy.long) longStopLoss := ma99 longStopTriggered := 0 if (shortCondition) strategy.entry("Short Entry", strategy.short) shortStopLoss := ma99 shortStopTriggered := 0 // Stop-loss koşullarını ve iki mum kuralını kontrol edelim if (not na(longStopLoss)) if (close < longStopLoss) longStopTriggered := 1 else longStopTriggered := 0 if (longStopTriggered[1] == 1 and close < longStopLoss) // Bir önceki mumda tetiklendi ve hala altında strategy.close("Long Entry", comment="Stop Loss Long") longStopLoss := na longStopTriggered := 0 if (not na(shortStopLoss)) if (close > shortStopLoss) shortStopTriggered := 1 else shortStopTriggered := 0 if (shortStopTriggered[1] == 1 and close > shortStopLoss) // Bir önceki mumda tetiklendi ve hala üstünde strategy.close("Short Entry", comment="Stop Loss Short") shortStopLoss := na shortStopTriggered := 0