Strategi Open Drive

Penulis:ChaoZhang, Tanggal: 2023-10-23 15:13:49
Tag:

img

Gambaran umum

Strategi open drive mengamati perilaku harga dalam 30 menit pertama setelah pasar dibuka setiap hari perdagangan, mengidentifikasi terobosan arah yang kuat, dan memasuki perdagangan tren ke arah itu.

Logika Strategi

  1. Gunakan batang 30 menit, karena perlu cukup waktu untuk mengukur pergerakan harga ekstrim setelah dibuka.

  2. Identifikasi bar yang buka selama periode waktu ini: 0700-0715, 0800-0815, 1300-1315, 1430-1445.

  3. Periksa apakah open bar memuaskan:

    • Buka dekat bar rendah, tutup dekat bar tinggi (bar atas)

    • Atau terbuka dekat bar tinggi, dekat dekat bar rendah (bawah bar)

    • Dan tinggi melebihi sebelumnya 5 bar tinggi oleh 1 x 5 bar kisaran, atau rendah putus sebelumnya 5 bar rendah oleh 1 x 5 bar kisaran (breakout)

  4. Jika kondisi di atas terpenuhi, masukkan perdagangan tren ke arah itu 3 bar setelah bar sinyal.

  5. Atur stop loss pada tinggi / rendah dari entry bar.

  6. Tahan posisi selama 3 bar (90 menit), lalu keluar.

Analisis Keuntungan

  • Menangkap pergerakan arah yang kuat akibat likuiditas tinggi setelah terbuka
  • Filter breakout menghindari sinyal palsu dari kondisi bergetar
  • Kerangka waktu yang lebih panjang mengurangi perdagangan yang berlebihan
  • Stop loss menghindari kerugian yang berlebihan

Analisis Risiko

  • Periode bukaan waktu tetap berisiko kehilangan trend breakout
  • Sempalan break-out yang tidak memadai dapat menyaring sinyal yang valid
  • Waktu penyimpanan tetap tidak dapat disesuaikan dengan kondisi khusus
  • Tidak ada penghentian yang gagal mengikuti tren

Perhatikan:

  • Secara dinamis menentukan periode terbuka dengan lebih banyak parameter
  • Mengoptimalkan ambang keluar
  • Sesuaikan waktu penyimpanan berdasarkan volatilitas
  • Tambahkan prosedur trailing stop

Arah Peningkatan

  • Masukkan lebih banyak indikator untuk meningkatkan kualitas sinyal
  • Masukkan perdagangan pada kerangka waktu yang lebih rendah untuk lebih frekuensi
  • Mengoptimalkan parameter seperti periode terbuka, ambang, berhenti dll berdasarkan backtests
  • Pertimbangkan penghentian trailing, re-entries dll untuk meningkatkan keuntungan
  • Backtest di berbagai produk untuk menemukan yang paling cocok

Ringkasan

Strategi open drive mengikuti tren dengan menangkap penembusan arah yang kuat setelah terbuka. Dibandingkan dengan entri acak, strategi ini memberikan karakteristik risiko-pahala yang lebih baik. Kuncinya adalah penyesuaian parameter yang tepat, pemilihan instrumen, dan penyeimbangan frekuensi dan profitabilitas.


/*backtest
start: 2023-10-15 00:00:00
end: 2023-10-22 00:00:00
period: 10m
basePeriod: 1m
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/
// © Marcns_

//@version=5
// a script that highlights open drives around cash market opens throughout the day
// this indicator identifies the following cash open, open drives 0700 - 0715 / 0800 - 0815 / 1300 - 1315 / 1430 - 1445 
// an open drive is when a cash market opens and price runs either up or down away from the opening price, often this will be the high or the low the remainer of the session or day
// and often identify a trend session
strategy("Open Drive", commission_type =  strategy.commission.cash_per_contract, commission_value = 3.8 )

// open drive filter times - all times GMT
eu_sev = time(timeframe.period, "0700-0715", "GB")
eu_eig = time(timeframe.period, "0800-0815", "GB")
us_one = time(timeframe.period, "1300-1315", "GB")
us_two = time(timeframe.period, "1430-1445", "GB")


// identify bar that opens at low and closes at high + vice versa 
// bar needs to open at one extreme and close at another 
TrndExThreshold_Open = 0.15
TrndExThreshold_Close = 0.15

// add a bar range expansion filter - range of bar correlates to volume, high volume = wider range. This script will be able to filter for a break of a 5 bar range +100% or -100%

fbhi = ta.highest(5)
fblo = ta.lowest(5)

fbr = (fbhi - fblo)

RangeEx_up = 0.0

if high >= (fbhi[1] + fbr[1])
    RangeEx_up := 1.0
else
    na

// range ex down

RangeEx_do = 0.0

if low <= (fblo[1] - fbr[1]) 
    RangeEx_do := 1.0
else
    na


//#1 open within 5% of low

OpenAtLow = 0.0 

if (close > open) and (open-low) / (high-low) < TrndExThreshold_Open
    OpenAtLow := 1.0
else 
    na 

//#2 close within 5% of high
    
CloseAtHigh = 0.0

if (close > open) and (high-close) / (high-low) < TrndExThreshold_Close
    CloseAtHigh := 1.0
else
    na 

OD_Up = 0.0

if (OpenAtLow + CloseAtHigh + RangeEx_up == 3.0) and ( eu_sev or eu_eig or us_one or us_two)
    OD_Up := 1
else
    na

plot(OD_Up, title = "OD_up")



OpenAtHigh = 0.0 

if (close < open) and (high-open) / (high-low) < TrndExThreshold_Open
    OpenAtHigh := 1.0
else 
    na 

//#2 close within 5% of high
    
CloseAtLow = 0.0

if (close < open) and (close-low) / (high-low) < TrndExThreshold_Close
    CloseAtLow := 1.0
else
    na 

OD_Down = 0.0

if (OpenAtHigh + CloseAtLow + RangeEx_do == 3.0) and ( eu_sev or eu_eig or us_one or us_two)
    OD_Down := -1
else
    na

plot(OD_Down, title = "OD_down", color = color.red)


//3sma

ma = ta.sma(close,3)

// one time framing - highlight bars the make a series of lower highs or higher lows to identify trend 
// one time frame up 
otf_u = 0.0

if close > ma and close[1] > ma[1]
    otf_u := 1
else
    na
// one time frame down 
otf_d = 0.0

if close < ma and close[1] < ma[1]
    otf_d := 1
else
    na


//bgcolor(otf_u ? color.rgb(76, 175, 79, 70) : na)
//bgcolor(otf_d ? color.rgb(255, 82, 82, 66) : na)

// record high and low of entry bar into variable for absolute stop
// buy stop
bs = 0.0

if OD_Up
    bs := low[1]
else
    na

// sell stop
ss = 0.0

if OD_Down
    ss := high[1]
else
    na




// strategy entry and exits 
// long
if OD_Up
    strategy.entry("el", strategy.long, 2)
if ta.barssince(OD_Up)> 3 
    strategy.exit(id = "ex" , from_entry = "el", limit = close)

// short 
if OD_Down
    strategy.entry("es", strategy.short, 2)
if ta.barssince(OD_Down)> 3
    strategy.exit(id = "ex" , from_entry = "es", limit = close)



Lebih banyak