Strategi Membuka Balik Mengambil

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

img

Ringkasan

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.

Logika Strategi

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.

Analisis Kelebihan

Strategi pembukaan terbalik mempunyai kelebihan berikut:

  1. Logiknya mudah dan jelas, mudah difahami dan dilaksanakan.
  2. Ia menggunakan nilai ramalan tinggi segmen pembukaan untuk menangkap peluang pembalikan.
  3. Tetapan stop loss dan mengambil keuntungan dapat mengawal risiko dengan berkesan.
  4. Idea strategi mempunyai keseluruhan dan sesuai untuk kebanyakan saham.
  5. Kos penyertaan agak rendah dan kawalan modal mudah.

Analisis Risiko

Strategi Pembukaan Terbalik juga mempunyai beberapa risiko, terutamanya termasuk:

  1. Kemungkinan kegagalan pembalikan pembukaan. Isyarat pembalikan yang gagal dari candlestick pertama boleh menyebabkan kerugian besar.
  2. Ketidakupayaan untuk menapis saham berkualiti rendah dengan berkesan. Strategi tidak mempunyai analisis asas yang mencukupi dan mungkin memilih beberapa saham dengan asas yang lemah.
  3. Ketidakupayaan untuk mengawal risiko sistemik daripada peristiwa black swan, seperti kesan berita negatif yang ketara.
  4. Tetapan Stop Loss dan Take Profit yang tidak betul boleh menyebabkan kerugian meningkat atau keuntungan berkurangan.

Arahan pengoptimuman

Strategi Penutupan Pembukaan Terbalik boleh dioptimumkan dalam aspek berikut:

  1. Meningkatkan ujian kesahihan isyarat pembukaan pembalikan untuk mengelakkan isyarat yang tidak sah, contohnya, analisis jumlah gabungan.
  2. Pilih kumpulan stok dengan mengintegrasikan analisis asas dan teknikal untuk menapis stok berkualiti rendah.
  3. Tambah modul pemantauan untuk peristiwa utama dan berita untuk mengawal risiko sistemik.
  4. Menggunakan algoritma genetik, pembelajaran mesin dan kaedah lain untuk mengoptimumkan paras kehilangan secara dinamik dan mengambil tetapan keuntungan.

Ringkasan

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

Lebih lanjut