Les ressources ont été chargées... Je charge...

Tendance multi-indicateur à la suite de la stratégie croisée de négociation d'options de l' EMA

Auteur:ChaoZhang est là., Date: 2024-12-20 à 14h49
Les étiquettes:Le taux d'intérêtSMAVWAPLe MACDIndice de résistanceTP

img

Résumé

Cette stratégie est un système de trading d'options qui combine plusieurs indicateurs techniques. Elle utilise le crossover EMA comme signal principal, ainsi que SMA et VWAP pour la confirmation de la tendance, tout en utilisant MACD et RSI comme indicateurs supplémentaires pour le filtrage des signaux.

Principes de stratégie

La stratégie utilise le croisement des EMA à 8 périodes et à 21 périodes comme signal de trading principal. Un signal long (call) est déclenché lorsque l'EMA à court terme franchit la EMA à long terme et remplit les conditions suivantes: le prix est au-dessus des SMA à 100 et 200 périodes, la ligne MACD est au-dessus de la ligne de signal et le RSI est au-dessus de 50. Les signaux courts (Put) sont déclenchés dans des conditions opposées.

Les avantages de la stratégie

  1. Plusieurs indicateurs fonctionnent en synergie, en validant les signaux croisés à travers différentes périodes et types d'indicateurs
  2. Combine des indicateurs de tendance et de dynamique pour capturer à la fois la tendance et la dynamique à court terme
  3. Des niveaux fixes de bénéfices permettent de protéger les bénéfices et de prévenir une avidité excessive.
  4. Une gestion stricte des positions empêche les chevauchements de positions et réduit l'exposition au risque
  5. Visualisation claire, y compris les tendances EMA, SMA, VWAP et les marqueurs de signaux

Risques stratégiques

  1. Peut générer de fréquents faux signaux sur différents marchés
  2. Des niveaux fixes de prise de bénéfices pourraient limiter le potentiel de profit
  3. L'absence de stop-loss pourrait entraîner des pertes importantes dans des conditions de marché extrêmes
  4. Plusieurs indicateurs peuvent entraîner des signaux retardés
  5. Risque de glissement dans les contrats d'options à faible liquidité

Directions d'optimisation de la stratégie

  1. Mettre en œuvre des mécanismes adaptés de prise de profit et de stop-loss basés sur la volatilité du marché
  2. Ajouter un module de dimensionnement des positions pour s'ajuster dynamiquement en fonction de la taille du compte et des conditions du marché
  3. Inclure des filtres de volatilité pour ajuster les paramètres de stratégie dans des environnements à forte volatilité
  4. Optimiser les paramètres des indicateurs en tenant compte des périodes d'adaptation au lieu des périodes fixes
  5. Ajouter des filtres de temps pour éviter les opérations pendant les périodes d'ouverture et de fermeture des marchés très volatiles

Résumé

Il s'agit d'une stratégie de trading d'options bien structurée et logiquement saine, qui suit la tendance de plusieurs indicateurs. Elle améliore la fiabilité des signaux de trading grâce à la coordination de plusieurs indicateurs techniques et gère les risques en utilisant des niveaux fixes de prise de profit.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("OptionsMillionaire Strategy with Take Profit Only", overlay=true, default_qty_type=strategy.fixed, default_qty_value=1)

// Define custom magenta color
magenta = color.rgb(255, 0, 255)  // RGB for magenta

// Input settings for Moving Averages
ema8 = ta.ema(close, 8)
ema21 = ta.ema(close, 21)
sma100 = ta.sma(close, 100)
sma200 = ta.sma(close, 200)
vwap = ta.vwap(close)  // Fixed VWAP calculation

// Input settings for MACD and RSI
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
rsi = ta.rsi(close, 14)

// Define trend direction
isBullish = ema8 > ema21 and close > sma100 and close > sma200
isBearish = ema8 < ema21 and close < sma100 and close < sma200

// Buy (Call) Signal
callSignal = ta.crossover(ema8, ema21) and isBullish and macdLine > signalLine and rsi > 50

// Sell (Put) Signal
putSignal = ta.crossunder(ema8, ema21) and isBearish and macdLine < signalLine and rsi < 50

// Define Position Size and Take-Profit Level
positionSize = 1  // Position size set to 1 (each trade will use one contract)
takeProfitPercent = 5  // Take profit is 5%

// Variables to track entry price and whether the position is opened
var float entryPrice = na  // To store the entry price
var bool positionOpen = false  // To check if a position is open

// Backtesting Execution
if callSignal and not positionOpen
    // Enter long position (call)
    strategy.entry("Call", strategy.long, qty=positionSize)
    entryPrice := close  // Store the entry price
    positionOpen := true  // Set position as opened

if putSignal and not positionOpen
    // Enter short position (put)
    strategy.entry("Put", strategy.short, qty=positionSize)
    entryPrice := close  // Store the entry price
    positionOpen := true  // Set position as opened

// Only check for take profit after position is open
if positionOpen
    // Calculate take-profit level (5% above entry price for long, 5% below for short)
    takeProfitLevel = entryPrice * (1 + takeProfitPercent / 100)

    // Exit conditions (only take profit)
    if strategy.position_size > 0
        // Long position (call)
        if close >= takeProfitLevel
            strategy.exit("Take Profit", "Call", limit=takeProfitLevel)
    if strategy.position_size < 0
        // Short position (put)
        if close <= takeProfitLevel
            strategy.exit("Take Profit", "Put", limit=takeProfitLevel)

// Reset position when it is closed (this happens when an exit is triggered)
if strategy.position_size == 0
    positionOpen := false  // Reset positionOpen flag

// Plot EMAs
plot(ema8, color=magenta, linewidth=2, title="8 EMA")
plot(ema21, color=color.green, linewidth=2, title="21 EMA")

// Plot SMAs
plot(sma100, color=color.orange, linewidth=1, title="100 SMA")
plot(sma200, color=color.blue, linewidth=1, title="200 SMA")

// Plot VWAP
plot(vwap, color=color.white, style=plot.style_circles, title="VWAP")

// Highlight buy and sell zones
bgcolor(callSignal ? color.new(color.green, 90) : na, title="Call Signal Background")
bgcolor(putSignal ? color.new(color.red, 90) : na, title="Put Signal Background")

// Add buy and sell markers (buy below, sell above)
plotshape(series=callSignal, style=shape.labelup, location=location.belowbar, color=color.green, text="Buy", title="Call Signal Marker")
plotshape(series=putSignal, style=shape.labeldown, location=location.abovebar, color=color.red, text="Sell", title="Put Signal Marker")


Relationnée

Plus de