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

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

Auteur:ChaoZhang est là., Date: 2024-05-17 14:54:13 Je vous en prie.
Les étiquettes:SMA

img

Résumé

La stratégie d'achat de rupture de prix et de volume est une stratégie de trading conçue pour identifier les opportunités d'achat en détectant des ruptures de prix et de volume simultanées sur une plage spécifiée de bougies. La stratégie prend d'abord le nombre spécifique de bougies comme fenêtre d'examen pour le prix et le volume. Ces valeurs sont utilisées comme repères pour identifier les conditions de rupture. Une transaction est initiée lorsque le prix de clôture et le volume de négociation dépassent les valeurs maximales observées dans la fenêtre prédéterminée. Le prix doit être supérieur à une moyenne mobile désignée, servant d'indicateur de tendance, garantissant que tous les métiers sont alignés sur la tendance du marché.

Principe de stratégie

  1. Définir la période de rupture des prix et la période de rupture du volume comme fenêtre d'examen.
  2. Obtenez le prix le plus élevé et le prix le plus bas dans la période de rupture des prix.
  3. Obtenez le volume de négociation le plus élevé dans la période de rupture du volume.
  4. Si le prix de clôture est supérieur au prix le plus élevé de la période précédente, que le volume de négociation est supérieur au volume de négociation le plus élevé de la période précédente, que le prix de clôture est supérieur à la moyenne mobile simple (SMA) de la longueur de la ligne de tendance et qu'il n'y a actuellement aucune transaction ouverte et que la direction de l'ordre n'est pas définie sur short, alors commencez à long.
  5. Si le prix de clôture est inférieur à la SMA de la longueur de la ligne de tendance pendant 5 jours consécutifs, fermer toutes les positions longues.
  6. Si le prix de clôture est inférieur au prix le plus bas de la période précédente, que le volume de négociation est supérieur au volume de négociation le plus élevé de la période précédente, que le prix de clôture est inférieur à la SMA de la longueur de la ligne de tendance et qu'il n'y a actuellement aucune transaction ouverte et que la direction de l'ordre n'est pas définie sur long, alors commencez à passer à court.
  7. Si le prix de clôture est supérieur à la SMA de la longueur de la ligne de tendance pendant 5 jours consécutifs, fermer toutes les positions courtes.

Les avantages de la stratégie

  1. L'utilisation des écarts de prix et de volume comme signaux d'achat et de vente permet de mieux confirmer les changements de tendance.
  2. En vérifiant si le prix est supérieur ou inférieur à la SMA à long terme avant d'ouvrir une position, on s'assure que les transactions sont conformes à la tendance principale du marché.
  3. En définissant le prix de clôture traversant la SMA pendant plusieurs jours consécutifs comme signal de clôture, on peut effectivement capturer la fin de la tendance.
  4. Convient pour les actifs hautement volatils tels que Bitcoin et Ethereum, il peut tirer parti des changements soudains des prix du marché et des volumes de transactions pour réaliser des bénéfices.

Risques stratégiques

  1. Dans les marchés où la volatilité est faible ou où les tendances ne sont pas évidentes, cette stratégie peut conduire à des transactions fréquentes, ce qui augmente les coûts de transaction.
  2. Pour les marchés à faible volatilité, tels que l'indice S&P 500, l'effet de cette stratégie peut ne pas être aussi important que sur le marché des crypto-monnaies.
  3. Cette stratégie peut générer moins de signaux de négociation sur des délais plus longs, car la plupart des transactions ont tendance à avoir une période de détention plus longue.

Direction de l'optimisation de la stratégie

  1. Ajuster la durée de la période de rupture des prix et de la période de rupture du volume en fonction des différentes caractéristiques du marché afin de 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 exponentielles, le MACD, etc., pour améliorer la précision du jugement de tendance.
  3. Incorporer des mesures de gestion des risques dans la stratégie, telles que la fixation de niveaux de stop-loss et l'ajustement dynamique des positions afin de réduire l'exposition au risque d'une seule opération.
  4. Pour les transactions avec des périodes de détention plus longues, envisagez d'ajouter une stratégie de trailing stop pour mieux protéger les bénéfices déjà obtenus.

Résumé

La Price and Volume Breakout Buy Strategy est une stratégie de suivi des tendances adaptée aux marchés très volatils. En considérant à la fois les ruptures de prix et de volume, et en combinant la SMA à long terme comme un filtre de tendance, cette stratégie peut mieux saisir les opportunités de trading sur les marchés forts. Cependant, cette stratégie peut mal fonctionner sur les marchés sans tendances évidentes ou faible volatilité et peut faire face au risque de négociation fréquente. Par conséquent, dans les applications pratiques, il est nécessaire d'optimiser et d'ajuster la stratégie en fonction des différentes caractéristiques du marché et des styles de trading personnels pour améliorer sa stabilité et sa rentabilité.


/*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)



Relationnée

Plus de