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

Le système de négociation des tendances de support/résistance Camarilla

Auteur:ChaoZhang est là., Date: 2025-01-06 11h13 et 31 min
Les étiquettes:Le taux d'intérêtRéanimation cardiaqueR.R.

img

Résumé

Cette stratégie est un système de trading qui combine plusieurs moyennes mobiles exponentielles (EMA), niveaux de support/résistance Camarilla et plage centrale pivot (CPR). Le système identifie les tendances du marché et les opportunités de trading potentielles en analysant les relations de prix avec plusieurs moyennes mobiles et zones de prix clés.

Principes de stratégie

La stratégie repose sur plusieurs éléments essentiels:

  1. Système EMA multiple (20/50/100/200) pour la confirmation de la direction et de la force de la tendance
  2. Niveaux de support/résistance de Camarilla (R3/S3) pour l'identification des niveaux clés des prix
  3. Plage centrale pivotée (CPR) pour la détermination des plages de négociation intraday
  4. Signaux d'entrée basés sur des croisements de prix avec confirmation EMA200 et EMA20
  5. Stratégies de sortie incluant les points fixes et les modes de mouvement en pourcentage
  6. Système de gestion de l'argent qui ajuste dynamiquement la taille des positions en fonction de la taille du compte

Les avantages de la stratégie

  1. L'intégration d'indicateurs techniques multidimensionnels fournit des signaux de négociation plus fiables
  2. Des mécanismes de sortie flexibles s'adaptent aux différentes conditions du marché
  3. Un système complet de gestion de l'argent contrôle efficacement les risques
  4. Les caractéristiques de tendance suivantes aident à capter les mouvements majeurs du marché
  5. Les composants de visualisation aident les traders à comprendre la structure du marché

Risques stratégiques

  1. Peut générer de faux signaux sur des marchés variés
  2. Plusieurs indicateurs pourraient entraîner un retard des signaux commerciaux
  3. Les points de sortie fixes peuvent être moins performants sur les marchés à forte volatilité
  4. Requiert un capital important pour supporter les prélèvements
  5. Les coûts de négociation peuvent avoir une incidence sur les rendements globaux de la stratégie

Directions d'optimisation de la stratégie

  1. Introduction d'indicateurs de volatilité pour ajuster dynamiquement les paramètres d'entrée/sortie
  2. Ajout d'un module d'identification de l'état du marché pour s'adapter aux différentes conditions du marché
  3. Optimiser le système de gestion de l'argent avec une gestion dynamique des positions
  4. Ajouter des filtres de temps de négociation pour améliorer la qualité du signal
  5. Envisager d'ajouter une analyse du volume pour améliorer la fiabilité du signal

Résumé

La stratégie intègre plusieurs outils d'analyse technique classiques pour construire un système de trading complet. Ses atouts résident dans l'analyse de marché multidimensionnelle et la gestion stricte des risques, tout en accordant une attention particulière à l'adaptabilité dans différents environnements de marché.


