Cette stratégie de négociation est un système basé sur la rupture de l’écart-type, qui utilise la relation entre le prix et la moyenne mobile ainsi que l’écart-type pour identifier les opportunités d’achat potentielles. La stratégie se concentre principalement sur les signaux d’achat lorsque le prix est déraillé et gère le risque en définissant des arrêts et des arrêts. L’idée centrale de la stratégie est de négocier en cas de fluctuation anormale du prix, tout en filtrant les faux signaux possibles à l’aide des moyennes mobiles et de l’écart-type.
Calculer la moyenne mobile (MA): calculer la moyenne d’une période donnée en utilisant la moyenne mobile simple (SMA).
Écarts-types: écarts-types calculés sur la base du même cycle.
Construction d’une voie ascendante et descendante:
Génération d’un signal d’achat: déclenchement d’un signal d’achat lorsque le prix passe du bas vers le bas.
Gestion des risques :
Durée de rétractation: la stratégie permet à l’utilisateur de définir une heure de début et de fin de rétractation spécifique et d’exécuter des transactions uniquement dans la période de temps spécifiée.
Adaptabilité: en utilisant l’écart-type, la stratégie est capable d’ajuster automatiquement la zone de négociation en fonction de la volatilité du marché et de s’adapter à différentes conditions de marché.
Contrôle des risques: des mécanismes intégrés de stop-loss et de stop-loss permettent de contrôler efficacement le risque de chaque transaction.
Haute flexibilité: permet à l’utilisateur de personnaliser plusieurs paramètres tels que le cycle d’écart-type, le multiplicateur, le stop loss ratio, etc., qui peuvent être ajustés en fonction des différents marchés et des préférences de risque personnelles.
La visualisation est bonne: la stratégie trace les moyennes mobiles, les trajectoires ascendantes et descendantes et les signaux d’achat sur le graphique pour faciliter la compréhension et l’analyse.
Fonctionnalité de rétroaction puissante: l’utilisateur peut définir précisément la plage de temps de rétroaction, ce qui est utile pour évaluer la performance de la stratégie dans un environnement de marché particulier.
Risque de fausse rupture: Dans les marchés à cours croisé ou à faible volatilité, des fausses ruptures peuvent survenir fréquemment, entraînant des pertes de transactions excessives et des frais de traitement inutiles.
Le retard de suivi de la tendance: la stratégie est basée sur les moyennes mobiles et les écarts standards, ce qui peut vous faire rater des opportunités d’entrée plus tôt dans un marché en forte tendance.
Sensibilité aux paramètres: la performance d’une stratégie est fortement dépendante de la configuration des paramètres. Différentes combinaisons de paramètres peuvent entraîner des résultats très différents, nécessitant de nombreux retours d’expérience et optimisations.
Restrictions de négociation unidirectionnelle: la stratégie est actuellement uniquement réalisée pour la multi-logique, et peut manquer des opportunités ou subir des pertes importantes dans un marché en baisse.
Dépendance de l’environnement de marché: les stratégies peuvent être plus efficaces dans les marchés de crypto-monnaie à forte volatilité et à faible volume de transactions, mais leur efficacité peut être différente dans d’autres environnements de marché.
Introduction d’un mécanisme de dépréciation: augmentation de la logique de dépréciation lorsque le prix se déclenche, permettant ainsi à la stratégie de profiter des marchés bidirectionnels.
Adaptation dynamique des paramètres: fonctionnalité permettant d’ajuster automatiquement les paramètres tels que le multiplicateur de la différence standard, le stop loss ratio, etc. en fonction de la situation du marché, afin d’améliorer la capacité d’adaptation de la stratégie.
L’analyse multi-temporelle: la combinaison de données de périodes plus longues et plus courtes améliore la fiabilité du signal et l’exactitude de l’heure d’entrée.
Ajout de filtres de transaction: introduire des indicateurs de transaction, filtrer les faux signaux de rupture lorsque le volume de transactions est faible, améliorer la qualité des transactions.
Optimisation des mécanismes d’arrêt-stop: réalisation d’arrêts-stop dynamiques, tels que l’introduction d’arrêts-stop de suivi ou d’arrêts-stop basés sur l’ATR, pour mieux s’adapter aux fluctuations du marché.
Ajout de conditions de filtrage: en combinaison avec d’autres indicateurs techniques ou fondamentaux, définissez des conditions de transaction supplémentaires pour réduire les faux signaux.
Gestion des fonds: ajout d’une logique de gestion des positions, en ajustant le pourcentage de fonds par transaction en fonction de la taille du compte et de la dynamique de la volatilité du marché.
La stratégie de trading de rupture d’écart standard auto-adaptative est un système de trading quantitatif basé sur des principes statistiques qui capture les opportunités de trading créées par les fluctuations anormales du marché via des canaux de prix ajustés dynamiquement. Le principal avantage de la stratégie réside dans sa capacité d’adaptation et de gestion des risques, qui permet de maintenir une performance relativement stable dans différents environnements de marché. Cependant, la stratégie est également confrontée à des défis tels que les fausses ruptures et la sensibilité des paramètres, qui nécessitent une utilisation prudente et une optimisation continue par les traders.
En introduisant des mesures d’optimisation telles que des mécanismes de démarrage, des ajustements de paramètres dynamiques et des analyses de plusieurs périodes, la stratégie est susceptible d’améliorer encore sa stabilité et sa rentabilité. Pour les traders expérimentés en quantitative, la stratégie fournit un excellent cadre de base sur lequel une personnalisation et une optimisation approfondies peuvent être effectuées pour s’adapter à différents styles de négociation et environnements de marché.
Dans l’ensemble, cette stratégie de trading de rupture de la norme d’adaptation met en évidence l’essence de la négociation quantifiée afin de saisir les opportunités du marché grâce à des modèles mathématiques et des méthodes statistiques tout en contrôlant strictement les risques. Elle s’applique non seulement au marché des crypto-monnaies très volatil, mais peut également être appliquée à d’autres marchés financiers avec des ajustements appropriés, offrant aux traders un outil de négociation puissant et flexible.
/*backtest
start: 2024-06-01 00:00:00
end: 2024-06-30 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("MikEy Scali 3 STD Dev Buy Strategy with TP and SL", overlay=true)
// Input parameters for the strategy
length = input.int(20, title="Standard Deviation Length", minval=1)
src = input(close, title="Source")
mult = input.float(3.0, title="Standard Deviation Multiplier", step=0.1)
// Input for the take profit and stop loss percentages
takeProfitPerc = input.float(1.0, title="Take Profit Percentage", step=0.1) / 100
stopLossPerc = input.float(0.5, title="Stop Loss Percentage", step=0.1) / 100
// Input parameters for the backtesting range
testStartYear = input.int(2023, title="Backtest Start Year", minval=2000)
testStartMonth = input.int(1, title="Backtest Start Month", minval=1, maxval=12)
testStartDay = input.int(1, title="Backtest Start Day", minval=1, maxval=31)
testEndYear = input.int(2024, title="Backtest End Year", minval=2000)
testEndMonth = input.int(12, title="Backtest End Month", minval=1, maxval=12)
testEndDay = input.int(31, title="Backtest End Day", minval=1, maxval=31)
// Define the backtesting range
testStartTime = timestamp(testStartYear, testStartMonth, testStartDay, 00, 00)
testEndTime = timestamp(testEndYear, testEndMonth, testEndDay, 23, 59)
// Determine if the current bar is within the backtesting range
inBacktestRange = (time >= testStartTime) and (time <= testEndTime)
// Calculate the moving average and standard deviation
ma = ta.sma(src, length)
std_dev = ta.stdev(src, length)
// Calculate upper and lower bands
upper_band = ma + (std_dev * mult)
lower_band = ma - (std_dev * mult)
// Buy condition within the backtesting range
buyCondition = inBacktestRange and ta.crossover(src, lower_band)
// Plot the buy signal on the chart
plotshape(series=buyCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
// Execute buy orders based on the condition within the backtesting range
if (buyCondition)
strategy.entry("Buy", strategy.long)
// Calculate the take profit and stop loss prices when a position is opened
entryPrice = na(strategy.opentrades.entry_price(0)) ? src : strategy.opentrades.entry_price(0)
takeProfitPrice = entryPrice * (1 + takeProfitPerc)
stopLossPrice = entryPrice * (1 - stopLossPerc)
// Take profit condition
takeProfitCondition = strategy.position_size > 0 and close >= takeProfitPrice
// Stop loss condition
stopLossCondition = strategy.position_size > 0 and close <= stopLossPrice
// Execute sell order when take profit condition is met within the backtesting range
if (takeProfitCondition and inBacktestRange)
strategy.close("Buy", "Take Profit")
// Execute sell order when stop loss condition is met within the backtesting range
if (stopLossCondition and inBacktestRange)
strategy.close("Buy", "Stop Loss")
// Plot the moving average and the bands
plot(ma, color=color.blue, title="Moving Average")
plot(upper_band, color=color.red, title="Upper Band (3 STD)")
plot(lower_band, color=color.green, title="Lower Band (3 STD)")
// Optional: Plot the source
plot(src, color=color.gray, title="Source")
// Add labels for clarity
bgcolor(buyCondition ? color.new(color.green, 90) : na, offset=-1, title="Buy Signal Background")
// Optional: Highlight the backtesting range on the chart
bgcolor(inBacktestRange ? color.new(color.blue, 90) : na, title="Backtest Range Background")
// Plot the take profit and stop loss levels if a position is open
plot(strategy.position_size > 0 ? takeProfitPrice : na, color=color.orange, title="Take Profit Level")
plot(strategy.position_size > 0 ? stopLossPrice : na, color=color.red, title="Stop Loss Level")