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

Stratégie quantitative de flux de commandes institutionnels à plusieurs niveaux avec système dynamique de mise à l'échelle des positions

Auteur:ChaoZhang est là., Date: 2024-12-27 à 15h01
Les étiquettes:Le PCTVOL- Je vous en prie.Obésité

img

Résumé

Cette stratégie est un système de trading intelligent basé sur le flux de commandes institutionnel, qui prédit les points de renversement potentiels des prix en identifiant les blocs d'ordres sur le marché.

Principes de stratégie

La stratégie repose sur plusieurs éléments clés:

  1. Identification des blocs d'ordre - Utilisation d'une fenêtre de rétrospective de 20 périodes pour identifier les blocs d'ordre d'achat et de vente grâce à l'analyse des modèles de bougies.
  2. Contrôle des heures de négociation - La négociation est limitée à la session principale de 09h30 à 16h00, évitant les périodes de forte volatilité pendant l'ouverture et la fermeture du marché.
  3. Logique d'entrée - Les positions longues sont ouvertes lorsque le prix dépasse le bloc d'ordre d'achat pendant les heures de négociation, et les positions courtes lorsque le prix dépasse le bloc d'ordre de vente.
  4. Étalonnage de la position - met en œuvre un système d'échelle à trois niveaux de 50% à 30% à 20% correspondant à des objectifs de 0,5%, 1,0% et 1,5%.

Les avantages de la stratégie

  1. Détection d'ordres intelligents - Capture avec précision les niveaux de prix clés où de grandes positions de capital sont construites ou fermées grâce à une analyse dynamique des hauts et des bas.
  2. Répartition des risques - La mise à l'échelle des positions à trois niveaux répartit efficacement les risques, garantissant les bénéfices tout en permettant aux tendances de se développer pleinement.
  3. Filtrage du temps - Les restrictions de temps de négociation évitent les périodes de forte volatilité, ce qui améliore la stabilité des transactions.
  4. Soutien visuel - La stratégie fournit une visualisation claire des blocs d'ordres, aidant les traders à comprendre la structure du marché.

Risques stratégiques

  1. Risque de fausse rupture - Plusieurs faux signaux peuvent se produire sur les marchés à courants, ce qui suggère la nécessité de filtrer les indicateurs de volatilité.
  2. Impact du glissement - Les sorties de mise à l'échelle de positions peuvent être confrontées à un glissement sur les marchés à faible liquidité, ce qui nécessite un ajustement approprié de l'espacement des objectifs.
  3. Dépendance des tendances - La stratégie fonctionne bien sur les marchés en tendance, mais peut générer des transactions fréquentes dans des conditions variables.

Optimisation de la stratégie

  1. Adaptation à la volatilité - Recommander l'intégration de l'indicateur ATR pour ajuster dynamiquement les pourcentages cibles en fonction de la volatilité du marché.
  2. Analyse du volume des flux de commandes - envisager de combiner l'analyse du volume afin d'accroître la fiabilité de la confirmation des blocs de commandes.
  3. fenêtre de temps dynamique - envisager d'ajuster dynamiquement la période de rétrospective en fonction des conditions du marché afin d'améliorer l'adaptabilité de la stratégie.
  4. Contrôle renforcé des risques - Ajout de limites de tirage maximales et de limites de pertes quotidiennes pour améliorer la robustesse de la stratégie.

Résumé

Cette stratégie construit un système de trading complet grâce à l'analyse institutionnelle des flux de commandes et à la gestion dynamique des positions.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=6
strategy("Institutional Order Flow Strategy", overlay=true)

// Input settings
inputSession = input("0930-1600", "Trading Session") // Trading session
lookbackPeriod = input.int(20, "Order Block Lookback Period", minval=1) // Lookback for Order Blocks
target1Pct = input.float(0.5, "Target 1 (% move)", step=0.1, minval=0.1) // First profit target
target2Pct = input.float(1.0, "Target 2 (% move)", step=0.1, minval=0.1) // Second profit target
target3Pct = input.float(1.5, "Target 3 (% move)", step=0.1, minval=0.1) // Third profit target

// Order Block identification
highestHigh = ta.highest(high, lookbackPeriod)
lowestLow = ta.lowest(low, lookbackPeriod)
orderBlockBuy = ta.valuewhen(close[1] < open[1] and close > open, highestHigh, 0)
orderBlockSell = ta.valuewhen(close[1] > open[1] and close < open, lowestLow, 0)

// Entry logic
inSession = true
longCondition = close > orderBlockBuy and inSession
shortCondition = close < orderBlockSell and inSession

// Strategy entries
if longCondition
    strategy.entry("Long", strategy.long)

if shortCondition
    strategy.entry("Short", strategy.short)

// Calculate targets for scaling out
longTarget1 = strategy.position_avg_price + strategy.position_avg_price * target1Pct / 100
longTarget2 = strategy.position_avg_price + strategy.position_avg_price * target2Pct / 100
longTarget3 = strategy.position_avg_price + strategy.position_avg_price * target3Pct / 100

shortTarget1 = strategy.position_avg_price - strategy.position_avg_price * target1Pct / 100
shortTarget2 = strategy.position_avg_price - strategy.position_avg_price * target2Pct / 100
shortTarget3 = strategy.position_avg_price - strategy.position_avg_price * target3Pct / 100

// Exit logic with scaling out
if strategy.position_size > 0
    strategy.exit("Target 1", from_entry="Long", limit=longTarget1, qty_percent=50)
    strategy.exit("Target 2", from_entry="Long", limit=longTarget2, qty_percent=30)
    strategy.exit("Target 3", from_entry="Long", limit=longTarget3, qty_percent=20)

if strategy.position_size < 0
    strategy.exit("Target 1", from_entry="Short", limit=shortTarget1, qty_percent=50)
    strategy.exit("Target 2", from_entry="Short", limit=shortTarget2, qty_percent=30)
    strategy.exit("Target 3", from_entry="Short", limit=shortTarget3, qty_percent=20)

// Visualize Order Blocks
plot(orderBlockBuy, "Order Block Buy", color=color.green, linewidth=2, style=plot.style_line)
plot(orderBlockSell, "Order Block Sell", color=color.red, linewidth=2, style=plot.style_line)


Relationnée

Plus de