
La stratégie de négociation en double inversion est une stratégie de négociation en ligne courte qui combine un indicateur de dynamique et un indicateur de tendance. La stratégie utilise d’abord un indicateur en inversion pour générer un signal de négociation, puis une combinaison avec un indicateur de tendance pour produire un signal de négociation plus fiable. La stratégie est conçue pour capturer des retournements de prix à court terme et négocier dans le contexte d’une tendance en ligne courte et moyenne.
Cette stratégie est composée de deux sous-stratégies:
La première sous-stratégie est la stratégie de 123 inversions. Elle surveille si le prix est en train de revenir à un sommet. Plus précisément, elle génère un signal d’achat lorsque le prix de clôture des deux jours précédents est inférieur au prix de clôture du jour précédent et que la ligne stochastique est inférieure à 50. Elle génère un signal de vente lorsque le prix de clôture des deux jours précédents est supérieur au prix de clôture du jour précédent et que la ligne stochastique est supérieure à 50.
La deuxième sous-stratégie est l’indicateur ergodic aléatoire (EMDI). Il s’agit d’un indicateur de type tendanciel qui identifie la direction de la tendance de la ligne médiane longue. Il combine l’idée de la moyenne mobile et du MACD pour générer des signaux d’achat et de vente à l’aide d’un indice unique pour lisser la moyenne mobile et la ligne rapide et lente croisée du MACD.
Cette stratégie combine les signaux de deux sous-stratégies. La stratégie n’ouvre une position que si les deux sous-stratégies génèrent des signaux de concordance. C’est-à-dire qu’elle ne négocie que si une légère inversion à court terme est accompagnée d’un fort soutien à la tendance de la ligne moyenne-longue.
Cependant, la stratégie présente quelques problèmes, tels que la possibilité de manquer des opportunités à court terme, la sensibilité aux paramètres et le risque de suradaptation. La stabilité et la rentabilité de la stratégie peuvent être encore améliorées en introduisant plus d’indicateurs, en optimisant les paramètres, en ajustant la fréquence des transactions et en les testant sur différents marchés.
/*backtest
start: 2023-10-09 00:00:00
end: 2023-10-16 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 28/07/2020
// This is combo strategies for get a cumulative signal.
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50.
// The strategy sells at market, if close price is lower than the previous close price
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// This is one of the techniques described by William Blau in his book "Momentum,
// Direction and Divergence" (1995). If you like to learn more, we advise you to
// read this book. His book focuses on three key aspects of trading: momentum,
// direction and divergence. Blau, who was an electrical engineer before becoming
// a trader, thoroughly examines the relationship between price and momentum in
// step-by-step examples. From this grounding, he then looks at the deficiencies
// in other oscillators and introduces some innovative techniques, including a
// fresh twist on Stochastics. On directional issues, he analyzes the intricacies
// of ADX and offers a unique approach to help define trending and non-trending periods.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
vFast = sma(stoch(close, high, low, Length), KSmoothing)
vSlow = sma(vFast, DLength)
pos = 0.0
pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0)))
pos
EMDI(r,s,u,SmthLen) =>
pos = 0
xEMA = ema(close, r)
xEMA_S = close - xEMA
xEMA_U = ema(ema(xEMA_S, s), u)
xSignal = ema(xEMA_U, u)
pos := iff(xEMA_U > xSignal, 1,
iff(xEMA_U < xSignal, -1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal & Ergodic MDI", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
r = input(32, minval=1)
s = input(5, minval=1)
u = input(5, minval=1)
SmthLen = input(3, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posEMDI = EMDI(r,s,u,SmthLen)
pos = iff(posReversal123 == 1 and posEMDI == 1 , 1,
iff(posReversal123 == -1 and posEMDI == -1, -1, 0))
possig = iff(reverse and pos == 1, -1,
iff(reverse and pos == -1 , 1, pos))
if (possig == 1)
strategy.entry("Long", strategy.long)
if (possig == -1)
strategy.entry("Short", strategy.short)
if (possig == 0)
strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )