Stratégie de trading avec spread de volatilité sur deux axes temporels


Date de création: 2024-02-18 15:31:32 Dernière modification: 2024-02-18 15:31:32
Copier: 0 Nombre de clics: 608
1
Suivre
1617
Abonnés

Stratégie de trading avec spread de volatilité sur deux axes temporels

Aperçu

La stratégie de négociation de la différence de prix de la fluctuation du taux sur deux axes de temps permet de juger de la survente du marché en calculant la différence de prix entre les indicateurs RSI de deux périodes de temps différentes.

Principe de stratégie

Les indicateurs centraux de cette stratégie sont les courts et les longs Xtrender. Les courts Xtrender calculent la différence de prix RSI sur les courts et les longs Xtrender sur les longs.

Le RSI est calculé sur une courte période en utilisant une EMA de 7 jours et une LMA de 4 jours, puis une différence de 50 pour former un shortTermXtrender. Le RSI sur une longue période en utilisant une EMA de 4 jours et une différence de 50 pour former un longTermXtrender.

Lorsque le shortTermXtrender porte 0, on fait plus; lorsque le longTermXtrender porte 0, on fait aussi plus. Le principe de stop loss après le plus est de s’arrêter lorsque le shortTermXtrender porte 0, et de s’arrêter lorsque le longTermXtrender porte 0.

Les deux axes de temps permettent ainsi de filtrer les fausses avancées.

Analyse des avantages

Le plus grand avantage de cette stratégie réside dans l’exactitude de la détection des tendances. L’utilisation de deux axes de temps peut filtrer efficacement le bruit et bloquer la direction de la tendance cible. Cela garantit des transactions de suivi de tendance à faible risque.

En outre, la stratégie offre un espace d’optimisation des paramètres. L’utilisateur peut optimiser l’effet de la stratégie en fonction de différentes variétés et périodes de temps, en ajustant le cycle SMA, les paramètres RSI, etc.

Analyse des risques

Le risque principal de cette stratégie est l’erreur de jugement en cas d’excédent de marge. En cas de choc, des signaux erronés peuvent être générés. Si la position est toujours ouverte, il y a un risque de perte.

En outre, une mauvaise configuration des paramètres peut également entraîner une mauvaise performance. Si les paramètres de la période de temps sont trop courts, la probabilité d’erreur augmente considérablement; Si les paramètres de la période de temps sont trop longs, les opportunités de tendance sont manquées.

Direction d’optimisation

Cette stratégie peut être optimisée principalement dans les domaines suivants:

  1. Augmentation du mécanisme d’arrêt. Aucun arrêt n’est actuellement défini dans la stratégie, mais un arrêt en temps opportun peut être effectué en fonction de la réalisation du bénéfice cible.

  2. Augmentation de la gestion des positions. Les positions peuvent être ajustées dynamiquement en fonction de la taille des fonds, de la volatilité, etc.

  3. Tester les paramètres de différentes variétés. L’utilisateur peut tester la combinaison optimale de paramètres en effectuant des retours sur différentes périodes de temps, telles que le jour, les 60 minutes.

  4. Ajout d’une aide au jugement grâce à l’apprentissage automatique. Les modèles peuvent être entraînés à juger le type de scénario, afin d’ajuster dynamiquement les paramètres de la stratégie et d’améliorer le taux de victoire.

Résumer

La stratégie de négociation de la différence de prix de fluctuation du taux de fluctuation du taux de fluctuation du taux de fluctuation du taux de fluctuation du taux de fluctuation du taux de fluctuation du taux de fluctuation du taux de fluctuation du taux de fluctuation du taux de fluctuation du taux de fluctuation du taux de fluctuation du taux de fluctuation du taux de fluctuation du taux de fluctuation du taux de fluctuation du taux de fluctuation du taux de fluctuation du taux de fluctuation du taux de fluctuation du taux de fluctuation du taux de fluctuation du taux de fluctuation du taux de fluctuation du taux de fluctuation du taux de fluctuation du taux de fluctuation du taux de fluctuation du taux de fluctuation du taux de la fluctuation du taux de fluctuation du taux de la fluctuation du taux de fluctuation du taux de la fluctuation du taux de la fluctuation du taux de la fluctuation du taux de la fluctuation du taux de la fluctuation du taux de la flu

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

//@version=4
//study("MavXtrender")
strategy("MavXtrender")

ShortTermSMA = input(7)
ShortTermLMA = input(4)
ShortTermRSI = input(2)

LongTermMA  = input(4)
LongTermRSI  = input(2)

UseFactors = input(true)
TradeShortTerm = input(true)
TradeLongTerm = input(true)

count = TradeShortTerm == true ? 1 : 0
count := TradeLongTerm == true ? count + 1 : count
// set position size
Amount = strategy.equity / (close * count)

ShortTermLMA := UseFactors == true ? round(ShortTermSMA * ShortTermLMA) : ShortTermLMA
ShortTermRSI := UseFactors == true ? round(ShortTermSMA * ShortTermRSI) : ShortTermRSI
LongTermMA := UseFactors == true ? round(ShortTermSMA * LongTermMA) : LongTermMA
LongTermRSI := UseFactors == true ? round(ShortTermSMA * LongTermRSI) : LongTermRSI

shortTermXtrender = rsi(ema(close, ShortTermSMA) - ema(close, ShortTermLMA), ShortTermRSI ) - 50
longTermXtrender  = rsi( ema(close, LongTermMA), LongTermRSI ) - 50

// === INPUT BACKTEST RANGE ===
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromYear  = input(defval = 2018, title = "From Year", minval = 2012)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToYear    = input(defval = 2020, title = "To Year", minval = 2012)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true

strategy.entry("ShortTerm", strategy.long, qty = Amount, when = window() and crossover(shortTermXtrender,0) and TradeShortTerm)
strategy.entry("LongTerm", strategy.long, qty = Amount, when = window() and crossover(longTermXtrender,0) and TradeLongTerm)

strategy.close("ShortTerm", when = crossunder(shortTermXtrender,0) or time > finish)
strategy.close("LongTerm", when = crossunder(longTermXtrender,0) or time > finish)

shortXtrenderCol = shortTermXtrender > 0 ? shortTermXtrender > shortTermXtrender[1] ? color.lime : #228B22 : shortTermXtrender > shortTermXtrender[1] ? color.red : #8B0000
plot(shortTermXtrender, color=shortXtrenderCol, style=plot.style_columns, linewidth=1, title="B-Xtrender Osc. - Histogram", transp = 50)

longXtrenderCol = longTermXtrender> 0 ? longTermXtrender > longTermXtrender[1] ? color.lime : #228B22 : longTermXtrender > longTermXtrender[1] ? color.red : #8B0000
plot(longTermXtrender , color=longXtrenderCol, style=plot.style_histogram, linewidth=2, title="B-Xtrender Trend - Histogram", transp = 80)
plot(longTermXtrender , color=color.white,     style=plot.style_line,      linewidth=1, title="B-Xtrender Trend - Line",      transp = 80)