/*backtest
start: 2020-01-06 00:00:00
end: 2025-01-04 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Pradeep Crude oil Entry and Exit", overlay=true)

// Input settings for EMAs
ema20_period = input.int(20, title="EMA 20 Period")
ema50_period = input.int(50, title="EMA 50 Period")
ema100_period = input.int(100, title="EMA 100 Period")
ema200_period = input.int(200, title="EMA 200 Period")

// Fixed line width settings for EMAs
ema20_width = 2  // EMA 20 Line Width
ema50_width = 2  // EMA 50 Line Width
ema100_width = 3 // EMA 100 Line Width
ema200_width = 4 // EMA 200 Line Width

// Backtesting inputs
initial_capital = input.float(50000, title="Initial Capital", minval=100)
position_size_percent = input.float(100, title="Position Size (% of Capital)", minval=0.1, maxval=100)
exit_mode = input.string("Price Movement", title="Exit Mode", options=["Price Movement", "Percentage Movement"])
exit_points = input.int(20, title="Exit After X Points", minval=1)
exit_percentage = input.float(1.0, title="Exit After X% Movement", minval=0.1, step=0.1)

// Calculate EMAs
ema20 = ta.ema(close, ema20_period)
ema50 = ta.ema(close, ema50_period)
ema100 = ta.ema(close, ema100_period)
ema200 = ta.ema(close, ema200_period)

// Signal conditions
long_entry_condition = close > ema200 and close > ema20 and close[1] <= ema200
long_exit_condition = (exit_mode == "Price Movement" and close - strategy.position_avg_price >= exit_points * syminfo.mintick) or 
                      (exit_mode == "Percentage Movement" and (close - strategy.position_avg_price) / strategy.position_avg_price * 100 >= exit_percentage)
short_entry_condition = close < ema200 and close < ema20 and close[1] >= ema200
short_exit_condition = (exit_mode == "Price Movement" and strategy.position_avg_price - close >= exit_points * syminfo.mintick) or 
                       (exit_mode == "Percentage Movement" and (strategy.position_avg_price - close) / strategy.position_avg_price * 100 >= exit_percentage)

// Plot EMAs with specified line widths
plot(ema20, color=color.green, title="EMA 20", linewidth=ema20_width)
plot(ema50, color=color.aqua, title="EMA 50", linewidth=ema50_width)
plot(ema100, color=color.blue, title="EMA 100", linewidth=ema100_width)
plot(ema200, color=color.red, title="EMA 200", linewidth=ema200_width)

// Camarilla Pivot Calculation
prev_high = request.security(syminfo.tickerid, "D", high[1])
prev_low = request.security(syminfo.tickerid, "D", low[1])
prev_close = request.security(syminfo.tickerid, "D", close[1])

R3 = prev_close + (prev_high - prev_low) * 1.1 / 2
S3 = prev_close - (prev_high - prev_low) * 1.1 / 2

// Central Pivot Range (CPR) Calculation
pivot = (prev_high + prev_low + prev_close) / 3
upper_cpr = pivot + (prev_high - prev_low)
lower_cpr = pivot - (prev_high - prev_low)

// Plot Camarilla R3, S3 and CPR levels
plot(R3, color=color.purple, title="Camarilla R3", linewidth=2)
plot(S3, color=color.purple, title="Camarilla S3", linewidth=2)
plot(pivot, color=color.yellow, title="CPR Pivot", linewidth=2)
plot(upper_cpr, color=color.green, title="CPR Upper", linewidth=1)
plot(lower_cpr, color=color.red, title="CPR Lower", linewidth=1)

// Backtesting: Capital and position size
capital = initial_capital
risk_per_trade = (position_size_percent / 100) * capital

// Long positions
if long_entry_condition
    strategy.entry("Long", strategy.long, qty=risk_per_trade / close)
    // Display entry price label
    label.new(bar_index, close, text="Entry: " + str.tostring(close), color=color.green, style=label.style_label_up, yloc=yloc.belowbar)

if long_exit_condition
    strategy.close("Long")
    // Display exit price label
    label.new(bar_index, close, text="Exit: " + str.tostring(close), color=color.red, style=label.style_label_down, yloc=yloc.abovebar)

// Short positions
if short_entry_condition
    strategy.entry("Short", strategy.short, qty=risk_per_trade / close)
    // Display entry price label
    label.new(bar_index, close, text="Entry: " + str.tostring(close), color=color.red, style=label.style_label_down, yloc=yloc.abovebar)

if short_exit_condition
    strategy.close("Short")
    // Display exit price label
    label.new(bar_index, close, text="Exit: " + str.tostring(close), color=color.green, style=label.style_label_up, yloc=yloc.belowbar)

// Plot signals
plotshape(long_entry_condition, style=shape.triangleup, location=location.belowbar, color=color.new(color.green, 0), size=size.small, title="Long Entry")
plotshape(long_exit_condition, style=shape.triangledown, location=location.abovebar, color=color.new(color.red, 0), size=size.small, title="Long Exit")
plotshape(short_entry_condition, style=shape.triangledown, location=location.abovebar, color=color.new(color.red, 0), size=size.small, title="Short Entry")
plotshape(short_exit_condition, style=shape.triangleup, location=location.belowbar, color=color.new(color.green, 0), size=size.small, title="Short Exit")




Relationnée

Plus de