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

Stratégie de négociation quantitative de suivi des tendances sur plusieurs délais et de blocage des ordres

Auteur:ChaoZhang est là., Date: 2024-07-29 13:57:12 Les résultats sont publiés dans les journaux.
Les étiquettes:Le taux d'intérêtSMAObésité

img

Résumé

Il s'agit d'une stratégie de trading quantitative complexe qui combine plusieurs indicateurs techniques et concepts de trading. La stratégie est principalement basée sur le bloc d'ordres, la détection des changements de tendance, les croisements moyens mobiles et l'analyse de plusieurs délais pour générer des signaux de trading.

Principes de stratégie

  1. Bloc d'ordres: la stratégie utilise une fonction personnalisée pour calculer le Bloc d'ordres, qui est un niveau de prix significatif représentant généralement des zones d'ordres institutionnels concentrés.

  2. Détection des changements de tendance: utilise des croisements d'une moyenne mobile simple (SMA) pour identifier les changements de tendance potentiels.

  3. L'analyse multi-temps: Calcule les moyennes mobiles exponentielles (EMA) sur 50 périodes et 200 périodes sur une période d'une heure pour déterminer la tendance plus large du marché.

  4. Conditions d'entrée:

    • Longue: lorsqu'un signal de tendance haussière apparaît sur le graphique de 5 minutes, le prix dépasse le bloc d'ordres et l'EMA à 50 points est supérieur à l'EMA à 200 points sur le graphique à 1 heure.
    • Courte: Lorsqu'un signal de tendance à la baisse apparaît sur le graphique de 5 minutes, le prix se déplace en dessous du bloc d'ordres et l'EMA à 50 points est inférieur à l'EMA à 200 points sur le graphique à 1 heure.
  5. Stratégie de sortie: utilise un pourcentage fixe de bénéfices et de niveaux de stop-loss pour gérer le risque et verrouiller les bénéfices.

Les avantages de la stratégie

  1. Analyse multidimensionnelle: elle combine plusieurs délais et indicateurs techniques, fournissant une perspective de marché plus complète.

  2. Suivi de tendance: En négociant dans la direction de la tendance plus large, il augmente la probabilité de transactions rentables.

  3. Entrées précises: utilise des blocs d'ordres et des changements de tendance à court terme pour optimiser le calendrier d'entrée.

  4. Gestion des risques: utilise des pourcentages prédéfinis de prise de profit et de stop-loss, contrôlant efficacement le risque pour chaque transaction.

  5. Adaptabilité: les paramètres de la stratégie peuvent être ajustés pour s'adapter aux différents environnements du marché.

Risques stratégiques

  1. Surtrading: peut générer des signaux de négociation fréquents sur des marchés très volatils, augmentant les coûts de transaction.

  2. Risque de glissement: sur les marchés moins liquides, les prix d'exécution réels peuvent s'écarter sensiblement des prix idéaux.

  3. Risque d'inversion de tendance: la stratégie peut subir des pertes consécutives à proximité des points tournants de la tendance.

  4. Sensibilité aux paramètres: les performances de la stratégie peuvent être très sensibles aux paramètres, ce qui nécessite une optimisation continue.

  5. Dépendance de l'environnement du marché: la stratégie peut ne pas bien fonctionner sur des marchés variés ou qui oscillent rapidement.

Directions d'optimisation de la stratégie

  1. Ajustement dynamique des paramètres: envisager d'ajuster automatiquement les pourcentages de prise de profit et de stop-loss en fonction de la volatilité du marché.

  2. Filtres supplémentaires: introduire des indicateurs techniques ou de sentiment du marché supplémentaires pour réduire les faux signaux.

  3. Filtrage du temps: ajouter des restrictions de fenêtre de temps de négociation pour éviter les périodes de faible liquidité.

  4. Gestion des positions: mettre en œuvre des stratégies de gestion des positions plus sophistiquées, telles que la taille des positions basée sur la volatilité.

  5. Backtesting et optimisation: effectuer un backtesting des données historiques plus étendu pour trouver des combinaisons optimales de paramètres.

  6. Reconnaissance de l'environnement du marché: développer des algorithmes pour identifier les différents états du marché et ajuster la stratégie en conséquence.

Résumé

Il s'agit d'une stratégie de trading quantitative complète et logiquement complexe qui combine l'analyse de plusieurs délais, la théorie des blocs d'ordres et les techniques de suivi des tendances. En recherchant des points d'entrée précis dans la direction de la tendance plus large, la stratégie vise à améliorer le taux de réussite des transactions. Cependant, en raison de sa complexité, la stratégie est également confrontée à des défis tels que le surajustement et la sensibilité aux paramètres. Les optimisations futures devraient se concentrer sur l'amélioration de l'adaptabilité et de la robustesse de la stratégie, y compris l'ajustement dynamique des paramètres, des filtres supplémentaires et des méthodes de gestion de position plus sophistiquées.


/*backtest
start: 2024-06-28 00:00:00
end: 2024-07-28 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("S&P 500", overlay=true)
// Parámetros
length = input(14, "Longitud")
src = input(close, "Fuente")
profit_percent = input.float(0.08955, "Porcentaje de ganancia", step=0.00001, minval=0)
stop_loss_percent = input.float(0.04477, "Porcentaje de stop loss", step=0.00001, minval=0)
// Función para calcular el Order Block
order_block(src, len) =>
    highest = ta.highest(high, len)
    lowest = ta.lowest(low, len)
    mid = (highest + lowest) / 2
    ob = src > mid ? highest : lowest
    ob
// Cálculo del Order Block
ob = order_block(src, length)
// Función para detectar cambios de tendencia
trend_change(src, len) =>
    up = ta.crossover(src, ta.sma(src, len))
    down = ta.crossunder(src, ta.sma(src, len))
    [up, down]
// Detectar cambios de tendencia
[trend_up, trend_down] = trend_change(src, length)
// Calcular EMA 50 y EMA 200 en timeframe de 1 hora
ema50_1h = request.security(syminfo.tickerid, "60", ta.ema(close, 50))
ema200_1h = request.security(syminfo.tickerid, "60", ta.ema(close, 200))
// Condiciones de EMA
ema_buy_condition = ema50_1h > ema200_1h
ema_sell_condition = ema50_1h < ema200_1h
// Señales de compra y venta
buy_signal = trend_up and close > ob and ema_buy_condition
sell_signal = trend_down and close < ob and ema_sell_condition
// Ejecutar la estrategia
if (buy_signal)
    strategy.entry("Compra", strategy.long)
if (sell_signal)
    strategy.entry("Venta", strategy.short)
// Calcular precios de toma de ganancias y stop loss
if (strategy.position_size != 0)
    entry_price = strategy.position_avg_price
    is_long = strategy.position_size > 0
    take_profit = entry_price * (1 + (is_long ? 1 : -1) * profit_percent / 100)
    stop_loss = entry_price * (1 + (is_long ? -1 : 1) * stop_loss_percent / 100)
    strategy.exit(is_long ? "Long TP/SL" : "Short TP/SL", limit=take_profit, stop=stop_loss)
// Visualización
plot(ob, "Order Block", color.purple, 2)
plot(ta.sma(src, length), "SMA", color.blue)
plot(ema50_1h, "EMA 50 1h", color.yellow)
plot(ema200_1h, "EMA 200 1h", color.white)
bgcolor(buy_signal ? color.new(color.green, 90) : sell_signal ? color.new(color.red, 90) : na)

Relationnée

Plus de