
La stratégie de momentum pullback est une stratégie de position longue et courte qui identifie les valeurs extrêmes du RSI comme des signaux de momentum. Contrairement à la plupart des stratégies RSI, la stratégie recherche le premier pullback pour l’entrée dans la direction des lectures RSI extrêmes.
Il a effectué un gain/défaut sur le premier point de reprise de la 5ème EMA (le prix le plus bas) / 5ème EMA (le prix le plus élevé) et a effectué un placement sur le plus haut/le plus bas des 12 lignes de K. Ce mécanisme de haut/bas de roulement signifie que si le prix entre dans un rassemblement à long terme, l’objectif d’arrêt sera réduit avec l’apparition de chaque nouvelle ligne de K. Les meilleures transactions sont généralement effectuées dans les 2 à 6 lignes de K.
La distance d’arrêt recommandée est X fois l’ATR du prix d’entrée (modifiable dans les paramètres de saisie de l’utilisateur).
La stratégie est robuste pour les périodes de temps et les marchés, avec un taux de victoire entre 60% et 70%, et des transactions lucratives à grande échelle. Il est nécessaire d’éviter de générer des signaux dans les fluctuations causées par les nouvelles économiques importantes.
Calculez le RSI à 6 jours et recherchez les extrêmes de plus de 90 (surachat) et de moins de 10 (survente)
Lorsque le RSI est en survente, il est plus ouvert en remontant jusqu’à l’EMA de 5 jours (la ligne la plus basse) dans la ligne 6K.
Lorsque le RSI est en survente, revenir à l’EMA du 5e jour dans la ligne 6K (la ligne la plus élevée) pour une entrée à vide
La stratégie de sortie consiste à déplacer l’arrêt, le long position prend le point le plus élevé des 12 dernières lignes K comme premier but de sortie, puis est mis à jour avec le nouveau point le plus élevé des 12 lignes K à l’apparition d’une nouvelle ligne K, pour réaliser une sortie de roulement. À l’inverse, le vide-tête s’arrête avec le point le plus bas des 12 lignes K.
La distance de stop loss est X fois ATR du prix d’entrée, et peut être personnalisée.
La stratégie combine les extrêmes du RSI comme signal de force et un retour en arrière pour capturer les retournements potentiels dans la tendance, avec un taux de victoire élevé.
Le blocage mobile a été activé, permettant de bloquer une partie des bénéfices en fonction de l’évolution réelle des prix et de réduire les retraits.
Le stop-loss ATR permet de contrôler efficacement les pertes individuelles.
Une robustesse élevée, adaptée à différents marchés et combinaisons de paramètres, facile à reproduire sur disque dur.
Si la valeur de l’ATR est trop élevée, cela peut entraîner un stop-loss trop éloigné et une perte individuelle.
Si un arrêt de décrochage survient, le mécanisme d’arrêt mobile réduit l’espace de gain.
Si le tirage au sort est trop profond (plus de 6 lignes K), le joueur peut manquer l’heure d’arrivée.
Si un événement économique majeur survient, la transaction peut connaître des points de glissement ou de fausses percées.
Il est possible de tester le raccourcissement du nombre de racines d’admission, par exemple de 6 à 4 lignes K, pour améliorer le taux de réussite de l’admission.
Il est possible de tester l’augmentation du multiplicateur d’ATR afin de contrôler davantage les pertes ponctuelles.
Les indicateurs d’énergie peuvent être combinés pour éviter les pertes causées par la réorganisation des dossiers.
Il est possible d’entrer dans l’axe central après le passage de la barre des 60 minutes, ce qui permet de filtrer une partie du bruit.
La stratégie de retrait dynamique est une stratégie de capture de courte ligne très pratique dans l’ensemble. Elle combine plusieurs aspects de la tendance, de l’inversion et de l’arrêt.
/*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)