Обратная стратегия поглощения открытия - это простая внутридневная стратегия торговли, основанная на первой свечке после открытия. Основная идея этой стратегии заключается в том, чтобы судить о восходящем или нисходящем тренде первой свечи, когда она появляется после открытия каждый день, и принимать контроперации. Если первая свеча - красная линия ян, идите в длинный; если первая свеча - зеленая линия инь, идите в короткий. Стратегия также устанавливает механизмы остановки потери и получения прибыли для выхода из позиций.
Принцип, лежащий в основе этой стратегии, заключается в особенности первой свечи после открытия. Когда рынок открывается, силы длинных и коротких конфронтируются наиболее интенсивно, и вероятность переворота относительно велика. Судить о восходящем или нисходящем тренде первой свечи и принимать контроперации является основной идеей этой стратегии.
В частности, после открытия нового дня стратегия будет записывать цену открытия, цену закрытия и изменение цены первой свечи. Если цена открытия выше цены закрытия (зеленая линия инь), это означает, что медведи выиграли, и мы должны долго; если цена открытия ниже цены закрытия (красная линия ян), это означает, что быки выиграли, и мы должны коротко. Принимая такие контроперации, стратегия пытается поймать возможности реверсии после открытия.
Между тем, стратегия также устанавливает механизмы стоп-лосса и получения прибыли, включая длинную цену стоп-лосса, длинную цену прибыли, короткую цену стоп-лосса и короткую цену прибыли, для контроля рисков и прибыли длинных и коротких позиций, избегая чрезмерных потерь или преждевременного получения прибыли.
Стратегия обратного открытия поглощения имеет следующие преимущества:
Стратегия обратного открытия поглощения также сопряжена с некоторыми рисками, в основном включающими:
Стратегия обратного открытия поглощения может быть оптимизирована в следующих аспектах:
Стратегия обратного открытия поглощения пытается поймать возможности обратного открытия после открытия, судя по направлению первой свечи и принимая контроперации. Идея стратегии проста с низкими затратами на участие и имеет некоторую практическую ценность. Но мы также должны трезво осознавать риски и постоянно совершенствовать и оптимизировать стратегию на практике, чтобы сделать ее более надежной и надежной.
/*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 **********