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.
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.
La stratégie d'ouverture inverse a les avantages suivants:
La stratégie d'ouverture inverse engulfing comporte également certains risques, notamment:
La stratégie d'engorgement par ouverture inverse peut être optimisée dans les aspects suivants:
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 **********