
Il s’agit d’une stratégie de négociation quantitative complexe qui combine plusieurs indicateurs techniques et idées de négociation. La stratégie est principalement basée sur le bloc d’ordres, la détection des changements de tendance, le croisement des moyennes mobiles et l’analyse de plusieurs périodes. L’idée centrale de la stratégie est d’utiliser le comportement des prix et les indicateurs techniques pour une entrée et une sortie précises dans la direction de la tendance de la période plus longue (une heure).
Bloc d’ordres (Order Block): stratégie qui utilise des fonctions personnalisées pour calculer le bloc d’ordres, un niveau de prix important qui représente généralement une zone concentrée de commandes de grandes institutions.
Détection des changements de tendance: utilisation d’un croisement avec une moyenne mobile simple (SMA) pour identifier les changements de tendance potentiels.
Analyse à plusieurs périodes: calcul des moyennes mobiles indexées de 50 cycles et de 200 cycles sur une période d’une heure (EMA) pour déterminer les grandes tendances du marché.
Conditions d’entrée :
Stratégie de sortie: utilisez des niveaux de stop-loss et de stop-loss à pourcentage fixe pour gérer le risque et verrouiller les bénéfices.
L’analyse multidimensionnelle, qui combine plusieurs périodes et indicateurs techniques, fournit une perspective plus complète du marché.
Suivi des tendances: augmentation de la probabilité de profit en négociant dans le sens des grandes tendances.
Admission précise: utilisez les blocs de commandes et les changements de tendances à court terme pour optimiser l’heure d’entrée.
Gestion des risques: utilisez des stop-loss et des stop-loss prédéfinis pour contrôler efficacement le risque de chaque transaction.
Adaptabilité: les paramètres de la stratégie peuvent être ajustés pour s’adapter à différentes conditions de marché.
Surtransaction: Les signaux de transaction peuvent être fréquents dans les marchés très volatils, ce qui augmente les coûts de transaction.
Risque de glissement: dans un marché peu liquide, le prix d’exécution réel peut être très éloigné du prix idéal.
Risque de renversement de tendance: la stratégie peut subir des pertes continues près du point de renversement de tendance.
Sensitivité des paramètres: les performances des stratégies peuvent être très sensibles aux paramètres et nécessitent une optimisation continue.
Dépendance aux conditions du marché: les stratégies peuvent ne pas être efficaces dans les marchés à courte portée ou les marchés à forte volatilité.
Ajustement des paramètres dynamiques: envisagez d’ajuster automatiquement le pourcentage de stop-loss en fonction de la volatilité du marché.
Ajout de filtres: introduire des indicateurs techniques supplémentaires ou des indicateurs de l’humeur du marché pour réduire les faux signaux.
Filtrage temporel: ajouter des restrictions aux fenêtres de temps de négociation pour éviter les périodes de faible liquidité.
Gestion de position: mise en œuvre de stratégies de gestion de position plus complexes, telles que l’ajustement de position basé sur la volatilité.
Retour et optimisation: effectuer un retour plus large des données historiques pour trouver la combinaison optimale de paramètres.
Augmentation de l’identification de l’environnement du marché: développer des algorithmes pour identifier les différents états du marché et adapter la stratégie en conséquence.
Il s’agit d’une stratégie de négociation quantitative, complexe et logique, combinant l’analyse de plusieurs périodes, la théorie des blocs d’ordres et la technologie de suivi des tendances. La stratégie vise à améliorer le taux de réussite des transactions en recherchant des points d’entrée précis dans la direction des grandes tendances. Cependant, en raison de sa complexité, la stratégie est également confrontée à des surajustements et à la sensibilité des paramètres.
/*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)