Cette stratégie permet de suivre les tendances et de les inverser en combinant 123 modèles de retournement et des indicateurs de flux de trésorerie.
Tout d’abord, il faut déterminer le point de basculement à l’aide de la forme inverse 123. En particulier, si le prix de clôture des deux premiers jours est en baisse, le prix de clôture du troisième jour est en hausse et l’indicateur aléatoire est inférieur à la marge, ce qui génère un signal d’achat. Si le prix de clôture des deux premiers jours est en hausse, le prix de clôture du troisième jour est en baisse et l’indicateur aléatoire est supérieur à la marge, ce qui génère un signal de vente.
Deuxièmement, calculer les indicateurs de flux de fonds pour les lignes rapides et lentes. La ligne rapide est constituée d’une moyenne mobile indicielle de flux de fonds à court terme, la ligne lente étant une moyenne mobile indicielle de périodes plus longues. Si la ligne rapide est supérieure à la ligne lente, elle est considérée comme un flux de fonds, générant un signal d’achat; au contraire, elle génère un signal de vente.
Enfin, le signal de la combinaison de la forme inverse de 123 avec l’indicateur de flux de trésorerie produit un signal de transaction si les deux signaux sont identiques.
Le risque peut être maîtrisé en améliorant la fiabilité de la forme inverse, en réglant la sensibilité des indicateurs de flux de trésorerie et en ajoutant une logique de stop loss.
Cette stratégie, qui combine les avantages du trading inversé et du suivi des tendances, permet d’identifier efficacement les points de retournement du marché. Cependant, il faut faire attention à l’ajustement des paramètres et au contrôle des risques, tout en évitant de générer trop de signaux erronés tout en suivant les tendances. Si elle est bien utilisée, elle peut devenir l’une des stratégies de trading les plus efficaces.
/*backtest
start: 2023-08-17 00:00:00
end: 2023-09-16 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 24/02/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
// Indicator plots Money Flow Indicator (Chaikin). This indicator looks
// to improve on Larry William's Accumulation Distribution formula that
// compared the closing price with the opening price. In the early 1970's,
// opening prices for stocks stopped being transmitted by the exchanges.
// This made it difficult to calculate Williams' formula. The Chaikin
// Oscillator uses the average price of the bar calculated as follows
// (High + Low) /2 instead of the Open.
// The indicator subtracts a 10 period exponential moving average of the
// AccumDist function from a 3 period exponential moving average of the
// AccumDist function.
//
// 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
MFI(Fast,Slow) =>
pos = 0.0
lenMax = max(Fast, Slow)
lenMin = min(Fast, Slow)
xDiv = (high - low) * volume
SumMax = sum(iff(xDiv > 0, (close - open) / (high - low) * volume , 0) , lenMax)
SumMin = sum(iff(xDiv > 0, (close - open) / (high - low) * volume , 0) , lenMin)
emaMax = ema(SumMax, lenMax)
emaMin = ema(SumMin, lenMin)
nRes = emaMax - emaMin
pos:= iff(nRes > 0, 1,
iff(nRes < 0, -1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal & Money Flow Indicator", 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, "---- Money Flow ----")
Fast = input(3, minval=1)
Slow = input(10, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posMFI = MFI(Fast,Slow)
pos = iff(posReversal123 == 1 and posMFI == 1 , 1,
iff(posReversal123 == -1 and posMFI == -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 )