
Die Momentum Pullback Strategy ist eine Long-Shortrate, die RSI-Extreme als Dynamiksignale identifiziert. Anders als die meisten RSI-Strategien sucht die Strategie nach einem ersten Pullback in der Richtung der extremen RSI-Lesungen.
Es geht über/ohne an der ersten Rückziehung der 5-Tage-EMA (Lowest Price) /5-Tage-EMA (Highest Price) und rollt die Höchst-/Lowest-Plating-Position der 12 K-Linien. Das Roll-Hoch-/Lowest-Mechanismus bedeutet, dass das Stop-Target mit jedem neuen K-Linien reduziert wird, wenn der Preis in eine langfristige Korrektur geht. Die besten Geschäfte werden in der Regel innerhalb von 2-6 K-Linien abgeschlossen.
Die empfohlene Stop-Loss-Distanz ist das X-fache des Einstiegspreises ATR (veränderbar in den vom Benutzer eingegebenen Parametern).
Die Strategie ist robust für alle Zeiträume und Märkte, mit einer Gewinnrate von 60 bis 70 Prozent und einem hohen Umfang an profitablen Transaktionen. Es ist notwendig, Signale in Schwankungen zu vermeiden, die durch wichtige wirtschaftliche Nachrichten verursacht werden.
Berechnen Sie den 6-Tage-RSI-Wert und suchen Sie nach Extreme, die über 90 (überkauft) und unter 10 (überverkauft) liegen
Wenn der RSI überkauft wird, zieht er innerhalb der 6 K-Linien zurück auf die 5-Tage-EMA (die unterste Linie) und macht einen Übertritt
Wenn der RSI überschreitet, zieht er im 6-K-Bereich zurück auf die 5-Tage-EMA (die höchste Linie) und führt einen Nullkurs ein
Die Ausstiegsstrategie besteht aus einem beweglichen Stopp, bei dem die Long Position den höchsten Punkt der letzten 12 K-Linien als erstes Ausstiegsziel verwendet und anschließend mit dem Auftreten einer neuen K-Line auf den höchsten Punkt der neuen 12 K-Linien aktualisiert wird, um ein Roll-Ausgang zu realisieren.
Die Stop-Loss-Distanz ist X-mal ATR des Einstiegspreises und kann angepasst werden.
Die Strategie kombiniert RSI-Höchstwerte als Dynamiksignale und Rückzieher, um potenzielle Trendwendepunkte zu erfassen.
Der mobile Stop-Mechanismus wurde aktiviert, um einen Teil der Gewinne auf die tatsächliche Preisentwicklung zu speichern und die Rücknahme zu verringern.
ATR-Stoppschäden sind ein wirksames Mittel zur Verringerung von Einzelschäden.
Stärkere Robustheit, für verschiedene Märkte und Komponenten geeignet, leicht auf Festplatte zu kopieren.
Wenn die ATR-Werte zu hoch eingestellt werden, kann dies dazu führen, dass die Stop-Loss-Distanz zu groß ist und die Einzelschäden größer werden.
Wenn die ██-Reihe aufgelöst wird, wird der mobile Stopp-Mechanismus die Gewinnspanne verkleinern.
Wenn der Rückzieher über 6 K-Linien tief ist, verpasst er die Einstiegszeit.
Bei einem großen wirtschaftlichen Ereignis kann es zu Slippings oder False Breaks kommen.
Es kann getestet werden, die Anzahl der Eintrittswurzeln zu verkürzen, z. B. von 6 auf 4 K-Linien, um die Eintrittsquote zu erhöhen.
Es kann getestet werden, um die ATR-Multiplikatoren zu erhöhen und die Einzelschadenverluste weiter zu kontrollieren.
Es ist möglich, den Verlust der Rückenbrüche zu vermeiden, indem man die Energieindikatoren zusammenführt.
Ein Teil der Geräusche kann gefiltert werden, wenn man nach dem Durchbruch der 60-Minuten-Ebene auf die Mitte der Achse zurückzieht.
Die Dynamik-Retracing-Strategie ist insgesamt eine sehr praktische Short-Line-Capture-Strategie. Sie kombiniert mehrere Aspekte von Trend, Umkehrung und Stop-Loss und bietet sowohl eine einfache Festplattenoperation als auch eine gewisse Alpha. Durch die Anpassung der Parameter und die Kombination anderer Indikatoren kann die Stabilität weiter verbessert werden.
/*backtest
start: 2022-12-05 00:00:00
end: 2023-12-11 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/
// © Marcns_
//@version=5
strategy("M0PB", commission_value = 0.0004, slippage = 1, initial_capital=30000)
// commision is equal to approx $3.8 per round trip which is accurate for ES1! futures and slippage per trade is conservatively 1 tick in and 1 tick out.
// *momentum pull back* //
// long / short strategy that identifies extreme readings on the rsi as a *momentum signal*
//Strategy buys/ sells a pullback to the 5ema(low)/ 5ema(high) and exits at rolling 12 bar high/ low. The rolling high/ low feature means that
//if price enters into a pronlonged consolidation the profit target will begin to reduce with each new bar. The best trades tend to work within 2-6 bars
// hard stop is X atr's from postion average price. This can be adjusted in user inputs.
// built for use on 5 min & 1min intervals on: FX, Indexes, Crypto
// there is a lot of slack left in entries and exits but the overall strategy is fairly robust across timeframes and markets and has between 60%-70% winrate with larger winners.
// signals that occur from economic news volatility are best avoided.
// define rsi
r = ta.rsi(close,6)
// find rsi > 90
b = 0.0
if r >= 90
b := 1.0
else
na
// find rsi < 10
s = 0.0
if r <= 10
s := -1.0
else
na
// plot rsi extreme as painted background color
bgcolor(b ? color.rgb(255, 82, 82, 49): na)
bgcolor(s? color.rgb(76, 175, 79, 51): na)
// exponential moving averages for entries. note that source is high and low (normally close is def input) this creates entry bands
//entry short price using high as a source ta.ema(high,5)
es = ta.ema(high,5)
//entry long price using low as a source ta.ema(low,5)
el = ta.ema(low,5)
// long pullback entry trigger: last period above ema and current low below target ema entry
let = 0.0
if low[1] > el[1] and low <= el
let := 1.0
else
na
//short entry trigger ""
set = 0.0
if high[1] < es[1] and high >= es
set := -1.0
else
na
// create signal "trade_l" if RSI > 90 and price pulls back to 5ema(low) within 6 bars
trade_l = 0.0
if ta.barssince(b == 1.0) < 6 and let == 1.0
trade_l := 1.0
else
na
plot(trade_l, "l_entry", color.green)
//create short signal "trade_s" if rsi < 10 and prices pullback to 5em(high) wihthin 6 bars
trade_s = 0.0
if ta.barssince(s == -1.0) < 6 and set == -1.0
trade_s := -1.0
else
na
plot(trade_s, "s_entry", color.purple)
// define price at time of trade_l signal and input value into trade_p to use for stop parems later
trade_p = strategy.position_avg_price
//indentify previous 12 bar high as part of long exit strat
// this creates a rolling 12 bar high target... a quick move back up will exit at previous swing high but if a consolidation occurs system will exit on a new 12 bar high which may be below prev local high
ph = ta.highest(12)
// inverse of above for short exit strat - previous lowest low of 12 bars as exit (rolling)
pl = ta.lowest(12)
// 1.5 atr stop below entry price (trade_p defined earlier) as part of exit strat
atr_inp = input.float(2.75, "atr stop", minval = 0.1, maxval = 6.0)
atr = ta.atr(10)
stop_l = trade_p - (atr* atr_inp)
stop_s = trade_p + (atr* atr_inp)
//strat entry long
strategy.entry("EL", strategy.long, 2, when = trade_l == 1.0)
//strat entry short
strategy.entry("ES", strategy.short, 2, when = trade_s == -1.0)
//strat long exit
if strategy.position_size == 2
strategy.exit(id = "ph", from_entry = "EL", qty = 2, limit = ph)
if strategy.position_size == 2
strategy.close_all(when = low[1] > stop_l[1] and low <= stop_l)
// strat short exit
if strategy.position_size == -2
strategy.exit(id = "pl", from_entry = "ES", qty = 2, limit =pl)
if strategy.position_size == -2
strategy.close_all(when = high[1] < stop_s[1] and high >= stop_s)
// code below to trail remaining 50% of position //
//if strategy.position_size == 1
//strategy.exit(id ="trail", from_entry = "EL", qty = 1, stop = el)