
Cette stratégie utilise un modèle multi-facteurs en combinant l’indicateur de dynamique CMO et l’indicateur stochastique pour explorer les opportunités de négociation dans différents environnements de marché.
Cette stratégie est composée de deux sous-stratégies:
123 stratégies de retour
Stratégie de valeur absolue du CMO
Finalement, un signal de transaction est émis si les deux signaux de sous-stratégie sont identiques.
Cette stratégie tire parti des avantages de l’indicateur de dynamique CMO et de l’indicateur de revers Stochastic. Le CMO est plus à même d’identifier les tendances, tandis que Stochastic est plus à même de détecter les opportunités de revers à court terme.
Cette stratégie présente les avantages suivants:
Un modèle multifacteur, combinant dynamique et inversion, qui s’adapte à différents environnements de marché
Le CMO est capable d’identifier les tendances, le stochastique est précis sur les inflexions
Ne négociez que lorsque les deux signaux correspondent, évitez les faux signaux et augmentez la probabilité de gagner
L’optimisation des paramètres est large et peut être ajustée pour différentes variétés et cycles
La combinaison d’indicateurs à long et à court terme permet de découvrir plus d’opportunités de trading
Les règles sont simples, claires, faciles à comprendre et adaptées aux transactions algorithmiques.
Cette stratégie présente également les risques suivants:
Il existe une probabilité que la sous-stratégie émette un signal erroné et des paramètres doivent être optimisés
Les événements inattendus entraînent un renversement de tendance et entraînent des pertes plus importantes
La fréquence des transactions peut être trop élevée et le coût des transactions est un facteur à prendre en compte.
Les sous-stratégies sont toutes des indicateurs de retard, avec un problème de retard de temps
Paramètres à ajuster pour différentes variétés, exigences d’optimisation des paramètres plus élevées
La réponse:
Optimisation des paramètres de la sous-stratégie pour réduire la probabilité d’erreur de signal
Il y a un arrêt de perte et un contrôle des pertes.
Modifier les conditions d’ouverture des positions et réduire la fréquence des transactions
Utiliser des données de tick en temps réel pour réduire le retard
Optimiser automatiquement les paramètres à l’aide de l’apprentissage automatique
Cette stratégie peut être optimisée dans les domaines suivants:
L’introduction d’autres facteurs, tels que la volatilité, la quantité, etc., pour former un modèle multifonctionnel systématique
Construire des mécanismes d’optimisation des paramètres dynamiques et d’ajuster les paramètres en fonction des conditions du marché
Optimisation de la logique d’ouverture des positions, introduction de méthodes telles que le probabilité et le lissage des indices
Couverture des positions à long terme dans le court terme pour atteindre un double objectif
Utiliser l’apprentissage en profondeur pour extraire plus de fonctionnalités et créer des règles de transaction non linéaires
Découvrez les modèles sans paramètres et évitez les biais induits par les paramètres de sélection artificielle
Combinaison de données à haute fréquence et d’événements d’actualité pour réduire le retard de signal
La stratégie utilise le CMO de l’indicateur de dynamique et le Stochastic de l’indicateur d’inversion pour réaliser des modèles multifonctionnels afin d’explorer davantage d’opportunités de négociation dans les marchés traversants. Par rapport à un seul indicateur, la combinaison de facteurs multifonctionnels peut s’adapter à un environnement de marché plus complexe.
/*backtest
start: 2023-09-22 00:00:00
end: 2023-10-22 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 17/09/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 absolute value of CMO. CMO was developed by Tushar
// Chande. A scientist, an inventor, and a respected trading system developer,
// Mr. Chande developed the CMO to capture what he calls "pure momentum". For
// more definitive information on the CMO and other indicators we recommend the
// book The New Technical Trader by Tushar Chande and Stanley Kroll.
// The CMO is closely related to, yet unique from, other momentum oriented indicators
// such as Relative Strength Index, Stochastic, Rate-of-Change, etc. It is most closely
// related to Welles Wilder`s RSI, yet it differs in several ways:
// - It uses data for both up days and down days in the numerator, thereby directly
// measuring momentum;
// - The calculations are applied on unsmoothed data. Therefore, short-term extreme
// movements in price are not hidden. Once calculated, smoothing can be applied to
// the CMO, if desired;
// - The scale is bounded between +100 and -100, thereby allowing you to clearly see
// changes in net momentum using the 0 level. The bounded scale also allows you to
// conveniently compare values across different securities.
//
// 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
CMOabs(Length, TopBand, LowBand) =>
pos = 0
xMom = abs(close - close[1])
xSMA_mom = sma(xMom, Length)
xMomLength = close - close[Length]
nRes = abs(100 * (xMomLength / (xSMA_mom * Length)))
pos := iff(nRes > TopBand, -1,
iff(nRes < LowBand, 1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal & CMOabs", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthCMO = input(9, minval=1)
TopBand = input(70, minval=1)
LowBand = input(20, maxval=0)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posCMOabs = CMOabs(LengthCMO, TopBand, LowBand)
pos = iff(posReversal123 == 1 and posCMOabs == 1 , 1,
iff(posReversal123 == -1 and posCMOabs == -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 )