Cette stratégie est une stratégie de trading basée sur le principe de croisement des lignes moyennes mobiles du Bitcoin. La stratégie utilise le croisement de la ligne moyenne mobile rapide et de la ligne moyenne mobile lente comme signaux d'achat et de vente. Lorsque la ligne moyenne mobile rapide traverse au-dessus de la ligne moyenne mobile lente, elle est considérée comme une croix d'or et va long; lorsque la ligne moyenne mobile rapide traverse au-dessous de la ligne moyenne mobile lente, elle est considérée comme une croix de mort et va court.
La stratégie repose principalement sur deux indicateurs:
Moyenne mobile (MA): Calcule le prix de clôture moyen sur une certaine période pour déterminer les tendances des prix et les signaux d'inversion.
Indice de force relative (RSI): Calcule la vitesse des hausses et des baisses de prix sur une certaine période pour juger des zones surachetées et survendues.
Plus précisément, la stratégie utilise une MA plus courte comme ligne rapide et une MA plus longue comme ligne lente. Lorsque la ligne rapide traverse au-dessus de la ligne lente, cela indique que la hausse des prix à court terme s'accélère et qu'un signal d'achat est généré; lorsque la ligne rapide traverse en dessous de la ligne lente, cela indique que la baisse des prix à court terme s'accélère et qu'un signal de vente est généré.
Dans le même temps, la stratégie fixe également un seuil pour le RSI, générant des signaux d'achat uniquement lorsque le RSI est supérieur à 50 et des signaux de vente uniquement lorsque le RSI est inférieur à 50, évitant une entrée imprudente lorsque les prix fluctuent violemment.
La stratégie présente les avantages suivants:
La stratégie comporte également certains risques:
Pour atténuer les risques, il est recommandé d'optimiser les paramètres de la moyenne mobile de la période, d'ajuster les positions stop loss et de réduire de manière appropriée la taille des positions.
Les principales orientations d'optimisation de cette stratégie sont les suivantes:
Optimiser les paramètres de la moyenne mobile pour trouver la combinaison optimale de paramètres, par le biais de recherches incrémentielles, d'algorithmes génétiques, etc.
Augmenter les autres indicateurs techniques de filtrage, tels que le KDJ, le MACD, etc., afin d'améliorer la qualité des signaux de négociation.
Surveiller les fluctuations des prix et ajuster les positions et les stop-loss en conséquence.
Incorporer le volume des transactions pour éviter les fausses ruptures, en émettant des signaux uniquement lorsque le volume des transactions augmente.
Développer des mécanismes d'auto-adaptation des paramètres, permettant aux stratégies d'ajuster automatiquement les valeurs des paramètres en fonction des différents environnements du marché.
En résumé, il s'agit d'une stratégie typique de suivi des tendances. Basée sur le principe du croisement des moyennes mobiles, la logique de trading est simple et claire, facile à comprendre et à mettre en œuvre. L'incorporation de l'indicateur RSI peut éviter le trading irrationnel. La stratégie comporte à la fois des risques et des récompenses, adaptée aux investisseurs ayant une certaine expérience de trading quantitatif, mais les risques de perte potentiels doivent être protégés. Si les développeurs peuvent ajouter plus de filtres, optimiser l'adaptabilité des paramètres, cela peut encore améliorer la rentabilité constante de la stratégie.
/*backtest start: 2023-11-03 00:00:00 end: 2023-12-03 00:00:00 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //Trading Strategy Warning - Past performance may not equal future performance //Account Size Warning - Performance based upon default 10% risk per trade, of account size $100,000. Adjust before you trade to see your own drawdown. //Time Frame - D1 and H4, warning H4 has a lower profit factor (fake-outs, and account drawdown), D1 recommended //Trend Following System - Profitability of this system is dependent on a STRONG trend in Bitcoin, into the future strategy("Bitcoin - MA Crossover Strategy", overlay=true) // User Input usr_risk = input(title="Equity Risk (%)",type=input.integer,minval=1,maxval=100,step=1,defval=10,confirm=false) sma_fast = input(title="Fast MA (Period)",type=input.integer,minval=1,maxval=500,step=1,defval=20,confirm=false) sma_slow = input(title="Slow MA (Period)",type=input.integer,minval=1,maxval=500,step=1,defval=40,confirm=false) rsi_valu = input(title="RSI (Period)",type=input.integer,minval=1,maxval=500,step=1,defval=14,confirm=false) // Create Indicator's shortSMA = sma(close, sma_fast) longSMA = sma(close, sma_slow) rsi = rsi(close, rsi_valu) strategy.initial_capital = 50000 // Units to buy amount = usr_risk / 100 * (strategy.initial_capital + strategy.netprofit) units = floor(amount / close) // Specify entry conditions longEntry = crossover(shortSMA, longSMA) shortEntry = crossunder(shortSMA, longSMA) // Specify exit conditions longExit = crossunder(shortSMA, longSMA) shortExit = crossover(shortSMA, longSMA) // Execute long trade if (longEntry) strategy.entry("long", strategy.long, units, when = rsi > 50) // Exit long trade if(longExit and strategy.position_size > 0) strategy.order("exit long", strategy.short, abs(strategy.position_size)) // Execute short trade if (shortEntry) strategy.entry("short", strategy.short, units, when = rsi < 50) // Exit short trade if(shortExit and strategy.position_size < 0) strategy.order("exit short", strategy.long, abs(strategy.position_size)) // Plot Moving Average's to chart plot(shortSMA) plot(longSMA, color=color.black)