Stratégie d'ouverture inverse

Auteur:ChaoZhang est là., Date: 2023-11-22 16h05 et 24h
Les étiquettes:

img

Résumé

La stratégie d'engloutissement d'ouverture inverse est une stratégie de trading intraday simple basée sur le premier chandelier après l'ouverture. L'idée de base de cette stratégie est de juger de la tendance haussière ou baissière du premier chandelier lorsqu'il apparaît après l'ouverture tous les jours, et de prendre des contre-opérations. Si le premier chandelier est une ligne rouge yang, allez long; si le premier chandelier est une ligne yin verte, allez court.

La logique de la stratégie

Le principe derrière cette stratégie est la particularité du premier chandelier après l'ouverture. Lorsque le marché s'ouvre, les forces des longs et des shorts se confrontent le plus intensément, et la probabilité d'un renversement est relativement grande.

Plus précisément, après l'ouverture d'une nouvelle journée, la stratégie enregistrera le prix d'ouverture, le prix de clôture et le changement de prix du premier chandelier. Si le prix d'ouverture est supérieur au prix de clôture (ligne yin verte), cela signifie que les ours ont gagné et que nous devrions long; si le prix d'ouverture est inférieur au prix de clôture (ligne yang rouge), cela signifie que les taureaux ont gagné et que nous devrions court. En prenant de telles contre-opérations, la stratégie tente de saisir les opportunités d'inversion après l'ouverture.

Dans le même temps, la stratégie établit également des mécanismes de stop-loss et de prise de profit, y compris le prix de stop-loss long, le prix de profit long, le prix de stop-loss court et le prix de profit court, afin de contrôler les risques et les bénéfices des positions longues et courtes, en évitant des pertes excessives ou une prise de profit prématurée.

Analyse des avantages

La stratégie d'ouverture inverse a les avantages suivants:

  1. La logique est simple et claire, facile à comprendre et à mettre en œuvre.
  2. Il utilise la valeur prédictive élevée du segment d'ouverture pour saisir les opportunités d'inversion.
  3. Les paramètres stop loss et take profit peuvent contrôler efficacement les risques.
  4. L'idée de stratégie est universelle et convient à la plupart des actions.
  5. Le coût de participation est relativement faible et le contrôle du capital est facile.

Analyse des risques

La stratégie d'ouverture inverse engulfing comporte également certains risques, notamment:

  1. La probabilité d'un échec de l'ouverture de l'inversion. Un échec du signal d'inversion du premier chandelier peut causer d'énormes pertes.
  2. L'incapacité de filtrer efficacement les actions de mauvaise qualité.
  3. Incapacité de contrôler efficacement les risques systémiques liés aux événements du cygne noir, tels que l'impact de nouvelles significativement négatives.
  4. Les paramètres d'arrêt des pertes et de prise de profit inappropriés peuvent entraîner des pertes accrues ou des bénéfices réduits.

Directions d'optimisation

La stratégie d'engorgement par ouverture inverse peut être optimisée dans les aspects suivants:

  1. Augmenter le test de validité des signaux d'ouverture pour éviter les signaux non valides, par exemple, combiner l'analyse du volume.
  2. Sélectionnez des groupes de stocks en intégrant l'analyse fondamentale et technique pour filtrer les stocks de mauvaise qualité.
  3. Ajouter des modules de surveillance pour les événements majeurs et les nouvelles afin de contrôler les risques systémiques.
  4. Utiliser des algorithmes génétiques, l'apprentissage automatique et d'autres méthodes pour optimiser dynamiquement les paramètres de stop loss et de prise de profit.

Résumé

La stratégie d'engloutissement d'ouverture inverse tente de saisir les opportunités d'inversion après l'ouverture en jugeant la direction du premier chandelier et en prenant des contre-opérations.


/*backtest
start: 2023-10-22 00:00:00
end: 2023-11-21 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © vikris
//@version=4
strategy("[VJ]First Candle Strategy", overlay = true,calc_on_every_tick = true,default_qty_type=strategy.percent_of_equity,default_qty_value=100,initial_capital=750,commission_type=strategy.commission.percent, 
     commission_value=0.02)


// ********** Strategy inputs - Start **********

// Used for intraday handling
// Session value should be from market start to the time you want to square-off 
// your intraday strategy
// Important: The end time should be at least 2 minutes before the intraday
// square-off time set by your broker
var i_marketSession = input(title="Market session", type=input.session, 
     defval="0915-1455", confirm=true)

// Make inputs that set the take profit % (optional)
longProfitPerc = input(title="Long Take Profit (%)",
     type=input.float, minval=0.0, step=0.1, defval=1) * 0.01

shortProfitPerc = input(title="Short Take Profit (%)",
     type=input.float, minval=0.0, step=0.1, defval=1) * 0.01
     
// Set stop loss level with input options (optional)
longLossPerc = input(title="Long Stop Loss (%)",
     type=input.float, minval=0.0, step=0.1, defval=0.5) * 0.01

shortLossPerc = input(title="Short Stop Loss (%)",
     type=input.float, minval=0.0, step=0.1, defval=0.5) * 0.01    


// ********** Strategy inputs - End **********


// ********** Supporting functions - Start **********

// A function to check whether the bar or period is in intraday session
barInSession(sess) => time(timeframe.period, sess) != 0



// Figure out take profit price
longExitPrice  = strategy.position_avg_price * (1 + longProfitPerc)
shortExitPrice = strategy.position_avg_price * (1 - shortProfitPerc)

// Determine stop loss price
longStopPrice  = strategy.position_avg_price * (1 - longLossPerc)
shortStopPrice = strategy.position_avg_price * (1 + shortLossPerc)


// ********** Supporting functions - End **********


// ********** Strategy - Start **********
// See if intraday session is active
bool intradaySession = barInSession(i_marketSession)

// Trade only if intraday session is active

//=================Strategy logic goes in here===========================
 
// If start of the daily session changed, then it's first bar of the new session
isNewDay = time("D") != time("D")[1]
var firstBarCloseValue = close
var firstBarOpenValue = open
if isNewDay
    firstBarCloseValue := close
    firstBarOpenValue := open


greenCandle = firstBarOpenValue < firstBarCloseValue
redCandle = firstBarOpenValue > firstBarCloseValue

buy = redCandle
sell = greenCandle


// plot(firstBarCloseValue)
// plot(firstBarOpenValue)



//Final Long/Short Condition
longCondition = buy
shortCondition =sell
 
//Long Strategy - buy condition and exits with Take profit and SL
if (longCondition and intradaySession)
    stop_level = longStopPrice
    profit_level = longExitPrice
    strategy.entry("My Long Entry Id", strategy.long)
    strategy.exit("TP/SL", "My Long Entry Id", stop=stop_level, limit=profit_level)


//Short Strategy - sell condition and exits with Take profit and SL
if (shortCondition and intradaySession)
    stop_level = shortStopPrice
    profit_level = shortExitPrice
    strategy.entry("My Short Entry Id", strategy.short)
    strategy.exit("TP/SL", "My Short Entry Id", stop=stop_level, limit=profit_level)
 
 
// Square-off position (when session is over and position is open)
squareOff = (not intradaySession) and (strategy.position_size != 0)
strategy.close_all(when = squareOff, comment = "Square-off")

// ********** Strategy - End **********

Plus de