Stratégie de négociation de contre-test du centre de gravité

Auteur:ChaoZhang est là., Date: 2023-12-12 16:56:51 Je suis désolé
Les étiquettes:

img

Résumé

Le centre de gravité est une stratégie de trading basée sur des moyennes mobiles. Il calcule le centre du prix, c'est-à-dire la position du centre de gravité, et construit des canaux de prix comme des couloirs pour les cotations d'actifs.

Principe de stratégie

La stratégie calcule la position du centre de gravité à travers la fonction de régression linéaire. Plus précisément, elle calcule la valeur de régression linéaire du prix de clôture sur la période de longueur, qui est le centre du prix. Les canaux de prix sont ensuite construits en se déplaçant vers le haut et vers le bas % sur cette base. Les limites supérieure et inférieure du canal de prix servent de signaux longs et courts respectivement. Lorsque le prix traverse le rail supérieur, passez long; lorsque le prix traverse le rail inférieur, passez court. Le paramètre SignalLine est utilisé pour sélectionner si l'on utilise le premier canal ou les rails supérieurs et inférieurs du deuxième canal comme signaux de trading. Le paramètre inverse est utilisé pour inverser le long et le court.

Analyse des avantages

C' est une stratégie de rupture très simple avec les principaux avantages suivants:

  1. L'idée est claire et facile à comprendre et à mettre en œuvre.
  2. De bons résultats de backtest avec une certaine faisabilité pratique.
  3. Des paramètres flexibles pour s'adapter aux différents environnements du marché.
  4. Commercialisation à inversion configurable, adaptée à un fonctionnement bidirectionnel.

Analyse des risques

La stratégie comporte également certains risques:

  1. Les paramètres doivent être réoptimisés pour le trading en direct.
  2. Une évasion ratée peut entraîner des pertes importantes.
  3. La fréquence des transactions peut être relativement élevée, il est donc nécessaire de contrôler le ratio d'utilisation du capital.

Les risques peuvent être contrôlés en ajustant des paramètres tels que les bandes, la longueur, etc. Le stop loss peut également être réglé pour limiter la perte maximale.

Directions d'optimisation

La stratégie peut être encore optimisée de la manière suivante:

  1. Combinez avec des indicateurs de tendance pour filtrer les signaux et éviter de négocier contre la tendance.
  2. Ajoutez le mécanisme de stop loss.
  3. Optimiser les paramètres pour augmenter le taux de profit.
  4. Ajoutez le contrôle de position pour réduire le risque.

Résumé

La stratégie de trading de backtesting du centre de gravité est une stratégie de rupture simple. Elle possède une logique claire, une bonne faisabilité et des paramètres flexibles. En même temps, il existe également certains risques qui doivent être correctement optimisés et contrôlés. La stratégie convient comme stratégie de base pour le trading en direct et l'optimisation, et est également très adaptée pour les débutants.


/*backtest
start: 2023-11-11 00:00:00
end: 2023-12-11 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 15/03/2018
// 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.
//
// You can change long to short in the Input Settings
// WARNING:
//  - For purpose educate only
//  - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Center Of Gravity Backtest", shorttitle="CFO", overlay = true)
Length = 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")
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))) 
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)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue ) 
plot(xLG, color=blue, title="CFO")
plot(xLG1r, color=green, title="LG1r")
plot(xLG2r, color=green, title="LG2r")
plot(xLG1s, color=red, title="LG1s")
plot(xLG2s, color=red, title="LG2s")

Plus de