Stratégie de trading pour ouvrir haut et fermer bas


Date de création: 2024-02-02 12:03:45 Dernière modification: 2024-02-02 12:03:45
Copier: 0 Nombre de clics: 905
1
Suivre
1617
Abonnés

Stratégie de trading pour ouvrir haut et fermer bas

Aperçu

La stratégie d’ouverture de la position à la clôture à la clôture est une stratégie de trading de type suivi de la tendance. Cette stratégie permet de déterminer la relation entre le prix d’ouverture et le prix de clôture de la ligne K, d’identifier la direction de la tendance à court terme du prix, de faire plus de blanchiment au début de la tendance, d’atteindre rapidement l’entrée sur le marché et de suivre la tendance.

Principe de stratégie

Cette stratégie consiste à déterminer la relation entre le prix d’ouverture et le prix de clôture de la ligne K. Elle génère un signal de multiplication lorsque le prix d’ouverture est égal au prix le plus bas et un signal de rupture lorsque le prix d’ouverture est égal au prix le plus élevé. Elle permet ainsi de capturer des percées à court terme et de suivre la tendance.

Après l’entrée du signal, il ouvrira immédiatement une position en utilisant un nombre fixe pour établir une position. Le stop-loss se réfère à la configuration de l’indicateur ATR et suit les fluctuations du marché. L’objectif d’arrêt est la partie proportionnelle du RR de la distance entre le stop-loss et le prix d’entrée.

La stratégie permet également de liquider toutes les positions à des moments définis par l’utilisateur, par exemple une demi-heure avant la clôture des marchés américains, pour éviter le risque de fortes fluctuations du jour au lendemain.

Analyse des avantages

Cette stratégie présente les avantages suivants:

  1. L’utilisation de la relation entre le prix d’ouverture et le prix de clôture pour déterminer la direction de la tendance permet d’identifier rapidement les ruptures à court terme des prix.

  2. Les signaux d’entrée sont simples, clairs et faciles à réaliser.

  3. Les stops et arrêts de pertes en temps opportun permettent de bloquer les bénéfices et d’éviter l’expansion des pertes.

  4. Le fait d’imposer une période de clôture obligatoire permet d’éviter le risque de fluctuations du jour au lendemain.

  5. Il n’est pas nécessaire de choisir une variété de transaction spécifique, elle s’applique aux marchés tels que les devises, les actions et les crypto-monnaies.

Analyse des risques

Cette stratégie comporte aussi des risques:

  1. L’arrêt ATR est fréquent en cas de tremblement.

  2. Il est possible qu’il y ait une suradaptation sans tenir compte du type de transaction et des caractéristiques de la période.

  3. L’objectif de stop-loss fixe peut ne pas correspondre aux conditions du marché et ne pas être rentable de manière durable.

  4. Il est possible de rater une opportunité de tendance ou de subir des pertes supplémentaires en forçant une position de clôture inappropriée.

Direction d’optimisation

Cette stratégie peut être optimisée dans les domaines suivants:

  1. Optimiser les arrêts de perte, utiliser des arrêts de réserve dans les conditions de tendance, utiliser des arrêts de suspension dans les conditions de choc, etc.

  2. Les conditions de filtrage sont ajoutées pour déterminer le moment d’entrée, en combinaison avec des indicateurs de tendance, etc., afin d’éviter les fausses percées.

  3. Adapter dynamiquement la position de l’arrêt pour déterminer une distance d’arrêt raisonnable en fonction de la volatilité du marché.

  4. Optimiser les délais de clôture, en choisissant les délais appropriés pour les différentes variétés de transactions et régions.

Résumer

Les stratégies de négociation ouvrent et ferment les positions à haute et basse fréquence et établissent rapidement des positions en déterminant simplement les tendances à court terme des prix. Elles présentent des avantages évidents en termes d’entrée simple, de stop loss et de stop loss.

Code source de la stratégie
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
// Open-High-Low strategy

strategy('Strategy: OLH', shorttitle="OLH", overlay=true)

// Inputs
slAtrLen = input.int(defval=14, title="ATR Period for placing SL", group="StopLoss settings")
showSLLines = input.bool(defval=false, title="Show SL lines in chart", tooltip="Show SL lines also as dotted lines in chart. Note: chart may look untidy.", group="Stolploss settings")
// Trade related
rrRatio = input.float(title='Risk:Reward', step=0.1, defval=2.0, group="Trade settings")
endOfDay = input.int(defval=1500, title="Close all trades, default is 3:00 PM, 1500 hours (integer)", group="Trade settings")
mktAlwaysOn = input.bool(defval=true, title="Markets that never closed (Crypto, Forex, Commodity)", tooltip="Some markers never closes. For those cases, make this checked.", group="Trade settings")
lotSize = input.int(title='Lot Size', step=1, defval=1, group="Trade settings")


// Utils
green(open, close) => close > open ? true : false
red(open, close) => close < open ? true : false
body(open, close) => math.abs(open - close)
lowerwick = green(open, close) ? open - low : close - low
upperwick = green(open, close) ? high - close : high - open
crange = high - low
crangep = high[1] - low[1] // previous candle's candle-range
bullish = close > open ? true : false
bearish = close < open ? true : false


// Trade signals
longCond = barstate.isconfirmed and (open == low)
shortCond = barstate.isconfirmed and (open == high)

// For SL calculation
atr = ta.atr(slAtrLen)
highestHigh = ta.highest(high, 7)
lowestLow = ta.lowest(low, 7)
longStop = showSLLines ? lowestLow - (atr * 1) : na
shortStop = showSLLines ? highestHigh + (atr * 1) : na
plot(longStop, title="Buy SL", color=color.green, style=plot.style_cross)
plot(shortStop, title="Sell SL", color=color.red, style=plot.style_cross)

// Trade execute
h = hour(time('1'), syminfo.timezone)
m = minute(time('1'), syminfo.timezone)
hourVal = h * 100 + m
totalTrades = strategy.opentrades + strategy.closedtrades
if (mktAlwaysOn or (hourVal < endOfDay))
    // Entry
    var float sl = na
    var float target = na
    if (longCond)
        strategy.entry("enter long", strategy.long, lotSize, limit=na, stop=na, comment="Enter Long")
        sl := longStop
        target := close + ((close - longStop) * rrRatio)
        alert('Buy:' + syminfo.ticker + ' ,SL:' + str.tostring(math.floor(sl)) + ', Target:' + str.tostring(target), alert.freq_once_per_bar)
    if (shortCond)
        strategy.entry("enter short", strategy.short, lotSize, limit=na, stop=na, comment="Enter Short")
        sl := shortStop
        target := close - ((shortStop - close) * rrRatio)
        alert('Sell:' + syminfo.ticker + ' ,SL:' + str.tostring(math.floor(sl)) + ', Target:' + str.tostring(target), alert.freq_once_per_bar)

    // Exit: target or SL
    if ((close >= target) or (close <= sl))
        strategy.close("enter long", comment=close < sl ? "Long SL hit" : "Long target hit")
    if ((close <= target) or (close >= sl))
        strategy.close("enter short", comment=close > sl ? "Short SL hit" : "Short target hit")
else if (not mktAlwaysOn)
    // Close all open position at the end if Day
    strategy.close_all(comment = "Close all entries at end of day.")