Stratégie d'achat de rupture de volume de prix

SMA
Date de création: 2024-05-17 14:54:13 Dernière modification: 2024-05-17 14:54:13
Copier: 2 Nombre de clics: 730
1
Suivre
1617
Abonnés

Stratégie d’achat de rupture de volume de prix

Aperçu

Une stratégie de négociation visant à identifier des opportunités d’achat en détectant des ruptures de prix et de volume de transactions qui se produisent simultanément dans une fourchette donnée. La stratégie utilise d’abord un nombre spécifique de lignes comme fenêtre de vérification pour les prix et le volume de transactions. Ces valeurs sont utilisées comme référence pour identifier les conditions de rupture.

Principe de stratégie

  1. Configurez le cycle de rupture de prix et le cycle de rupture de volume comme fenêtres de vérification.
  2. Obtenez le prix le plus élevé et le prix le plus bas de la période de rupture.
  3. Obtenir le plus grand nombre de transactions au cours d’une période de rupture de volume.
  4. Si le prix de clôture est supérieur au cours le plus élevé de la période précédente, le volume de transactions est supérieur au volume de transactions le plus élevé de la période précédente, le prix de clôture est supérieur à la moyenne mobile simple de la longueur de la ligne de tendance (SMA) et qu’il n’y a actuellement aucune transaction ouverte, et que la direction de l’ordre n’est pas dégagée, alors commencez à faire plus.
  5. Si le prix de clôture est inférieur à la longueur de la ligne de tendance pendant 5 jours consécutifs, il est nécessaire d’annuler toutes les positions en plus.
  6. Si le prix de clôture est inférieur au prix le plus bas de la période précédente, le volume de transactions est supérieur au volume de transactions le plus élevé de la période précédente, le prix de clôture est inférieur au SMA de la longueur de la ligne de tendance, et il n’y a actuellement aucune opération d’ouverture de position, et la direction de l’ordre n’est pas trop, alors commencez le blanchiment.
  7. Si le prix de clôture est supérieur à la longueur de la ligne de tendance pendant 5 jours consécutifs, il est nécessaire d’effacer toutes les positions ouvertes.

Avantages stratégiques

  1. Le prix et le volume des transactions peuvent être utilisés comme signaux d’achat et de vente pour mieux identifier les changements de tendance.
  2. Avant d’ouvrir une position, vérifiez si le prix est supérieur ou inférieur au SMA à long terme pour vous assurer que la transaction est conforme aux principales tendances du marché.
  3. La configuration d’une série de jours de clôture à travers les SMA comme signal de plage permet de capturer efficacement la fin d’une tendance.
  4. Il s’applique aux actifs hautement volatils, tels que Bitcoin et Ethereum, qui peuvent profiter des variations soudaines de prix et de volume des transactions sur le marché.

Risque stratégique

  1. Cette stratégie peut conduire à des transactions fréquentes, augmentant ainsi les coûts de transaction, dans des conditions de faible volatilité ou d’absence de tendance évidente sur le marché.
  2. Pour les marchés moins volatils, comme l’indice S&P 500, l’efficacité de cette stratégie pourrait être moins évidente que dans le marché de la crypto-monnaie.
  3. Cette stratégie peut produire moins de signaux de trading sur des périodes plus longues, car la plupart des transactions ont tendance à avoir une durée de détention plus longue.

Orientation de l’optimisation de la stratégie

  1. Adapter la durée des cycles de rupture des prix et de rupture des volumes en fonction des différentes caractéristiques du marché pour s’adapter aux caractéristiques de volatilité des différents actifs.
  2. Essayez d’utiliser d’autres indicateurs de confirmation de tendance, tels que les moyennes mobiles de l’indice, le MACD, etc., pour améliorer l’exactitude des jugements de tendance.
  3. Inclure dans la stratégie des mesures de gestion des risques, telles que la définition de points de perte, l’ajustement dynamique des positions, etc., afin de réduire la marge de risque d’une seule transaction.
  4. Pour les transactions avec une durée de détention plus longue, vous pouvez envisager d’ajouter une stratégie de stop-loss mobile pour mieux protéger les bénéfices déjà réalisés.

