
Le système de double surplus-dépôt est une stratégie quantitative qui combine le suivi de la tendance et le trading de la reprise. Cette stratégie génère un signal d’achat en calculant si des signaux de surplus-dépôt se produisent en continu N jours avant la clôture du cours de l’action, et en combinant le calcul d’une moyenne mobile T3 avec des paramètres spécifiques pour générer des signaux de vente et protéger les bénéfices.
La stratégie est composée de deux volets:
Le système inverse observe les variations du prix de clôture au cours des N derniers jours, et si le prix de clôture d’aujourd’hui est plus élevé que celui de la veille, et si le prix de clôture de la veille est plus bas que celui des deux jours précédents, il est considéré comme un signal de dépassement de deux jours consécutifs, ce système génère un signal d’achat. En outre, le système est associé à l’indicateur STOCH, qui confirme davantage la validité du signal d’achat si la ligne rapide STOCH d’aujourd’hui est inférieure à la ligne lente.
Les moyennes mobiles T3 sont calculées en fonction d’une formule de calcul, combinée à une moyenne mobile indicielle du prix. Elle régule la sensibilité des moyennes mobiles aux variations de prix par certains paramètres. Lorsqu’une moyenne mobile T3 est traversée par le prix, un signal de vente est généré.
La stratégie synthétise les deux parties de signaux ci-dessus et produit un véritable signal de transaction correspondant lorsqu’il est satisfait à la fois du signal d’achat de 123 inverse et du signal de vente de la moyenne mobile T3.
Les mesures suivantes peuvent être prises pour gérer les risques:
Cette stratégie peut être optimisée dans les domaines suivants:
Il est possible d’ajouter d’autres indicateurs techniques comme conditions de filtrage sur la base de la stratégie initiale, comme des conditions de rupture pour augmenter le volume de transactions, afin d’éviter les transactions erronées causées par le bruit.
Il est possible d’effectuer des retours sur plusieurs combinaisons de paramètres, en choisissant la combinaison qui correspond le mieux au rendement le plus élevé, afin d’optimiser l’effet de la stratégie. Il est également possible de définir des paramètres dynamiques, qui s’adaptent en temps réel en fonction de la situation du marché.
Par exemple, il est possible de collecter de grandes quantités de données historiques, d’utiliser des modèles de formation à l’apprentissage automatique pour prédire le meilleur moment pour acheter ou vendre et d’optimiser les paramètres de la stratégie en temps réel.
Les caractéristiques des variétés varient et les paramètres appropriés peuvent varier. Les paramètres indépendants peuvent être définis en fonction des données de différentes variétés.
Le système de rupture de double revirement combinant le suivi de la tendance et le revirement de la tendance. Il permet d’acheter des prix plus bas pendant la phase de revirement et de s’arrêter en temps opportun après avoir profité de la tendance. La combinaison efficace de signaux de revirement et de signaux de tendance permet d’obtenir efficacement des opportunités de revirement et de verrouiller les bénéfices. Bien que certains risques subsistent, il est possible d’améliorer la stratégie en optimisant les paramètres, en ajoutant des conditions de filtrage, etc., pour s’adapter à différents environnements de marché.
/*backtest
start: 2023-09-26 00:00:00
end: 2023-10-26 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 16/09/2021
// 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 indicator plots the moving average described in the January, 1998 issue
// of S&C, p.57, "Smoothing Techniques for More Accurate Signals", by Tim Tillson.
// This indicator plots T3 moving average presented in Figure 4 in the article.
// T3 indicator is a moving average which is calculated according to formula:
// T3(n) = GD(GD(GD(n))),
// where GD - generalized DEMA (Double EMA) and calculating according to this:
// GD(n,v) = EMA(n) * (1+v)-EMA(EMA(n)) * v,
// where "v" is volume factor, which determines how hot the moving average’s response
// to linear trends will be. The author advises to use v=0.7.
// When v = 0, GD = EMA, and when v = 1, GD = DEMA. In between, GD is a less aggressive
// version of DEMA. By using a value for v less than1, trader cure the multiple DEMA
// overshoot problem but at the cost of accepting some additional phase delay.
// In filter theory terminology, T3 is a six-pole nonlinear Kalman filter. Kalman
// filters are ones that use the error — in this case, (time series - EMA(n)) —
// to correct themselves. In the realm of technical analysis, these are called adaptive
// moving averages; they track the time series more aggres-sively when it is making large
// moves. Tim Tillson is a software project manager at Hewlett-Packard, with degrees in
// mathematics and computer science. He has privately traded options and equities for 15 years.
//
// 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
T3A(Length, b) =>
pos = 0.0
xPrice = close
xe1 = ema(xPrice, Length)
xe2 = ema(xe1, Length)
xe3 = ema(xe2, Length)
xe4 = ema(xe3, Length)
xe5 = ema(xe4, Length)
xe6 = ema(xe5, Length)
c1 = -b*b*b
c2 = 3*b*b+3*b*b*b
c3 = -6*b*b-3*b-3*b*b*b
c4 = 1+3*b+b*b*b+3*b*b
nT3Average = c1 * xe6 + c2 * xe5 + c3 * xe4 + c4 * xe3
pos:= iff(nT3Average > close, -1,
iff(nT3Average < close, 1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal & T3 Averages", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- T3 Averages ----")
LengthT3 = input(5, minval=1)
b = input(0.7, minval=0.01,step=0.01)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posT3A = T3A(LengthT3, b)
pos = iff(posReversal123 == 1 and posT3A == 1 , 1,
iff(posReversal123 == -1 and posT3A == -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 )