Stratégies de trading basées sur le taux de variation


Date de création: 2023-09-28 11:26:44 Dernière modification: 2023-09-28 11:26:44
Copier: 1 Nombre de clics: 642
1
Suivre
1617
Abonnés

Aperçu

Cette stratégie permet de déterminer le moment de l’achat et de la vente en calculant le taux de variation sur une période donnée. Elle aide les traders à saisir les opportunités de fluctuations de prix à court terme.

Principe de stratégie

Cette stratégie est basée sur les indicateurs suivants:

  1. Moyenne mobile simple et rapide ((14 jours par défaut): tendance à court terme utilisée pour juger des prix
  2. Moyenne mobile simple et lente ((100 jours par défaut): utilisation pour déterminer les tendances à long terme des prix
  3. Moyenne mobile simple de référence ((par défaut 30 jours): utilisé pour déterminer la direction générale des achats et des ventes
  4. Taux de variation: mesure de la variation des prix en calculant les variations des prix les plus élevés et les plus bas au cours d’une période donnée dans le passé (la ligne K par défaut)

Règles spécifiques à l’achat:

  1. Les prix sont inférieurs à la moyenne mobile simple de référence
  2. Taux de variation plus élevé que le seuil de faible variation défini (défaut de 2,3%)
  3. Les courbes peuvent se croiser si les SMA sont rapides à la hausse et lents à la baisse

Les règles de vente sont les suivantes:

  1. Les prix sont supérieurs à la moyenne mobile simple de référence
  2. Taux de variation supérieur au seuil de variation élevé défini (défault de 4,7%)
  3. Les prix ont augmenté de 3 lignes K
  4. Actuellement rentable
  5. Le SMA rapide est supérieur au SMA lent.

La taille de la commande est définie en pourcentage du total des droits de participation (par défaut 96%), ce qui permet de fournir un effet de levier.

Analyse des forces stratégiques

Les principaux avantages de cette stratégie sont les suivants:

  1. Le taux de variation est utilisé pour juger de la volatilité et saisir les opportunités d’augmentation ou de baisse rapide des prix à court terme pour obtenir des rendements plus élevés.
  2. En combinant les tendances des SMA, il est possible de saisir avec plus de précision le moment de la baisse ou de la hausse.
  3. En définissant le SMA de référence comme un guide général, vous pouvez éviter d’être induit en erreur par les courts courants indiqués par les prix.
  4. L’utilisation de la traçabilité des arrêts de perte pour la localisation des bénéfices et la gestion des risques.
  5. La taille des commandes a un effet de levier qui peut augmenter les bénéfices.

Dans l’ensemble, la stratégie utilise des outils tels que le taux de variation des prix et les indicateurs SMA pour obtenir de meilleures performances dans des conditions de volatilité.

Analyse des risques

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

  1. Les paramètres de taux de variation et de SMA mal configurés peuvent entraîner des signaux de trading erronés ou erronés. Les paramètres doivent être ajustés pour différents marchés.

  2. La taille de la commande au-delà de la convention augmente le risque. Il est recommandé d’optimiser le ratio de commande au cours de la phase de test.

  3. Suivre le stop-loss peut être prématuré en cas de tremblement de terre. Vous pouvez envisager d’ajuster le stop-loss.

  4. La stratégie de transactionsstab est sujette à l’arbitrage. Elle doit être combinée avec un jugement de tendance et une gestion des risques de stop loss.

  5. Le risque d’adéquation des données de retracement. La robustesse de la stratégie devrait être vérifiée en laboratoire plusieurs fois dans différents marchés.

Ces risques peuvent être maîtrisés par l’optimisation des paramètres, l’ajustement des commandes, l’optimisation des stratégies de stop loss et la vérification en temps réel.

Orientation de l’optimisation de la stratégie

La stratégie peut également être optimisée pour:

  1. Ajout d’autres indicateurs techniques tels que le taux de fluctuation, le volume de transactions, etc. pour améliorer la précision du signal.

  2. Optimiser le nombre de transactions afin de réduire l’impact des transactions stab en réduisant leur fréquence.

  3. En combinaison avec une stratégie de rupture, un signal de rupture est mis en place à proximité des niveaux de prix critiques.

  4. Optimiser automatiquement les paramètres en utilisant des méthodes d’apprentissage automatique.

  5. La robustesse de la stratégie est testée sur plusieurs marchés sur plusieurs périodes de temps, afin d’améliorer l’adaptabilité.

  6. Il faut prendre en compte les caractéristiques des différentes variétés, telles que les actions, les devises, etc., et définir un ensemble de paramètres spécifiques.

  7. Les signaux stratégiques et les méthodes de contrôle des risques sont optimisés de manière itérative en fonction des résultats du marché.

Résumer

Cette stratégie utilise le taux de variation et les indicateurs SMA pour rechercher des opportunités de négociation dans les fluctuations de prix à courte ligne. Elle est propice à la capture de tendances rapides, mais nécessite également une attention particulière au contrôle des risques. La robustesse et l’adaptabilité de la stratégie peuvent être continuellement améliorées grâce à l’optimisation des paramètres, à l’ajustement des ordres, à l’amélioration de la stratégie de stop loss et à la vérification en laboratoire.

Code source de la stratégie
/*backtest
start: 2022-09-21 00:00:00
end: 2023-09-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// @version=4
// Author: Sonny Parlin (highschool dropout)
// Best if run on 5m timeframe
strategy(shorttitle="ROC+Strategy", title="Rate of Change Strategy",
                                      overlay=true,  currency=currency.USD,
                                      initial_capital=10000)

// Inputs and variables
ss = input(14, minval=10, maxval=50, title="SMA Fast (days)")
ff = input(100, minval=55, maxval=200, title="SMA Slow (days)")
ref = input(30, minval=20, maxval=50, title="SMA Reference (days)")
lowOffset = input(0.023, "ROC Low (%)", minval=0, step=0.01)
highOffset = input(0.047, "ROC High (%)", minval=0, step=0.01)
orderStake = input(0.96, "Order Stake (%)", minval=0, step=0.01)
lookback = input(12, "Lookback Candles", minval=1, step=1) 

// SMA
smaFast = sma(close, ss)
smaSlow = sma(close, ff)
smaRef = sma(close, ref)
ROC = (max(close[lookback],close) - min(close[lookback],close)) / max(close[lookback],close)

// Set up SMA plot but don't show by default
plot(smaFast, "smaFast", color=#00ff00, display = 0)
plot(smaSlow, "smaSlow", color=#ff0000, display = 0)
plot(smaRef, "smaRef", color=#ffffff, display = 0)

// The buy stratey:
// Guard that the low is under our SMA Reference line 
// Guard that the rate of change over the lookback period is greater than our 
// ROC lowOffset %, default is 0.023. (low < smaRef) and (ROC > lowOffset)
// SMA fast is on the rise and SMA slow is falling and they are very likely
// to cross. (rising(smaFast,1)) and (falling(smaSlow, 1)) 
enterLong = (low < smaRef) and (ROC > lowOffset) and (rising(smaFast,1)) and (falling(smaSlow,1)) 

// The sell Strategy:
// Guard that close is higher than our SMA reference line and that the rate of 
// change over the lookback period is greater than our highOffset %, default
// is 0.047. (close > smaRef) and (ROC > highOffset)
// Guard that close has risen by 3 candles in a row (rising(close,3)) 
// Guard that we currently have profit (strategy.openprofit > 0)
// Guard that SMA fast is higher than smaSlow (smaFast > smaSlow)
// If it keeps going up past our close position the trailing stoploss will kick in!
enterShort = (close > smaRef) and (ROC > highOffset) and (rising(close,3)) and (strategy.openprofit > 0) and (smaFast > smaSlow)

// Order size is based on total equity
// Example 1:
// startingEquity = 2000
// close = 47434.93
// orderStake = 0.45
// (2,000 × orderStake) / close = orderSize = 0.0189733599 = approx $900

// Example 2:
// startingEquity = 2000
// close = 1.272
// orderStake = 0.45
// (startingEquity × orderStake) / close = orderSize = 707.5471698113 = approx $900
orderSize = (strategy.equity * orderStake) / close

// Trailing Stoploss
// I'm using 2.62 as my default value, play with this for different results.
longTrailPerc = input(title="Trailing Stoploss (%)",
     type=input.float, minval=0.0, step=0.1, defval=3.62) * 0.01
     
longStopPrice = 0.0

longStopPrice := if (strategy.position_size > 0)
    stopValue = close * (1 - longTrailPerc)
    max(stopValue, longStopPrice[1])
else
    0

if (enterLong)
    strategy.entry("Open Long Position", strategy.long, orderSize, when=strategy.position_size <= 0)
    
if (enterShort)
    strategy.exit(id="Close Long Position", stop=longStopPrice)


//plot(strategy.equity)