Stratégie de négociation intégrée basée sur la stratégie multipla

Auteur:ChaoZhang est là., Date: 2024-01-03 16h51'03
Les étiquettes:

img

Résumé

Cette stratégie réalise des décisions de trading plus stables et efficaces en intégrant des signaux de trading binaires. L'une est la stratégie d'inversion combinant des signaux de renversement de prix et des indicateurs stochastiques, et l'autre est la stratégie de rupture de la ligne centrale et du canal de prix. Les signaux de trading des deux stratégies seront logiquement ANDés, c'est-à-dire que la position ne sera ouverte que lorsque les deux stratégies émettent des signaux dans le même sens en même temps. Ce type d'intégration multi-stratégie peut filtrer certains signaux invalides et obtenir des décisions de trading plus fiables.

Principe de stratégie

La partie de la stratégie d'inversion génère des signaux de trading lorsque le prix montre un schéma d'inversion pendant deux jours de négociation consécutifs et que l'indicateur stochastique est entré dans la zone de surachat ou de survente. Cela permet d'utiliser à la fois des signaux d'inversion de prix et des signaux de surachat / survente pour une double confirmation.

Les deux stratégies capturent respectivement des opportunités de valeur et de tendance. En ANDant logiquement les signaux de stratégie, la position n'est ouverte que lorsque les deux stratégies émettent des signaux dans le même sens en même temps. Cela peut filtrer efficacement certains signaux invalides et rendre la stratégie finale plus fiable.

Analyse des avantages

Le plus grand avantage de cette stratégie est la stabilité et la fiabilité des signaux. La combinaison de stratégies d'inversion et de tendance capte les opportunités de trading d'inversion et de tendance en même temps sans manquer de mouvements majeurs. Pendant ce temps, l'opération logique AND filtre certains signaux invalides, rendant la stratégie finale plus fiable et évite d'être trompée par le bruit.

En outre, la combinaison de stratégies d'inversion et de tendance permet également d'obtenir des opérations stables dans plusieurs délais. La stratégie d'inversion utilise des signaux de surachat/survente à court terme tandis que la stratégie de centre de gravité est basée sur des moyennes mobiles à moyen et long terme. Les délais complémentaires peuvent générer des opportunités de trading soutenues et stables.

Analyse des risques

Le plus grand risque de cette stratégie est l'échec de l'appariement des signaux des stratégies doubles, ce qui conduit à des signaux de trading insuffisants. Cela peut se produire lorsque le prix est limité et se consolide sans tendance directionnelle claire. Lorsque le prix oscille dans un motif latéral pendant une période prolongée, il est difficile de générer des signaux d'inversion et des signaux de tendance, ce qui entraîne moins d'opportunités de trading.

En outre, le fonctionnement logique et des stratégies doubles peut également manquer certaines opportunités d'une seule stratégie. Lorsque seule une stratégie génère un signal de trading valide, aucune position ne sera ouverte. Cela pourrait entraîner certains coûts d'opportunité.

Pour atténuer les risques, les paramètres pourraient être modérément assouplis afin de faciliter l'appariement des signaux stratégiques et l'ouverture de positions.

Directions d'optimisation

Il existe deux dimensions principales dans lesquelles cette stratégie pourrait être optimisée:

La première est l'optimisation des paramètres. Les paramètres, y compris ceux des indicateurs de Stoch et des canaux de ligne centrale, peuvent être testés et optimisés pour obtenir des signaux plus alignés.

Deuxièmement, introduire des mécanismes similaires aux opérations de sélection des actions. Parce que cette stratégie est plus adaptée aux actions présentant des tendances claires. Par conséquent, si les actions répondant à certaines conditions peuvent être sélectionnées pour le commerce en fonction d'indicateurs spécifiques, cela améliorerait considérablement les performances globales de la stratégie. Cela nécessite la conception d'un module de sélection des actions combiné avec les tendances de rotation de l'industrie, les systèmes de moyennes mobiles, etc.

Résumé

Cette stratégie permet d'obtenir une double confirmation et une correspondance multi-temporelle des décisions de trading en intégrant des stratégies d'inversion et de tendance, tout en faisant face au problème de la réduction des opportunités de trading en raison de la difficulté de correspondance des signaux.


/*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 )

Plus de