이 전략은 거래 신호를 결정하기 위해 99주기 간단한 이동 평균 (MA99) 을 기반으로 합니다. 가격이 MA99에 닿을 때 두 개의 촛불에서 확인을 필요로 하지 않고 포지션을 열 수 있습니다. 스톱-러스는 동적 접근 방식을 사용합니다. 즉 가격이 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