Stratégie de scalping à moyenne mobile

Auteur:ChaoZhang est là., Date: le 21 septembre 2023 à 20h41h15
Les étiquettes:

Résumé

Cette stratégie appartient au type de stratégie de scalping, visant à ouvrir et fermer des positions fréquemment pour profiter de petits gains tout en limitant les risques à la baisse.

La logique de la stratégie

La stratégie utilise 4 moyennes mobiles - 9, 50, 100 et 200 périodes.

Les règles de négociation spécifiques sont les suivantes:

  • Passer long lorsque 9 MA dépasse 50 MA
  • 50 MA est inférieur à 100 MA
  • 100 MA est inférieur à 200 MA

Cette combinaison identifie les situations où le prix est en baisse à court terme mais où un renversement peut se produire.

La règle de sortie est lorsque 9 MA dépasse 200 MA. Une cible de profit proche est utilisée pour verrouiller de fréquents petits gains pour des bénéfices stables.

Les avantages

  • Contrôles d'ouverture et de fermeture fréquents perte unique
  • Le crossover MA attrape des fonds potentiels
  • Objectifs de profit proches des petits gains certains
  • Une durée de rétention réduite minimise l'influence de la tendance
  • Utilisation élevée du capital adaptée aux petits comptes

Les risques

  • Le décalage de l'AM peut manquer les meilleurs points d'entrée
  • Plage de bénéfices réduite vulnérable aux frais
  • Des métiers plus invalides augmentent les coûts de temps et d'énergie
  • La TP trop conservatrice ne suit pas les tendances
  • Difficile de réaliser des bénéfices sur les marchés à fourchette

Les risques peuvent être réduits par:

  • Optimisation des paramètres MA pour une meilleure précision du signal
  • Relaxation du TP pour réaliser davantage de bénéfices de tendance
  • Ajout d'autres indicateurs de confirmation, réduction des opérations invalides
  • Optimisation de l'utilisation du capital et de la dimension de la position
  • En considérant les réentrées

Directions d'optimisation

La stratégie peut être améliorée par:

  1. Optimisation des combinaisons de MA

    Tester plus de périodes de MA pour une meilleure détection de l'inversion.

  2. Élargissement des niveaux de profit

    Permettez une plus grande distance de TP pour plus de bénéfices de tendance.

  3. Ajout d'autres indicateurs

    Par exemple, KDJ, MACD pour la confirmation afin de réduire les transactions invalides.

  4. Optimisation de la taille de la position

    Les positions de taille dynamique basées sur des TP et SL spécifiques.

  5. Ajout de règles de réentrée

    Si la tendance se maintient, envisagez de revenir après TP.

Résumé

Cette stratégie de scalping identifie les revers potentiels à court terme avec des combinaisons de MA pour des petits profits fréquents. Cela contrôle efficacement les pertes et les risques uniques, ce qui la rend adaptée à la croissance de petits comptes. Cependant, des limitations existent comme une petite plage de profit et des transactions excessives. Des améliorations peuvent être apportées via l'ajustement des paramètres, l'ajustement du TP, l'ajout de filtres, etc., pour augmenter les profits tout en conservant ses forces, ce qui rend la stratégie plus robuste et efficace.


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

//@version=4
//strategy(shorttitle='Moving Average Scalper (by Coinrule)',title='Moving Average Scalper', overlay=true, initial_capital = 1000, default_qty_type = strategy.percent_of_equity, 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_signal = sma(close, input(9))
movingaverage_fast = sma(close, input(50))
movingaverage_slow = sma(close, input(200))
movingaverage_mid= sma(close, input(100))

//Entry 
bullish = crossover(movingaverage_signal, movingaverage_fast)

strategy.entry(id="long", long = true, when = bullish and movingaverage_fast < movingaverage_mid and movingaverage_mid < movingaverage_slow and window())

//Exit

bearish = crossover(movingaverage_signal, movingaverage_slow)


Stop_loss= ((input (2))/100)
Take_profit= ((input (8))/100)

longStopPrice  = strategy.position_avg_price * (1 - Stop_loss)
longTakeProfit = strategy.position_avg_price * (1 + Take_profit)

strategy.close("long", when = bearish)

// close < longStopPrice or close > longTakeProfit and window())

//PLOT
plot(movingaverage_signal, color=color.black, linewidth=2 )
plot(movingaverage_fast, color=color.orange, linewidth=2)
plot(movingaverage_slow, color=color.purple, linewidth=2)
plot(movingaverage_mid, color=color.blue, linewidth=2)


Plus de