Strategi Membuka Berbalik Mengambil

Penulis:ChaoZhang, Tanggal: 2023-11-22 16:05:24
Tag:

img

Gambaran umum

Reverse Opening Engulfing Strategy adalah strategi trading intraday sederhana yang didasarkan pada candlestick pertama setelah pembukaan. Ide inti dari strategi ini adalah untuk menilai uptrend atau downtrend candlestick pertama ketika muncul setelah pembukaan setiap hari, dan mengambil counter operations. Jika candlestick pertama adalah garis yang merah, pergi panjang; jika candlestick pertama adalah garis yin hijau, pergi pendek. Strategi ini juga mengatur stop loss dan mengambil keuntungan mekanisme untuk keluar posisi.

Logika Strategi

Prinsip di balik strategi ini adalah keanehan candlestick pertama setelah pembukaan. Ketika pasar dibuka, kekuatan long dan short berhadapan paling intens, dan kemungkinan pembalikan relatif besar.

Secara khusus, setelah pembukaan hari baru, strategi akan mencatat harga pembukaan, harga penutupan dan perubahan harga candlestick pertama. Jika harga pembukaan lebih tinggi dari harga penutupan (garis yin hijau), itu berarti beruang telah menang dan kita harus panjang; jika harga pembukaan lebih rendah dari harga penutupan (garis yang merah), itu berarti banteng telah menang dan kita harus pendek. Dengan mengambil operasi kontra seperti itu, strategi mencoba untuk menangkap peluang pembalikan setelah pembukaan.

Sementara itu, strategi ini juga menetapkan mekanisme stop loss dan take profit, termasuk harga stop loss panjang, harga take profit panjang, harga stop loss pendek dan harga take profit pendek, untuk mengendalikan risiko dan keuntungan dari posisi panjang dan pendek, menghindari kerugian yang berlebihan atau mengambil keuntungan prematur.

Analisis Keuntungan

Strategi pembukaan terbalik mengangkut memiliki keuntungan berikut:

  1. Logikanya sederhana dan jelas, mudah dimengerti dan diterapkan.
  2. Ini memanfaatkan nilai prediktif tinggi dari segmen pembukaan untuk menangkap peluang pembalikan.
  3. Pengaturan stop loss dan take profit dapat secara efektif mengendalikan risiko.
  4. Ide strategi memiliki universalitas dan cocok untuk sebagian besar saham.
  5. Biaya partisipasi relatif rendah dan kontrol modal mudah.

Analisis Risiko

Strategi pembukaan terbalik juga memiliki beberapa risiko, terutama termasuk:

  1. Kemungkinan kegagalan pembalikan pembukaan. sinyal pembalikan yang gagal dari candlestick pertama dapat menyebabkan kerugian besar.
  2. Ketidakmampuan untuk secara efektif menyaring saham berkualitas rendah. Strategi tidak memiliki analisis fundamental yang cukup dan dapat memilih beberapa saham dengan fundamental yang buruk.
  3. Ketidakmampuan untuk secara efektif mengendalikan risiko sistemik dari peristiwa angsa hitam, seperti dampak berita negatif yang signifikan.
  4. Pengaturan stop loss dan take profit yang tidak tepat dapat menyebabkan kerugian meningkat atau keuntungan berkurang.

Arahan Optimasi

Strategi Reverse Opening Engulfing dapat dioptimalkan dalam aspek berikut:

  1. Meningkatkan tes validitas sinyal pembukaan untuk menghindari sinyal yang tidak valid, misalnya, analisis volume gabungan.
  2. Pilih kumpulan stok dengan mengintegrasikan analisis fundamental dan teknis untuk menyaring stok berkualitas rendah.
  3. Tambahkan modul pemantauan untuk peristiwa besar dan berita untuk mengendalikan risiko sistemik.
  4. Menggunakan algoritma genetik, pembelajaran mesin dan metode lain untuk secara dinamis mengoptimalkan stop loss dan mengambil pengaturan keuntungan.

Ringkasan

Reverse Opening Engulfing Strategy mencoba untuk menangkap peluang pembalikan setelah pembukaan dengan menilai arah lilin pertama dan mengambil counter operations. Ide strategi sederhana dengan biaya partisipasi yang rendah, dan memiliki beberapa nilai praktis.


/*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 **********

Lebih banyak