Rétrécissement de la moyenne mobile dynamique Stratégie Martin

Auteur:ChaoZhang est là., Date: 2023-11-24 10:19:21 Je suis désolé
Les étiquettes:

img

Résumé

La stratégie de Martin est une stratégie de trading fréquente qui combine des croisements de moyennes mobiles et des signaux de rebond pour générer des signaux d'entrée et de sortie.

La logique de la stratégie

La stratégie utilise des moyennes mobiles simples de 3 jours et 8 jours et leurs signaux de croisement. Un signal long est généré lorsque le MA de 3 jours franchit le MA de 8 jours, et un signal court est généré lorsque le MA de 3 jours franchit le MA de 8 jours.

Si aucune position n'existe, la stratégie déterminera l'entrée en fonction des signaux de croisement. Après l'entrée, le prix de stop loss et le prix de prise de profit seront calculés en fonction du dernier prix de clôture, du pourcentage de stop loss et du pourcentage de prise de profit. Par exemple, lors de la tenue d'une position longue, le prix de stop loss est le dernier prix de clôture moins le pourcentage de stop loss multiplié par le MA de 8 jours; le prix de prise de profit est le dernier prix de clôture plus le pourcentage de prise de profit multiplié par le MA de 8 jours.

S'il y a une position longue existante, lorsque le prix déclenche le take profit ou le stop loss, si un signal de rebond du MA de 8 jours se produit, la position sera fermée.

La stratégie trace également les points d'entrée et de sortie sur le graphique. Par exemple, une longue entrée est tracée comme un triangle ascendant et une longue sortie comme un triangle descendant. Cela aide à juger visuellement les entrées et les sorties.

Analyse des avantages

Les avantages de cette stratégie sont les suivants:

  1. Capture les tendances à court terme à l'aide de signaux croisés de moyenne mobile, permettant une négociation fréquente.
  2. Le mécanisme de stop loss peut contrôler une seule perte.
  3. La fixation du bénéfice peut bloquer des bénéfices partiels.
  4. Les directions de négociation peuvent être sélectionnées pour s'adapter à différentes étapes.
  5. Visualise les points d'entrée et de sortie sur le graphique pour plus de clarté.

Analyse des risques

Les principaux risques de cette stratégie sont les suivants:

  1. Les stratégies de MA à court terme ont tendance à être étouffées.
  2. Possibilité de signaux de retard des moyennes mobiles.
  3. Les pertes consécutives peuvent entraîner des pertes aggravées.
  4. Le pourcentage d'arrêt-perte incorrectement défini peut être trop faible ou trop serré.

Les risques peuvent être réduits en augmentant raisonnablement le pourcentage de stop-loss, en optimisant les paramètres de MA, en introduisant des conditions de filtrage supplémentaires, etc. Il est également important d'évaluer correctement la tolérance personnelle et d'éviter les surtrades.

Directions d'optimisation

Cette stratégie peut être optimisée par les aspects suivants:

  1. Testez plus de combinaisons MA pour trouver les paramètres optimaux.
  2. Ajoutez d'autres indicateurs tels que RSI, KD, etc. pour améliorer la qualité du signal.
  3. Ajustez le pourcentage de stop loss en fonction des différents produits et des délais.
  4. Ajouter un contrôle de la taille de la position tel que la quantité fixe ou le capital fixe.
  5. Ajoutez des règles d'ordre d'entrée.
  6. Optimiser et évaluer les niveaux de stop loss ou de take profit.

Résumé

La stratégie Martin est une stratégie de trading à court terme. Elle capture les tendances à court terme formées par des croisements de moyennes mobiles, et gère les risques avec des arrêts et des bénéfices appropriés.


/*backtest
start: 2022-11-17 00:00:00
end: 2023-11-23 00:00:00
period: 1d
basePeriod: 1h
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/
// © blackcat1402
//@version=5
strategy('[blackcat] L1 MartinGale Scalping Strategy', overlay=true, pyramiding = 5)

// Define input variables
takeProfit = input(1.03, title='Take Profit')
stopLoss = input(0.95, title='Stop Loss')
inputTradingMode = input.string(defval='Long', options=['Long', 'Short', 'BiDir'], title='Trading Mode')

//The purpose of this rule is to forbid short entries, only long etries will be placed. The rule affects the following function: 'entry'.
strategy.risk.allow_entry_in(inputTradingMode == 'Long' ? strategy.direction.long : inputTradingMode == 'Short' ? strategy.direction.short : strategy.direction.all)

// Define strategy logic
entryPrice = 0.0
stopPrice = 0.0
takeProfitPrice = 0.0
stopLossPrice = 0.0

// Define SMA crossover and crossunder signals
sma3 = ta.sma(close, 3)
sma8 = ta.sma(close, 8)
plot(sma3, color=color.yellow)
plot(sma8, color=color.fuchsia)
crossoverSignal = ta.crossover(sma3, sma8)
crossunderSignal = ta.crossunder(sma3, sma8)
crossoverState = sma3 > sma8
crossunderState = sma3 < sma8

if strategy.position_size == 0
    if crossoverState
        strategy.entry('Buy', strategy.long)
        entryPrice := close
        stopPrice := close - stopLoss * sma8[1]
        takeProfitPrice := close + takeProfit * sma8[1]
        stopLossPrice := stopPrice
        stopLossPrice
    if crossunderState
        strategy.entry('Sell', strategy.short)
        entryPrice := close
        stopPrice := close + stopLoss *  sma8[1]
        takeProfitPrice := close - takeProfit *  sma8[1]
        stopLossPrice := stopPrice
        stopLossPrice

if strategy.position_size > 0
    if (close > takeProfitPrice or close < stopLossPrice) and crossunderState
        strategy.close('Buy')
        entryPrice := 0.0
        stopPrice := 0.0
        takeProfitPrice := 0.0
        stopLossPrice := 0.0
        stopLossPrice
    else
        strategy.entry('Buy', strategy.long)
        entryPrice := close
        stopPrice := close - stopLoss *  sma8[1]
        takeProfitPrice := close + takeProfit *  sma8[1]
        stopLossPrice := stopPrice
        stopLossPrice

if strategy.position_size < 0
    if (close > takeProfitPrice or close < stopLossPrice) and crossoverState
        strategy.close('Sell')
        entryPrice := 0.0
        stopPrice := 0.0
        takeProfitPrice := 0.0
        stopLossPrice := 0.0
        stopLossPrice
    else
        strategy.entry('Sell', strategy.short)
        entryPrice := close
        stopPrice := close + stopLoss *  sma8[1]
        takeProfitPrice := close - takeProfit *  sma8[1]
        stopLossPrice := stopPrice
        stopLossPrice

// Plot entry and exit points
plotshape(strategy.position_size > 0 and crossoverSignal, 'Buy Entry', shape.triangleup, location.belowbar, color.new(color.green, 0), size=size.small)
plotshape(strategy.position_size > 0 and (close >= takeProfitPrice or close <= stopLossPrice), 'Buy Exit', shape.triangledown, location.abovebar, color.new(color.red, 0), size=size.small)
plotshape(strategy.position_size < 0 and crossunderSignal, 'Sell Entry', shape.triangledown, location.abovebar, color.new(color.red, 0), size=size.small)
plotshape(strategy.position_size < 0 and (close >= takeProfitPrice or close <= stopLossPrice), 'Sell Exit', shape.triangleup, location.belowbar, color.new(color.green, 0), size=size.small)



Plus de