
Die Strategie basiert auf einem 99-Zyklus-Simple Moving Average ((MA99)), um die Handelssignale zu beurteilen. Die Position kann eröffnet werden, wenn der Preis MA99 berührt, ohne dass zwei K-Linien bestätigt werden müssen. Die Stop-Loss-Strategie verwendet einen dynamischen Stop-Loss, d. h. einen Plateau-Stopp, wenn der Preis MA99 durchbricht und in der nächsten K-Linie bestätigt wird. Die Strategie zielt darauf ab, die Preisschwankungen in der Nähe von MA99 zu erfassen und gleichzeitig das Risiko durch einen dynamischen Stop-Loss zu kontrollieren.
Die MA99-Exposure-und-Dynamic-Stop-Strategie eröffnet Positionen, indem sie die Beziehung zwischen dem Preis und der MA99 beurteilt, und verwendet Dynamic-Stop-Strategie, um das Risiko zu kontrollieren. Die Strategie ist einfach zu bedienen und kann mittel- und langfristigen Trends folgen, kann aber in einem unsicheren Markt mit häufigen Handelsproblemen konfrontiert werden. Die Strategie kann durch die Einführung von Maßnahmen wie Filterung anderer Indikatoren, Optimierungsparameter, Positionsmanagement und Berücksichtigung von Kosten weiter verbessert werden.
/*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