
La stratégie est une combinaison de deux stratégies différentes, la première basée sur la traversée d’une moyenne mobile double du prix d’une action pour former un signal; la seconde basée sur l’indicateur de fluctuation magique dans l’indicateur de Williams. Le signal final prend l’intersection des deux signaux stratégiques pour former le signal de transaction final.
La première stratégie consiste à générer un signal d’achat lorsque le prix de clôture d’hier est supérieur au prix de clôture du jour précédent et que l’indicateur aléatoire du jour 9 de la ligne K rapide est inférieur à l’indicateur aléatoire du jour 3 de la ligne D lente. Un signal de vente est généré lorsque le prix de clôture d’hier est inférieur au prix de clôture du jour précédent et que l’indicateur aléatoire du jour 9 de la ligne K rapide est supérieur à l’indicateur aléatoire du jour 3 de la ligne D lente.
La deuxième stratégie consiste à calculer la différence entre les fluctuations des prix sur les 5e et 34e jours et à calculer une moyenne mobile de cette différence. Il s’agit d’un signal d’achat lorsque la valeur actuelle est supérieure à celle du cycle précédent et d’un signal de vente lorsque la valeur actuelle est inférieure au cycle précédent.
La combinaison de deux stratégies, le signal final prend l’intersection des deux signaux stratégiques. Lorsque les deux stratégies émettent simultanément un signal d’achat, faire plus; lorsque les deux stratégies émettent simultanément un signal de vente, faire vide.
Cette stratégie combine les avantages de la stratégie de la double moyenne mobile et de la stratégie de l’indicateur de Williams. La stratégie de la double moyenne mobile permet de saisir les tendances de la ligne moyenne et longue; la stratégie de l’indicateur de Williams permet de capturer les opportunités de négociation de la ligne courte. La combinaison des deux stratégies permet de réaliser des bénéfices et de prévenir les fausses percées.
En outre, la stratégie utilise plusieurs paramètres d’entrée, qui peuvent être optimisés en fonction de différents stocks et de différentes conditions, pour s’adapter à un environnement de marché plus large.
Le plus grand risque de cette stratégie est que les deux signaux de stratégie peuvent ne pas être cohérents. Lorsque l’une des stratégies émet un signal d’achat et l’autre un signal de vente, la stratégie ne peut pas produire un signal efficace et peut manquer une opportunité de négociation.
En outre, la stratégie contient plusieurs paramètres, ce qui rend l’optimisation des paramètres difficile. Une combinaison inappropriée de paramètres peut entraîner une mauvaise performance de la stratégie.
Pour réduire le risque, il est possible d’envisager de n’utiliser qu’un seul de ces signaux stratégiques, ou de déterminer une gamme de paramètres adaptée à différents environnements de marché.
Cette stratégie peut être optimisée dans les domaines suivants:
Évaluer la cohérence entre deux signaux stratégiques, étudier leur correspondance sous différents paramètres et déterminer la meilleure combinaison de paramètres.
Tester les performances de la stratégie sur différentes variétés et périodes afin de déterminer la meilleure portée.
Il est possible d’envisager de remplacer la stratégie des moyennes mobiles doubles par d’autres indicateurs, tels que l’indicateur KDJ, pour enrichir le portefeuille de stratégies.
Ajout de mécanismes de stop-loss pour contrôler les risques, par exemple en définissant un stop-loss de retrait maximal.
Cette stratégie combine les stratégies des moyennes mobiles doubles et des indicateurs de Williams, tout en respectant le suivi des tendances et la capture des signaux de courte ligne. L’optimisation des paramètres permet de s’adapter à un plus large éventail d’environnements de marché.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 20/06/2019
// 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 oscillator as a histogram where blue denotes
// periods suited for buying and red . for selling. If the current value
// of AO (Awesome Oscillator) is above previous, the period is considered
// suited for buying and the period is marked blue. If the AO value is not
// above previous, the period is considered suited for selling and the
// indicator marks it as red.
// You can make changes in the property for set calculating strategy MA, EMA, WMA
//
// 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
BillWilliamsAC(nLengthSlow, nLengthFast,nLengthMA, nLengthEMA, nLengthWMA, bShowWMA, bShowMA, bShowEMA) =>
pos = 0
xSMA1_hl2 = sma(hl2, nLengthFast)
xSMA2_hl2 = sma(hl2, nLengthSlow)
xSMA1_SMA2 = xSMA1_hl2 - xSMA2_hl2
xSMA_hl2 = sma(xSMA1_SMA2, nLengthFast)
nRes = xSMA1_SMA2 - xSMA_hl2
xResWMA = wma(nRes, nLengthWMA)
xResMA = sma(nRes, nLengthMA)
xResEMA = ema(nRes, nLengthEMA)
xSignalSeries = iff(bShowWMA, xResWMA,
iff(bShowMA, xResMA,
iff(bShowEMA, xResEMA, na)))
cClr = nRes > nRes[1] ? blue : red
pos := iff(xSignalSeries[2] < 0 and xSignalSeries[1] > 0, 1,
iff(xSignalSeries[2] > 0 and xSignalSeries[1] < 0, -1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal & Bill Williams. Awesome Oscillator (AC) with Signal Line", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
nLengthSlow = input(34, minval=1, title="Length Slow")
nLengthFast = input(5, minval=1, title="Length Fast")
nLengthMA = input(15, minval=1, title="MA")
nLengthEMA = input(15, minval=1, title="EMA")
nLengthWMA = input(15, minval=1, title="WMA")
bShowWMA = input(type=bool, defval=true, title="Show and trading WMA")
bShowMA = input(type=bool, defval=false, title="Show and trading MA")
bShowEMA = input(type=bool, defval=false, title="Show and trading EMA")
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posBillWilliamsAC = BillWilliamsAC(nLengthSlow, nLengthFast,nLengthMA, nLengthEMA, nLengthWMA, bShowWMA, bShowMA, bShowEMA)
pos = iff(posReversal123 == 1 and posBillWilliamsAC == 1 , 1,
iff(posReversal123 == -1 and posBillWilliamsAC == -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 ? red: possig == 1 ? green : blue )