Strategi Terbalik Terbuka Engulfing


Tarikh penciptaan: 2023-11-22 16:05:24 Akhirnya diubah suai: 2023-11-22 16:05:24
Salin: 1 Bilangan klik: 615
1
fokus pada
1617
Pengikut

Strategi Terbalik Terbuka Engulfing

Gambaran keseluruhan

Strategi menelan bukaan terbalik adalah strategi perdagangan harian yang mudah berdasarkan garis K pertama saham. Gagasan utama strategi ini adalah menentukan arah kenaikan dan penurunan K pertama yang muncul selepas bukaan setiap hari, dan melakukan operasi terbalik. Jika garis K pertama adalah garis merah, lakukan lebih banyak; jika garis K pertama adalah garis hijau, kosong.

Prinsip Strategi

Prinsip strategi ini adalah berdasarkan pada spesifikasi garis K akar pertama selepas pembukaan. Pada pembukaan, kekuatan kedua-dua pihak yang bertempur adalah paling sengit, dan kemungkinan besar berlaku pembalikan. Menentukan arah kejatuhan garis K akar pertama, dan sebaliknya, adalah pemikiran utama strategi ini.

Khususnya, selepas bukaan hari baru, strategi akan merekodkan harga pembukaan, harga penutupan dan penurunan pada baris K pertama. Jika harga pembukaan lebih tinggi daripada harga penutupan (bintang hijau), yang mewakili kemenangan kosong, maka lakukan lebih banyak; jika harga pembukaan lebih rendah daripada harga penutupan (bintang merah), yang mewakili kemenangan kosong, maka lakukan kosong.

Pada masa yang sama, strategi ini juga menyediakan mekanisme hentian dan hentian, termasuk melakukan harga hentian yang lebih banyak, harga hentian yang lebih banyak, harga hentian yang lebih banyak dan harga hentian yang lebih banyak, untuk mengawal risiko dan keuntungan dari kedudukan kosong yang lebih banyak, untuk mengelakkan kerugian yang berlebihan atau pemotongan daging yang terlalu awal.

Analisis kelebihan

Kaedah ini mempunyai kelebihan berikut:

  1. Ia mudah difahami dan dilaksanakan.

  2. Dengan menggunakan ciri-ciri nilai ramalan yang tinggi pada masa pembukaan, peluang untuk berpatah balik telah diambil.

  3. Pada masa yang sama, anda juga boleh menetapkan Stop Loss Stop yang boleh mengawal risiko dengan berkesan.

  4. Strategi ini bersifat universal dan boleh digunakan untuk kebanyakan saham.

  5. Kos penyertaan yang rendah dan kawalan kewangan yang mudah.

Analisis risiko

Strategi reverse-open-swallowing juga mempunyai risiko, termasuk:

  1. Kebarangkalian kegagalan pembalikan cakera terbuka. Jika isyarat pembalikan K akar pertama gagal, ia mungkin menyebabkan kerugian yang lebih besar.

  2. Tidak dapat menyaring saham berkualiti rendah secara berkesan. Strategi ini tidak mempunyai analisis asas saham, dan mungkin memilih beberapa saham buruk yang mempunyai asas yang buruk.

  3. Kegagalan untuk mengawal secara berkesan risiko sistemik daripada kejadian yang tidak dijangka, seperti kesan berita negatif yang ketara.

  4. Penetapan stop loss yang tidak betul boleh menyebabkan peningkatan kerugian atau pengurangan keuntungan.

Arah pengoptimuman

Strategi reverse open-swallow boleh dioptimumkan dalam beberapa aspek:

  1. Menambah ujian keberkesanan isyarat pembalikan cakera terbuka, mengelakkan isyarat tidak sah. Sebagai contoh, analisis kuantiti trafik gabungan.

  2. Menggabungkan asas saham dan petunjuk teknikal untuk memilih kolam saham, menapis saham berkualiti rendah.

  3. Menambah modul pemantauan peristiwa dan berita utama untuk mengawal risiko sistematik.

  4. Menggunakan algoritma genetik, pembelajaran mesin dan kaedah lain untuk mengoptimumkan secara dinamik tetapan penghentian kerosakan.

ringkaskan

Strategi penyampaian reverse disk dengan menilai arah K-line pertama dan melakukan operasi terbalik, cuba untuk merebut peluang berbalik selepas membuka. Strategi ini mudah, kos penyertaan rendah, dan mempunyai nilai praktikal. Tetapi kita juga harus sedar untuk mengenali risiko di dalamnya, dan terus menyempurnakan dan mengoptimumkan strategi dalam amalan, menjadikannya lebih stabil dan boleh dipercayai.

Kod sumber strategi
/*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 **********