Stratégie de rupture haussière intraday

Auteur:ChaoZhang est là., Date: 2024-03-29 16h30
Les étiquettes:

img

Résumé

Cette stratégie est une stratégie de trading haussière intradienne basée sur des indicateurs techniques. Elle utilise principalement trois indicateurs techniques pour déterminer le moment des entrées longues: 1. swing low 2. modèle de bougie haussière 3. survente extrême. En même temps, elle utilise l'indicateur ATR (Average True Range) pour calculer les prix stop-loss et take-profit. Cette stratégie est applicable à tous les délais et à tous les actifs sous-jacents.

Principes de stratégie

La stratégie repose principalement sur les principes suivants:

  1. Lors d'une tendance haussière, les cours des actions reculent souvent et forment des bas locaux, qui sont souvent de bonnes opportunités d'achat.
  2. Certains modèles de chandeliers spéciaux signalent souvent des renversements ou des continuations de tendance.
  3. Après des jours consécutifs de baisse, la dynamique baissière s'affaiblit progressivement et la marge de manœuvre pour une nouvelle baisse est limitée.
  4. Les fluctuations des cours des actions ont une périodicité et une similitude, qui peuvent être mesurées par l'indicateur ATR et utilisées pour calculer les distances d'arrêt-perte et de prise de profit appropriées.

Les avantages de la stratégie

  1. Combiner trois indicateurs techniques classiques pour former un système de négociation quantitatif rigoureux, en évitant les inconvénients de la subjectivité.
  2. Les niveaux de stop-loss et de take-profit sont basés sur l'indicateur de volatilité ATR, qui peut être quantifié de manière objective, évitant les inconvénients de la subjectivité.
  3. Une large gamme d'applications, sans restriction de délais ou d'actifs sous-jacents, permettant une utilisation complète des avantages pour réaliser des bénéfices.

Risques stratégiques

  1. Une grande précision dans le jugement des tendances haussières unilatérales, mais des entrées fréquentes dans un marché volatil peuvent entraîner des pertes accrues.
  2. Le niveau de prise de profit est trop élevé, ce qui entraîne une prise de profit lente et une faible utilisation du capital.
  3. L'indicateur de survente extrême a une capacité limitée à juger des renversements et peut échouer sur les marchés en tendance.

Directions d'optimisation de la stratégie

  1. Considérez l'ajout d'indicateurs de tendance, tels que MA et MACD, pour déterminer la direction générale de la tendance.
  2. Considérez l'optimisation de l'algorithme pour trouver les paramètres optimaux, en particulier la sélection des multiplicateurs ATR.
  3. L'indicateur de survente extrême peut être optimisé, par exemple en le changeant en indicateurs de survente plus matures tels que KDJ ou RSI.

Résumé

Cette stratégie de rupture haussière intradienne est une stratégie de trading quantitative basée sur les bas de balance, les tendances haussières et les renversements de survente. Elle utilise trois indicateurs techniques pour capturer les points d'entrée longs sous différents angles. En même temps, elle utilise l'indicateur de volatilité ATR pour calculer les niveaux dynamiques d'arrêt-perte et de prise de profit.


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

//@version=5
strategy("Intraday Bullish Script", overlay=true, margin_long=100, margin_short=100)



// Settings for Strategy 1
entryCondition1 = input.bool(true, title="Use Entry Condition - Strategy 1")

// Input for ATR multiplier for stop loss 
atrMultiplierforstoploss = input.float(2, title="ATR Multiplier for Stop Loss")

// Input for ATR multiplier for target price
atrMultiplierforlongs = input.float(4, title="ATR Multiplier for Target Price")

// Calculate ATR
atrLength = input.int(14, title="ATR Length")
atrValue = ta.atr(atrLength)

// Swing low condition - Strategy 1
swingLow1 = low == ta.lowest(low, 12) or low[1] == ta.lowest(low, 12)


/// 
maj_qual = 6  //input(6)
maj_len = 30  //input(30)
min_qual = 5  //input(5)
min_len = 5  //input(5)

lele(qual, len) =>
    bindex = 0.0
    bindex := nz(bindex[1], 0)
    sindex = 0.0
    sindex := nz(sindex[1], 0)
    ret = 0
    if close > close[4]
        bindex := bindex + 1
        bindex
    if close < close[4]
        sindex := sindex + 1
        sindex
    if bindex > qual and close < open and high >= ta.highest(high, len)
        bindex := 0
        ret := -1
        ret
    if sindex > qual and close > open and low <= ta.lowest(low, len)
        sindex := 0
        ret := 1
        
major = lele(maj_qual, maj_len)
minor = lele(min_qual, min_len)

ExaustionLow  = major ==  1 ? 1 : 0

Bullish3LineStrike = close[3] < open[3] and close[2] < open[2] and close[1] < open[1] and close > open[1]

// Entry and Exit Logic for Strategy 2
// Create variables to track trade directions and entry prices for each strategy
var int tradeDirection1 = na

var float entryLongPrice1 = na


// Calculate entry prices for long positions - Strategy 1
if (swingLow1 or Bullish3LineStrike)
    entryLongPrice1 := close
    tradeDirection1 := 1



// Calculate target prices for long positions based on ATR - Strategy 1
targetLongPrice1 = entryLongPrice1 + (atrMultiplierforlongs * atrValue)



// Calculate stop loss prices for long positions based on entry - Strategy 1
stopLossLongPrice1 = entryLongPrice1 - (atrMultiplierforstoploss * atrValue)


// Entry conditions for Strategy 1
if (tradeDirection1 == 1 and (swingLow1 or Bullish3LineStrike))
    strategy.entry("Long - Strategy 1", strategy.long)


// Exit conditions for long positions: When price reaches or exceeds the target - Strategy 1
if (close >= targetLongPrice1)
    strategy.close("Long - Strategy 1", comment="Take Profit Hit")

// Exit conditions for long positions: When price hits stop loss - Strategy 1
if (close <= stopLossLongPrice1)
    strategy.close("Long - Strategy 1", comment="Stop Loss Hit")

Plus de