Stratégie de croisement de moyenne mobile avec des modèles de chandeliers intraday

Auteur:ChaoZhang est là.
Les étiquettes:

img

Résumé

La logique de la stratégie

Lorsque la moyenne mobile à court terme (9 jours MA) dépasse la moyenne mobile à long terme (15 jours MA), cela indique une dynamique haussière à court terme plus forte pour aller long. Lorsque la moyenne mobile à court terme dépasse la moyenne mobile à long terme, cela indique une dynamique haussière à court terme plus forte pour aller court. En outre, l'angle de la moyenne mobile doit être supérieur à 30 degrés pour assurer une puissance ascendante ou descendante suffisante.

Cette stratégie utilise principalement la capacité de suivre la tendance des moyennes mobiles et les caractéristiques de certains modèles de bougies.

Analyse des avantages

Cette stratégie combine des indicateurs de moyenne mobile et des modèles de bougies intraday pour filtrer efficacement le bruit et rendre les signaux de trading plus fiables.

Analyse des risques

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

  1. Le risque de fausse rupture. Pendant la consolidation du marché, les moyennes mobiles peuvent avoir plusieurs croix, dont la plupart sont de faux signaux.

  2. Le risque d'inversion de tendance. Les moyennes mobiles ne peuvent pas donner d'avertissements précoces d'inversions de tendance. La détention de positions ici peut entraîner d'énormes pertes. Ce risque peut être contrôlé par un stop-loss strict.

  3. Le risque d'optimisation des paramètres. Différents marchés s'adaptent différemment aux paramètres. L'application directe d'un ensemble de paramètres sans ajustement peut entraîner des pertes. Des paramètres appropriés doivent être trouvés par le biais de backtesting et de négociation papier.

En général, cette stratégie peut générer de faux signaux et courir des risques élevés/faibles sans tenir compte des conditions du marché.

Directions d'optimisation

Les aspects suivants de cette stratégie peuvent être encore améliorés:

  1. Ajouter une analyse des principales tendances, par exemple confirmer les canaux à moyen ou long terme, pour éviter de négocier contre tendance.

  2. Combinez l'analyse des fondamentaux, sélectionnez des actions avec des perspectives et des bénéfices meilleurs pour améliorer le taux de réussite.

  3. Optimiser les paramètres de la moyenne mobile, tester différentes périodes de longueur, trois ou cinq systèmes MA pour une plus grande souplesse de réglage.

Les orientations d'optimisation susmentionnées devraient améliorer considérablement à la fois la rentabilité et la stabilité de cette stratégie.

Résumé

En résumé, cette stratégie combine les forces des moyennes mobiles et des modèles de bougies sélectionnés. Les signaux de trading sont générés avec des critères relativement stricts, filtrant beaucoup de bruit et améliorant la qualité du signal.


/*backtest
start: 2024-01-29 00:00:00
end: 2024-02-28 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Moving Average Crossover Strategy with Candlestick Patterns", overlay=true)

// Define input parameters
fast_length = input(9, "Fast MA Length")
slow_length = input(15, "Slow MA Length")
stop_loss_percent = input(0.25, "Stop Loss (%)")
target_percent = input(0.25, "Target (%)")
angle_threshold = input(30, "Angle Threshold (degrees)")

// Calculate moving averages
fast_ma = sma(close, fast_length)
slow_ma = sma(close, slow_length)

// Define candlestick patterns
is_pin_bar() =>
    pin_bar = abs(open - close) > 2 * abs(open[1] - close[1])
    high_tail = max(open, close) - high > abs(open - close) * 1.5
    low_tail = low - min(open, close) > abs(open - close) * 1.5
    pin_bar and high_tail and low_tail

is_marubozu() =>
    marubozu = abs(open - close) > abs(open[1] - close[1]) * 0.75
    no_upper_shadow = high == max(open, close)
    no_lower_shadow = low == min(open, close)
    marubozu and no_upper_shadow and no_lower_shadow

is_full_body() =>
    full_body = abs(open - close) > abs(open[1] - close[1]) * 0.95
    full_body

// Plot moving averages
plot(fast_ma, color=color.blue, title="Fast MA")
plot(slow_ma, color=color.red, title="Slow MA")

// Calculate angle of slow moving average
ma_angle = abs(180 * (atan(slow_ma[1] - slow_ma) / 3.14159))

// Generate buy/sell signals based on angle condition and candlestick patterns
buy_signal = crossover(fast_ma, slow_ma) and ma_angle >= angle_threshold and (is_pin_bar() or is_marubozu() or is_full_body())
sell_signal = crossunder(fast_ma, slow_ma)

// Calculate stop-loss and target levels
stop_loss_level = close * (1 - stop_loss_percent / 100)
target_level = close * (1 + target_percent / 100)

// Execute trades based on signals with stop-loss and target
strategy.entry("Buy", strategy.long, when=buy_signal)
strategy.exit("Exit", "Buy", stop=stop_loss_level, limit=target_level)

// Plot buy/sell signals on chart (optional)
plotshape(series=buy_signal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=sell_signal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)

// Plot angle line
hline(angle_threshold, "Angle Threshold", color=color.black, linestyle=hline.style_dashed)


Plus de