Stratégie de combinaison multifactorielle de momentum et de retournement


Date de création: 2023-10-23 15:11:20 Dernière modification: 2023-10-23 15:11:20
Copier: 0 Nombre de clics: 700
1
Suivre
1617
Abonnés

Stratégie de combinaison multifactorielle de momentum et de retournement

Aperçu

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é.

L’analyse des principes

Cette stratégie est composée de deux sous-stratégies:

  1. 123 stratégies de retour

    • L’indicateur stochastique à 9 jours pour détecter les surachats
    • Si le cours de clôture est en hausse pendant 2 jours consécutifs et que le stochastique est en dessous de 50, faites plus
    • Si le cours de clôture est en baisse pendant 2 jours consécutifs et que le stochastique est supérieur à 50, faire un shorting
  2. Stratégie de valeur absolue du CMO

    • Calculer la valeur absolue du CMO
    • Si la valeur absolue du CMO est supérieure à 70, il considère qu’il est en sur-achat et fait un short.
    • Si la valeur absolue est inférieure à 20, le CMO considère qu’il est en survente et fait plus

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.

Analyse des avantages

Cette stratégie présente les avantages suivants:

  1. Un modèle multifacteur, combinant dynamique et inversion, qui s’adapte à différents environnements de marché

  2. Le CMO est capable d’identifier les tendances, le stochastique est précis sur les inflexions

  3. Ne négociez que lorsque les deux signaux correspondent, évitez les faux signaux et augmentez la probabilité de gagner

  4. L’optimisation des paramètres est large et peut être ajustée pour différentes variétés et cycles

  5. La combinaison d’indicateurs à long et à court terme permet de découvrir plus d’opportunités de trading

  6. Les règles sont simples, claires, faciles à comprendre et adaptées aux transactions algorithmiques.

Analyse des risques

Cette stratégie présente également les risques suivants:

  1. Il existe une probabilité que la sous-stratégie émette un signal erroné et des paramètres doivent être optimisés

  2. Les événements inattendus entraînent un renversement de tendance et entraînent des pertes plus importantes

  3. La fréquence des transactions peut être trop élevée et le coût des transactions est un facteur à prendre en compte.

  4. Les sous-stratégies sont toutes des indicateurs de retard, avec un problème de retard de temps

  5. Paramètres à ajuster pour différentes variétés, exigences d’optimisation des paramètres plus élevées

La réponse:

  1. Optimisation des paramètres de la sous-stratégie pour réduire la probabilité d’erreur de signal

  2. Il y a un arrêt de perte et un contrôle des pertes.

  3. Modifier les conditions d’ouverture des positions et réduire la fréquence des transactions

  4. Utiliser des données de tick en temps réel pour réduire le retard

  5. Optimiser automatiquement les paramètres à l’aide de l’apprentissage automatique

Direction d’optimisation

Cette stratégie peut être optimisée dans les domaines suivants:

  1. L’introduction d’autres facteurs, tels que la volatilité, la quantité, etc., pour former un modèle multifonctionnel systématique

  2. Construire des mécanismes d’optimisation des paramètres dynamiques et d’ajuster les paramètres en fonction des conditions du marché

  3. Optimisation de la logique d’ouverture des positions, introduction de méthodes telles que le probabilité et le lissage des indices

  4. Couverture des positions à long terme dans le court terme pour atteindre un double objectif

  5. Utiliser l’apprentissage en profondeur pour extraire plus de fonctionnalités et créer des règles de transaction non linéaires

  6. Découvrez les modèles sans paramètres et évitez les biais induits par les paramètres de sélection artificielle

  7. Combinaison de données à haute fréquence et d’événements d’actualité pour réduire le retard de signal

Résumer

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.

Code source de la stratégie
/*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 )