Résumer

La “stratégie d’achat de rupture de prix” est une stratégie de suivi de tendance adaptée aux marchés très volatils. En tenant compte à la fois des ruptures de prix et du volume de transactions, et en combinant le SMA à long terme comme filtre de tendance, la stratégie permet de mieux saisir les opportunités de négociation dans des conditions de forte tendance. Cependant, la stratégie peut ne pas bien fonctionner dans des marchés où la tendance n’est pas évidente ou moins volatile, et peut être exposée au risque de transactions fréquentes.

Code source de la stratégie
/*backtest
start: 2023-05-11 00:00:00
end: 2024-05-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © tradedots

//@version=5
strategy("Price and Volume Breakout Buy Strategy [TradeDots]", overlay=true, initial_capital = 10000, default_qty_type = strategy.percent_of_equity, default_qty_value = 70, commission_type = strategy.commission.percent, commission_value = 0.01)

input_price_breakout_period = input.int(60, "Price Breakout Period")
input_volume_breakout_period = input.int(60, "Volume Breakout Period")
input_trendline_legnth = input.int(200, "Trendline Length")
input_order_direction = input.string("Long", options = ["Long", "Short", "Long and Short"], title = "Order Direction")

price_highest = ta.highest(input_price_breakout_period)
price_lowest = ta.lowest(input_price_breakout_period)
volume_highest = ta.highest(volume, input_volume_breakout_period)

// Long Orders
if close > price_highest[1] and volume > volume_highest[1] and close > ta.sma(close, input_trendline_legnth) and strategy.opentrades == 0 and input_order_direction != "Short"
    strategy.entry("Long", strategy.long)
    // line.new(bar_index[input_price_breakout_period], price_highest[1], bar_index, price_highest[1], color = #9cff87, width = 2)
    // label.new(bar_index,low, "🟢 Breakout Buy", style = label.style_label_up, color = #9cff87)

// Close when price is below moving average for 5 consecutive days
if close < ta.sma(close, input_trendline_legnth) and close[1] < ta.sma(close, input_trendline_legnth) and close[2] < ta.sma(close, input_trendline_legnth) and close[3] < ta.sma(close, input_trendline_legnth) and close[4] < ta.sma(close, input_trendline_legnth) and strategy.opentrades.size(strategy.opentrades - 1) > 0
    strategy.close("Long")
    // label.new(bar_index, high, "🔴 Close Position", style = label.style_label_down, color = #f9396a, textcolor = color.white)

// Short Orders
if close < price_lowest[1] and volume > volume_highest[1] and close < ta.sma(close, input_trendline_legnth) and strategy.opentrades == 0 and input_order_direction != "Long"
    strategy.entry("Short", strategy.short)
    // line.new(bar_index[input_price_breakout_period], price_lowest[1], bar_index, price_lowest[1], color = #f9396a, width = 2)
    // label.new(bar_index,high , "🔴 Breakout Sell", style = label.style_label_down, color = #f9396a, textcolor = color.white)

// Close when price is above moving average for 5 consecutive days
if close > ta.sma(close, input_trendline_legnth) and close[1] > ta.sma(close, input_trendline_legnth) and close[2] > ta.sma(close, input_trendline_legnth) and close[3] > ta.sma(close, input_trendline_legnth) and close[4] > ta.sma(close, input_trendline_legnth) and strategy.opentrades.size(strategy.opentrades - 1) < 0
    strategy.close("Short")
    // label.new(bar_index, low, "🟢 Close Position", style = label.style_label_up, color = #9cff87)

plot(ta.sma(close, input_trendline_legnth), color = color.white, linewidth = 2)
plotcandle(open, high, low, close, title='Candles', color = (close > ta.sma(close, input_trendline_legnth) ? #9cff87 : #f9396a), wickcolor=(close > ta.sma(close, input_trendline_legnth) ? #9cff87 : #f9396a), force_overlay = true)