
Diese Strategie dient der Identifizierung potenzieller Rückschrittmöglichkeiten in den Märkten. Die Strategie verwendet ein doppelte Gleichgewichtssystem: ein langfristiger Moving Average (MA1) und ein kurzfristiger Moving Average (MA2). Das Hauptziel ist es, eine potenzielle Rückschrittmöglichkeit in einem großen Trend zu zeigen, wenn der Schlusskurs unter MA1 liegt, aber über MA2 liegt, um mehr zu tun.
Die Strategie verwendet zwei Moving Averages: MA1 (lang) und MA2 (kurz). Die Theorie ist, dass es eine gute Gelegenheit sein kann, wenn der kurzfristige Preis zurückgeht und die Unterstützung des langfristigen Trends testet. Insbesondere, wenn der Schlusskurs über der langfristigen Unterstützung (MA1) liegt, zeigt dies, dass der Trend gut ist.
Diese Strategie hat folgende Vorteile:
Die Strategie birgt auch folgende Risiken:
In diesem Zusammenhang können Optimierungen und Verbesserungen in folgenden Bereichen vorgenommen werden:
Die Strategie kann in folgenden Bereichen optimiert werden:
Diese Strategie ist im Großen und Ganzen eine einfache und praktische Kurzlinie-Rückzug-Strategie. Sie verwendet die Doppel-Gleichlinie, um die Rücktrittschancen zu identifizieren, und setzt einen beweglichen Stop-Loss ein, um das Risiko zu kontrollieren. Die Strategie ist leicht zu verstehen und zu implementieren, die Parameter sind flexibel anpassbar und können an die verschiedenen Risikopräferenzen angepasst werden.
/*backtest
start: 2023-01-16 00:00:00
end: 2024-01-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ZenAndTheArtOfTrading / www.PineScriptMastery.com
// @version=5
strategy("Simple Pullback Strategy",
overlay=true,
initial_capital=50000,
default_qty_type=strategy.percent_of_equity,
default_qty_value=100, // 100% of balance invested on each trade
commission_type=strategy.commission.cash_per_contract,
commission_value=0.005) // Interactive Brokers rate
// Get user input
i_ma1 = input.int(title="MA 1 Length", defval=200, step=10, group="Strategy Parameters", tooltip="Long-term MA")
i_ma2 = input.int(title="MA 2 Length", defval=10, step=10, group="Strategy Parameters", tooltip="Short-term MA")
i_stopPercent = input.float(title="Stop Loss Percent", defval=0.10, step=0.1, group="Strategy Parameters", tooltip="Failsafe Stop Loss Percent Decline")
i_lowerClose = input.bool(title="Exit On Lower Close", defval=false, group="Strategy Parameters", tooltip="Wait for a lower-close before exiting above MA2")
i_startTime = input(title="Start Filter", defval=timestamp("01 Jan 1995 13:30 +0000"), group="Time Filter", tooltip="Start date & time to begin searching for setups")
i_endTime = input(title="End Filter", defval=timestamp("1 Jan 2099 19:30 +0000"), group="Time Filter", tooltip="End date & time to stop searching for setups")
// Get indicator values
ma1 = ta.sma(close, i_ma1)
ma2 = ta.sma(close, i_ma2)
// Check filter(s)
f_dateFilter =true
// Check buy/sell conditions
var float buyPrice = 0
buyCondition = close > ma1 and close < ma2 and strategy.position_size == 0 and f_dateFilter
sellCondition = close > ma2 and strategy.position_size > 0 and (not i_lowerClose or close < low[1])
stopDistance = strategy.position_size > 0 ? ((buyPrice - close) / close) : na
stopPrice = strategy.position_size > 0 ? buyPrice - (buyPrice * i_stopPercent) : na
stopCondition = strategy.position_size > 0 and stopDistance > i_stopPercent
// Enter positions
if buyCondition
strategy.entry(id="Long", direction=strategy.long)
if buyCondition[1]
buyPrice := open
// Exit positions
if sellCondition or stopCondition
strategy.close(id="Long", comment="Exit" + (stopCondition ? "SL=true" : ""))
buyPrice := na
// Draw pretty colors
plot(buyPrice, color=color.lime, style=plot.style_linebr)
plot(stopPrice, color=color.red, style=plot.style_linebr, offset=-1)
plot(ma1, color=color.blue)
plot(ma2, color=color.orange)