Stratégie de trading de retournement et de centre de gravité basée sur l'intégration multi-stratégie


Date de création: 2024-01-03 16:51:03 Dernière modification: 2024-01-03 16:51:03
Copier: 1 Nombre de clics: 599
1
Suivre
1621
Abonnés

Stratégie de trading de retournement et de centre de gravité basée sur l’intégration multi-stratégie

Aperçu

Cette stratégie permet de prendre des décisions commerciales plus stables et plus efficaces en intégrant des signaux de double négociation. La première est une stratégie de renversement combinant des signaux de retour de prix et des indicateurs aléatoires, et la seconde est une stratégie de rupture de la ligne centrale avec des canaux de prix. Les signaux de négociation des deux stratégies font de la logique et de l’exploitation, c’est-à-dire que les deux stratégies n’ouvrent la position que lorsqu’elles émettent des signaux simultanément. Cette intégration multi-stratégique peut filtrer certains signaux inefficaces et permettre des décisions commerciales plus fiables.

Principe de stratégie

Dans la partie stratégie de revers, un signal de transaction est généré lorsque le prix a été inversé pendant deux jours de négociation consécutifs et que l’indicateur aléatoire est entré dans la zone de surachat et de survente. Cela permet une double confirmation en utilisant à la fois le signal de revers de valeur et le signal de surachat et de survente.

Les deux stratégies capturent respectivement les opportunités de valeur et de tendance. Les positions sont ouvertes lorsque les deux stratégies émettent simultanément des signaux isocellulaires. Cela permet de filtrer efficacement certains signaux inefficaces, ce qui rend la stratégie finale plus fiable.

Analyse des avantages

Le plus grand avantage de cette stratégie est la stabilité et la fiabilité du signal. La combinaison de la stratégie de renversement et de la stratégie de tendance, tout en tenant compte des deux grandes opportunités de transaction de renversement et de tendance, ne manquera aucun grand événement. La logique et les opérations filtrent certains signaux inefficaces, rendant la stratégie finale plus fiable et évitant d’être trompée par le bruit.

En outre, la combinaison de la stratégie de renversement et de la stratégie de tendance permet également une opération stable dans plusieurs périodes. La stratégie de renversement utilise des signaux de survente à court terme pour générer des surventes. La stratégie de centre de gravité est basée sur la moyenne moyenne et la moyenne longue, et les périodes sont complémentaires et peuvent générer des opportunités de négociation stables et durables.

Analyse des risques

Le plus grand risque de cette stratégie réside dans le fait que les signaux de la double stratégie ne peuvent pas se correspondre, ce qui entraîne l’impossibilité de générer suffisamment de signaux de négociation. Cela peut se produire lorsque les actions sont alignées horizontalement. Lorsque les prix sont en mouvement pendant une longue période et qu’il n’y a pas de direction évidente, les signaux de revers et les signaux de tendance ne sont pas faciles à générer, ce qui réduit les opportunités de négociation.

En outre, la logique et le calcul de la double stratégie peuvent également manquer une partie de l’opportunité d’une seule stratégie. Il n’est pas possible d’ouvrir une position lorsque seule une stratégie génère un signal de transaction efficace. Cela peut entraîner un certain coût d’opportunité.

Pour réduire le risque, il est possible d’assouplir certains paramètres de manière appropriée, ce qui rend les signaux stratégiques plus faciles à faire correspondre et donc à ouvrir des positions. Il est également possible d’envisager d’introduire un mécanisme de sélection d’actions, en choisissant des titres plus tendance à être négociés pour obtenir plus d’opportunités de négociation.

Direction d’optimisation

La suite de cette stratégie peut principalement être optimisée à partir de deux dimensions:

Tout d’abord, l’optimisation des paramètres. Les paramètres de l’indicateur stoch aléatoire, les paramètres du canal central, etc. peuvent être testés et optimisés pour obtenir des signaux plus compatibles. Cela peut être réalisé par plus de retours.

Ensuite, l’introduction d’un mécanisme similaire à celui de la sélection des actions. Comme cette stratégie est plus adaptée aux titres ayant une tendance évidente, il est possible d’améliorer considérablement la performance globale de la stratégie en choisissant les titres éligibles en fonction de certains indicateurs. Cela nécessite une combinaison de rotations de l’industrie, de systèmes linéaires et d’autres méthodes pour concevoir le module de sélection des actions.

Résumer

Cette stratégie permet la double confirmation des décisions de négociation et la correspondance de plusieurs périodes grâce à l’intégration de la stratégie de revers et de la stratégie de tendance. Il existe également des problèmes de difficultés de correspondance de signaux qui réduisent les opportunités de négociation. L’optimisation de la prochaine étape peut être effectuée à partir de deux niveaux de combinaison de paramètres et de modules pour obtenir une performance stratégique plus forte et plus stable.

Code source de la stratégie
/*backtest
start: 2023-12-03 00:00:00
end: 2024-01-02 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 18/07/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
// The indicator is based on moving averages. On the basis of these, the 
// "center" of the price is calculated, and price channels are also constructed, 
// which act as corridors for the asset quotations.
//
// 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

CenterOfGravity(Length, m,Percent, SignalLine) =>
    pos = 0
    xLG = linreg(close, Length, m)
    xLG1r = xLG + ((close * Percent) / 100)
    xLG1s = xLG - ((close * Percent) / 100)
    xLG2r = xLG + ((close * Percent) / 100) * 2
    xLG2s = xLG - ((close * Percent) / 100) * 2
    xSignalR = iff(SignalLine == 1, xLG1r, xLG2r)
    xSignalS = iff(SignalLine == 1, xLG1s, xLG2s)
    pos :=  iff(close > xSignalR, 1,
             iff(close < xSignalS, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Center Of Gravity", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthCoF = input(20, minval=1)
m = input(5, minval=0)
Percent = input(1, minval=0)
SignalLine = input(1, minval=1, maxval = 2, title = "Trade from line (1 or 2)")
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(LengthCoF, KSmoothing, DLength, Level)
posCenterOfGravity = CenterOfGravity(Length, m,Percent, SignalLine)
pos = iff(posReversal123 == 1 and posCenterOfGravity == 1 , 1,
	   iff(posReversal123 == -1 and posCenterOfGravity == -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 )