Stratégie de backtesting du canal STARC


Date de création: 2023-12-05 14:52:20 Dernière modification: 2023-12-05 14:52:20
Copier: 0 Nombre de clics: 667
1
Suivre
1619
Abonnés

Stratégie de backtesting du canal STARC

Aperçu

La stratégie de rétro-mesure de la chaîne STARC est une stratégie de négociation quantitative basée sur l’indicateur STARC. La stratégie permet de générer des signaux de transaction de rupture d’achat et de rupture de vente en construisant une chaîne ascendante et descendante STARC.

Principe de stratégie

Le cœur de la stratégie de suivi des canaux STARC est l’indicateur STARC.

  • Ligne de référence: moyenne mobile simple à n jours SMA
  • En haut de la trajectoire: SMA + K × amplitude réelle moyenne ATR
  • En bas de la piste: SMA - K × ATR

Un signal d’achat est généré lorsque le prix de clôture est supérieur à la barre supérieure; un signal de vente est généré lorsque le prix de clôture est inférieur à la barre inférieure.

La stratégie calcule quotidiennement les hauts et les bas de la chaîne STARC et détermine si le prix de clôture a franchi la trajectoire ascendante et descendante pour générer un signal de transaction. En même temps, la stratégie définit des paramètres d’inversion qui peuvent être modifiés entre les positions longues et les positions vides pour s’adapter aux différentes conditions du marché.

Analyse des avantages

Les avantages de la détection des canaux STARC sont les suivants:

  1. Les résultats de la recherche ont été très positifs, notamment en utilisant les indicateurs STARC pour construire un canal ascendant et descendant.
  2. le système de commutation de stockage à vide intégré, qui peut s’adapter à de multiples environnements de marché;
  3. Les paramètres sont réglés de manière flexible, les valeurs K et la longueur moyenne de la ligne peuvent être ajustées et optimisées.
  4. Les règles de la stratégie sont claires et compréhensibles, et elles sont faciles à appliquer.
  5. Les indicateurs visuels permettent d’évaluer intuitivement la position du marché.

Analyse des risques

La stratégie de détection des canaux STARC comporte également des risques:

  1. L’indicateur STARC est souvent utilisé pour les transactions sur des lignes moyennes et longues, et peut ne pas être très efficace à court terme.
  2. Les transactions de rupture sont faciles à piéger et nécessitent un arrêt strict des pertes.
  3. Une mauvaise configuration des paramètres de retournement peut entraîner des transactions trop fréquentes;
  4. Une mauvaise optimisation des paramètres peut entraîner une adéquation des courbes.

Les mesures suivantes sont nécessaires pour prévenir les risques:

  1. Choisir un cycle de négociation approprié, tel que le cycle de la ligne du jour ou du jour;
  2. mettre en place des positions de stop-loss raisonnables pour maîtriser les pertes individuelles;
  3. Réglez prudemment les paramètres de retournement afin d’éviter les changements de position fréquents.
  4. Optimisation des paramètres multicomposés pour éviter les surappariements.

Direction d’optimisation

Les principaux axes d’optimisation de la stratégie de détection des canaux STARC sont les suivants:

  1. Paramètres d’optimisation: ajustement des paramètres tels que la longueur moyenne des lignes, les valeurs K et les cycles ATR pour trouver la combinaison optimale de paramètres;
  2. ajouter un mécanisme de stop-loss: mettre en place un stop-loss mobile, un stop-loss temporel, un stop-loss en pourcentage, etc. pour contrôler le risque;
  3. En combinaison avec d’autres indicateurs: ajouter des indicateurs tels que le volume de transactions, les bandes de Brin pour filtrer et améliorer l’efficacité;
  4. Paramètres d’ajustement dynamique: optimiser automatiquement les paramètres d’ajustement en fonction des changements du marché, améliorer la stabilité.

Ces orientations d’optimisation permettent d’améliorer la rentabilité et la stabilité d’une stratégie tout en maîtrisant les risques.

Résumer

La stratégie de retracement de la chaîne STARC fonctionne bien dans l’ensemble, permettant de réaliser des transactions de rupture de la ligne médiane et longue sur la base de l’indicateur STARC. L’avantage de la stratégie est que l’utilisation de la chaîne STARC génère une stabilité du signal de transaction, tout en mettant en place un mécanisme de retournement qui peut s’adapter aux changements du marché.

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

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 23/04/2018
// A type of technical indicator that is created by plotting two bands around 
// a short-term simple moving average (SMA) of an underlying asset's price. 
// The upper band is created by adding a value of the average true range 
// (ATR) - a popular indicator used by technical traders - to the moving average. 
// The lower band is created by subtracting a value of the ATR from the SMA.
// STARC is an acronym for Stoller Average Range Channels. The indicator is 
// named after its creator, Manning Stoller.
//
// You can change long to short in the Input Settings
// WARNING:
//  - For purpose educate only
//  - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="STARC Bands Backtest", overlay = true)
LengthMA = input(5, minval=1)
LengthATR = input(15, minval=1)
K = input(1.33, minval=0.01, step = 0.01)
reverse = input(false, title="Trade reverse")
xMA = sma(close, LengthMA)
xATR = atr(LengthATR)
xSTARCBandUp = xMA + xATR * K
xSTARCBandDn = xMA - xATR * K
pos = iff(close > xSTARCBandUp, 1,
       iff(close < xSTARCBandDn, -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(xMA, color=blue, title="MA")
plot(xSTARCBandUp, color = green, title="UpBand")
plot(xSTARCBandDn, color=red, title="DnBand")