Voici un article que j’ai essayé d’écrire à la suite de votre demande:
Cette stratégie utilise une combinaison de la stratégie de retournement de forme 123 et de la stratégie d’indicateur de force baissière, qui génère un signal de transaction lorsqu’un signal de plus ou de moins apparaît simultanément, et fait partie de la stratégie de trading de retournement de rupture.
La stratégie est composée de deux volets:
Lorsque le cours de clôture a franchi la hausse le troisième jour après une baisse de 2 jours consécutifs et que l’indicateur de stoch bas a généré un signal d’achat lors d’une reprise du bas; lorsque le cours de clôture a franchi la baisse le troisième jour après une hausse de 2 jours consécutifs et que l’indicateur de stoch élevé a généré un signal de vente lors d’une reprise du haut.
L’indicateur de force de poussée reflète le contraste de force de la pluralité. Il génère un signal de vente lorsque l’indicateur est supérieur à la limite de vente définie et un signal d’achat lorsque l’indicateur est inférieur à la limite de achat définie.
Dans le cas d’un signal synthétique, si les deux donnent un signal synchrone, le signal de transaction réel est généré.
La combinaison de signaux de retour et de filtrage de l’indicateur permet d’éviter les fausses percées et d’améliorer la qualité du signal.
La flexibilité de l’opérateur pour s’adapter à différentes conditions de marché et à des cycles de temps différents.
Les stratégies composantes peuvent être utilisées séparément ou en combinaison. Les stratégies sont conçues en modules.
Les signaux de retournement peuvent avoir une plus grande profondeur de retour.
Les paramètres de l’indicateur de force de poussée doivent être testés et optimisés à plusieurs reprises.
L’optimisation des paramètres de la stratégie globale multifactorielle est complexe et nécessite de nombreux tests de données historiques.
Le module de quantification join connecte plus de sources de données pour obtenir des données plus riches sur une période plus longue.
Appliquer des méthodes d’apprentissage automatique pour rechercher et évaluer des combinaisons de paramètres.
Augmentation des mécanismes de prévention des pertes pour contrôler les pertes individuelles.
Cette stratégie utilise des techniques d’analyse et de quantification de l’inverse pour améliorer la qualité du signal grâce à la double confirmation. Elle est hautement modulaire, évolutive et pratique. Elle peut ensuite être optimisée par l’introduction de moyens technologiques plus avancés pour s’adapter à un environnement de marché plus complexe.
/*backtest
start: 2023-11-13 00:00:00
end: 2023-11-20 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 29/05/2019
// This is combo strategies for get
// a cumulative signal. Result signal will return 1 if two strategies
// is long, -1 if all strategies is short and 0 if signals of strategies is not equal.
//
// 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
// Bear Power Indicator
// To get more information please see "Bull And Bear Balance Indicator"
// by Vadim Gimelfarb.
//
// 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
BearPower(SellLevel, BuyLevel) =>
value = iff (close < open ,
iff (close[1] > open , max(close - open, high - low), high - low),
iff (close > open,
iff(close[1] > open, max(close[1] - low, high - close), max(open - low, high - close)),
iff(high - close > close - low,
iff (close[1] > open, max(close[1] - open, high - low), high - low),
iff (high - close < close - low,
iff(close > open, max(close - low, high - close),open - low),
iff (close > open, max(close[1] - open, high - close),
iff(close[1] < open, max(open - low, high - close), high - low))))))
pos = 0.0
pos := iff(value > SellLevel, -1,
iff(value <= BuyLevel, 1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal & Bear Power", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
SellLevel = input(30)
BuyLevel = input(3)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posBearPower = BearPower(SellLevel, BuyLevel)
pos = iff(posReversal123 == 1 and posBearPower == 1 , 1,
iff(posReversal123 == -1 and posBearPower == -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 )