Stratégie de scalping Bitcoin basée sur des modèles de croisement de moyenne mobile et de chandeliers

Auteur:ChaoZhang est là., Date: le 29 février 2024 12:01:47
Les étiquettes:

img

Résumé

Il s'agit d'une stratégie de scalping Bitcoin de 5 minutes basée sur le croisement des moyennes mobiles de 9 périodes et 15 périodes et des modèles de bougies. Plus précisément, il génère des signaux d'achat lorsque la moyenne mobile rapide traverse la moyenne mobile lente et que la bougie forme un marteau ou marubozu. Les signaux de vente sont générés lorsque la MA rapide traverse la MA lente. Après l'entrée, un stop loss de 0,5% et une prise de profit de 0,5% sont définis.

La logique de la stratégie

La stratégie utilise deux moyennes mobiles avec des périodes différentes pour la détermination de la tendance. Le MA de 9 périodes est plus sensible et peut capturer les tendances à court terme. Le MA de 15 périodes est plus stable et peut filtrer un peu de bruit. Lorsque le MA plus rapide traverse au-dessus du MA plus lent, cela indique que la tendance à court terme est à la hausse.

En outre, les modèles de bougies sont utilisés pour la confirmation des signaux. Les signaux d'achat ne sont générés que sur des bougies fortes comme les marteaux et les marubozus. Cela aide à éviter de mauvais signaux pendant les consolidations du marché.

Les signaux et règles de négociation spécifiques sont les suivants:

  1. L'AM de 9 périodes se croise au-dessus de l'AM de 15 périodes et l'angle de l'AM de 15 périodes est supérieur à 30 degrés, ce qui indique une tendance à la hausse;

  2. Si la bougie forme un marteau ou un marubozu, montrant une forte dynamique haussière, un signal d'achat est généré;

  3. Réglez le stop loss à 0,5% et le profit à 0,5% après l'entrée.

Analyse des avantages

Les avantages de cette stratégie sont les suivants:

  1. Petits retraits et gains réguliers - La perte par transaction est limitée, ce qui évite d'énormes retraits même sur les marchés en baisse.

  2. Automatisation facile - Des signaux simples et des paramètres réglables permettent le trading algorithmique.

Analyse des risques

Il y a aussi des risques:

  1. Il est nécessaire de régler les paramètres - L'efficacité diminue si les périodes de MA et les paramètres de profit ne correspondent pas aux conditions du marché.

  2. S'appuie sur des tendances fortes - Les mouvements latéraux peuvent conduire à des transactions excessives mais à de petits profits.

Les solutions sont les suivantes:

  1. Échangez des volumes plus importants pour assurer un bon rapport risque/rendement.

  2. Ajuster les paramètres dynamiquement en fonction des changements du marché.

  3. Identifier l'état du marché et éviter de négocier en consolidation.

Directions d'optimisation

Quelques façons d'optimiser la stratégie:

  1. Ajouter des mécanismes adaptatifs pour le stop loss et le profit - Par exemple, le stop loss sur les moyennes mobiles, la prise de profit dynamique, etc.

  2. Test sur d'autres produits - Appliquer une logique similaire lors du scalping des matières premières, des contrats à terme sur indices, etc.

  3. Effectuer l'optimisation des paramètres et le backtesting pour trouver les paramètres optimaux.

Conclusion


/*backtest
start: 2024-01-29 00:00:00
end: 2024-02-28 00:00:00
period: 2h
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.5, "Stop Loss (%)")
target_percent = input(0.5, "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