Stratégie de négociation à court terme basée sur la tendance suivante

Auteur:ChaoZhang est là., Date: 2023-09-27 16h56:34
Les étiquettes:

Résumé

Cette stratégie identifie des tendances fortes et un moment favorable pour le trading à court terme avec contrôle des pertes. Elle suit les écarts de prix des moyennes mobiles simples comme signaux de tendance et définit un stop loss/take profit basé sur les divergences du RSI pour capturer les mouvements de prix à court terme.

La logique de la stratégie

  1. Calcul des moyennes mobiles simples sur plusieurs périodes

    • Définition des SMA de 9 jours, 50 jours et 100 jours

    • La courte SMA traversant la longue SMA indique la direction de la tendance

  2. Évaluation des niveaux de surachat/survente à l'aide de l'indice de volatilité

    • La longueur du RSI est de 14 périodes.

    • Le RSI supérieur à 70 est suracheté, inférieur à 30 est survendu

  3. Entrer dans des transactions lorsque le prix dépasse la SMA de 9 jours

    • Passez long lorsque le prix dépasse la SMA à 9 jours

    • Passer court lorsque le prix tombe en dessous de la SMA à 9 jours

  4. Définition du stop loss/take profit basé sur les divergences du RSI

    • Différence de l'indice de rentabilité pour le stop loss

    • Profitez lorsque le RSI atteint des niveaux prédéfinis

Analyse des avantages

  • Capture les tendances à court terme, adaptées au trading à haute fréquence

  • Les combinaisons SMA filtrent les signaux de tendance, évitant les mauvais échanges

  • L'indicateur de risque d'urgence aide à déterminer le moment opportun, à contrôler efficacement les risques

  • Résultats de l'analyse de risque

  • La combinaison des indicateurs améliore la stabilité

Analyse des risques

  • Un jugement erroné de la tendance à court terme provoque la poursuite

  • Les faux signaux RSI augmentent les pertes

  • Les paramètres d'arrêt des pertes/d'obtention des bénéfices incorrects réduisent les bénéfices ou amplifient les pertes

  • Une fréquence de négociation élevée augmente les coûts et les dérapages

  • Paramètres inefficaces et stratégie d'impact anormal sur les marchés

  • Optimiser les paramètres, un stop loss strict, gérer les coûts

Directions d'optimisation

  • Tester différentes combinaisons de SMA pour améliorer le jugement de tendance

  • Considérez des indicateurs supplémentaires tels que STOCH pour vérifier les signaux RSI

  • Utiliser l'apprentissage automatique pour déterminer les événements valides

  • Ajustez les paramètres pour différents produits et sessions

  • Optimiser la logique stop-loss/take profit pour le suivi dynamique

  • Explorez les mécanismes de réglage des paramètres automatiques

Conclusion

Cette stratégie combine SMA et RSI pour une approche de négociation à court terme conservatrice. Les paramètres de réglage fin, la validation des signaux, le contrôle des risques le rendent plus robuste et adaptable. Il y a place à l'amélioration en explorant plus de combinaisons SMA, en ajoutant des modèles d'apprentissage automatique, etc. L'optimisation continue conduira à une plus grande maturité.


/*backtest
start: 2023-08-27 00:00:00
end: 2023-09-26 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Coinrule

//@version=4
strategy(shorttitle='Maximized Scalping On Trend',title='Maximized Scalping On Trend (by Coinrule)', overlay=true, initial_capital = 1000, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 30, commission_type=strategy.commission.percent, commission_value=0.1)

//Backtest dates
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 10,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2019, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 1,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 1,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2112, title = "Thru Year",       type = input.integer, minval = 1970)

showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => true      // create function "within window of time"

//MA inputs and calculations
movingaverage_fast = sma(close, input(9))
movingaverage_mid= sma(close, input(50))
movingaverage_slow = sma(close, input (100))


//Trend situation
Bullish= cross(close, movingaverage_fast)

Momentum = movingaverage_mid > movingaverage_slow

// RSI inputs and calculations
lengthRSI = 14
RSI = rsi(close, lengthRSI)

//Entry
strategy.entry(id="long", long = true, when = Bullish and Momentum and RSI > 50)

//Exit

TP = input(70)
SL =input(30)
longTakeProfit  = RSI > TP
longStopPrice = RSI < SL

strategy.close("long", when = longStopPrice or longTakeProfit and window())

plot(movingaverage_fast, color=color.black, linewidth=2 )
plot(movingaverage_mid, color=color.orange, linewidth=2)
plot(movingaverage_slow, color=color.purple, linewidth=2)


Plus de