Reverse Opening Engulfing Strategy adalah strategi perdagangan intraday yang mudah berdasarkan candlestick pertama selepas pembukaan. Idea utama strategi ini adalah untuk menilai trend menaik atau menurun candlestick pertama apabila ia muncul selepas pembukaan setiap hari, dan mengambil operasi lawan. Jika candlestick pertama adalah garis yang merah, pergi panjang; jika candlestick pertama adalah garis yin hijau, pergi pendek. Strategi ini juga menetapkan mekanisme stop loss dan mengambil keuntungan untuk keluar dari kedudukan.
Prinsip di sebalik strategi ini adalah ciri khas candlestick pertama selepas pembukaan. Apabila pasaran dibuka, pasukan panjang dan pendek berhadapan paling sengit, dan kebarangkalian pembalikan agak besar.
Secara khusus, selepas pembukaan hari baru, strategi akan merekodkan harga pembukaan, harga penutupan dan perubahan harga candlestick pertama. Jika harga pembukaan lebih tinggi daripada harga penutupan (garis yin hijau), ini bermakna beruang telah menang dan kita harus panjang; jika harga pembukaan lebih rendah daripada harga penutupan (garis yang merah), ini bermakna lembu telah menang dan kita harus pendek. Dengan mengambil operasi lawan seperti itu, strategi cuba untuk menangkap peluang pembalikan selepas pembukaan.
Sementara itu, strategi itu juga menetapkan mekanisme stop loss dan mengambil keuntungan, termasuk harga stop loss panjang, harga mengambil keuntungan panjang, harga stop loss pendek dan harga mengambil keuntungan pendek, untuk mengawal risiko dan keuntungan kedudukan panjang dan pendek, mengelakkan kerugian berlebihan atau mengambil keuntungan awal.
Strategi pembukaan terbalik mempunyai kelebihan berikut:
Strategi Pembukaan Terbalik juga mempunyai beberapa risiko, terutamanya termasuk:
Strategi Penutupan Pembukaan Terbalik boleh dioptimumkan dalam aspek berikut:
Strategi Penutupan Terbalik Menyerap cuba untuk menangkap peluang pembalikan selepas pembukaan dengan menilai arah lilin pertama dan mengambil operasi lawan. Idea strategi adalah mudah dengan kos penyertaan yang rendah, dan mempunyai beberapa nilai praktikal. Tetapi kita juga harus sedar tentang risiko, dan sentiasa meningkatkan dan mengoptimumkan strategi dalam amalan untuk menjadikannya lebih mantap dan boleh dipercayai.
/*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 **********