
Strategi perdagangan open position high close and low draw adalah strategi perdagangan yang mengikuti tren. Strategi ini mengidentifikasi arah tren jangka pendek dari harga dengan menilai hubungan antara harga open dan close pada garis K, dan melakukan lebih banyak shorting pada saat tren dimulai, untuk mencapai tujuan masuk ke pasar dengan cepat dan mengikuti tren.
Strategi ini terutama menilai hubungan besar antara harga pembukaan dan harga penutupan pada garis K. Ini menghasilkan sinyal multisignal ketika harga pembukaan sama dengan harga terendah. Ini menghasilkan sinyal shorting ketika harga pembukaan sama dengan harga tertinggi. Ini dapat menangkap terobosan harga dalam jangka pendek dan mengikuti tren.
Setelah masuk sinyal, akan segera menggunakan jumlah tetap untuk membuka posisi dan membangun posisi. Stop loss akan merujuk pada pengaturan indikator ATR, melacak pergerakan pasar. Tujuan stop adalah bagian dari RR proporsional jarak antara stop loss dan harga masuk.
Strategi ini juga akan menutup semua posisi pada titik waktu yang ditetapkan oleh pengguna, misalnya setengah jam sebelum pasar AS ditutup, untuk mencegah risiko turun naik besar dalam semalam.
Strategi ini memiliki beberapa keuntungan:
Menggunakan hubungan antara harga buka dan harga tutup untuk menentukan arah tren, Anda dapat dengan cepat mengidentifikasi terobosan jangka pendek dalam harga.
Sinyal masuk sederhana, jelas, dan mudah diterapkan.
Stop loss dan stop loss yang tepat waktu dapat mengunci keuntungan dan mencegah pertumbuhan kerugian.
Untuk menghindari risiko volatilitas yang terjadi di malam hari, Anda dapat memaksakan posisi kosong pada periode waktu tertentu.
Tidak perlu memilih jenis transaksi tertentu, berlaku untuk pasar seperti valuta asing, saham, dan cryptocurrency.
Strategi ini juga memiliki beberapa risiko:
Dengan ATR stop loss, mungkin sering terjadi stop loss dalam situasi getaran.
Ada kemungkinan over-fitting tanpa mempertimbangkan varietas dan periode transaksi.
Target penghentian tetap mungkin tidak sesuai dengan kondisi pasar dan tidak dapat terus menguntungkan.
Jika tidak, Anda mungkin akan kehilangan peluang tren atau menanggung kerugian tambahan.
Strategi ini dapat dioptimalkan dalam beberapa hal:
Optimalkan stop loss, gunakan stop loss tetap dalam situasi tren, gunakan stop loss menggantung dalam situasi getaran, dll.
Menambahkan kondisi penyaringan untuk menentukan titik masuk dan menghindari terobosan palsu.
Mengatur posisi stop secara dinamis untuk menentukan jarak stop yang masuk akal sesuai dengan volatilitas pasar.
Optimalkan waktu pivot, pilih waktu pivot yang sesuai untuk berbagai jenis perdagangan dan wilayah.
Strategi perdagangan buka posisi tinggi tutup rendah makan cepat membangun posisi dengan cara sederhana menentukan tren harga jangka pendek. Memiliki masuk yang sederhana, stop stop loss jelas keuntungan. Tapi ada juga beberapa aspek yang dapat dioptimalkan, seperti cara stop loss, sinyal filter, dll. Dengan terus-menerus menguji dan mengoptimalkan, dapat membuat strategi Parameters beradaptasi dengan lingkungan pasar yang lebih, memiliki kemampuan beradaptasi dan keuntungan yang lebih kuat.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
// Open-High-Low strategy
strategy('Strategy: OLH', shorttitle="OLH", overlay=true)
// Inputs
slAtrLen = input.int(defval=14, title="ATR Period for placing SL", group="StopLoss settings")
showSLLines = input.bool(defval=false, title="Show SL lines in chart", tooltip="Show SL lines also as dotted lines in chart. Note: chart may look untidy.", group="Stolploss settings")
// Trade related
rrRatio = input.float(title='Risk:Reward', step=0.1, defval=2.0, group="Trade settings")
endOfDay = input.int(defval=1500, title="Close all trades, default is 3:00 PM, 1500 hours (integer)", group="Trade settings")
mktAlwaysOn = input.bool(defval=true, title="Markets that never closed (Crypto, Forex, Commodity)", tooltip="Some markers never closes. For those cases, make this checked.", group="Trade settings")
lotSize = input.int(title='Lot Size', step=1, defval=1, group="Trade settings")
// Utils
green(open, close) => close > open ? true : false
red(open, close) => close < open ? true : false
body(open, close) => math.abs(open - close)
lowerwick = green(open, close) ? open - low : close - low
upperwick = green(open, close) ? high - close : high - open
crange = high - low
crangep = high[1] - low[1] // previous candle's candle-range
bullish = close > open ? true : false
bearish = close < open ? true : false
// Trade signals
longCond = barstate.isconfirmed and (open == low)
shortCond = barstate.isconfirmed and (open == high)
// For SL calculation
atr = ta.atr(slAtrLen)
highestHigh = ta.highest(high, 7)
lowestLow = ta.lowest(low, 7)
longStop = showSLLines ? lowestLow - (atr * 1) : na
shortStop = showSLLines ? highestHigh + (atr * 1) : na
plot(longStop, title="Buy SL", color=color.green, style=plot.style_cross)
plot(shortStop, title="Sell SL", color=color.red, style=plot.style_cross)
// Trade execute
h = hour(time('1'), syminfo.timezone)
m = minute(time('1'), syminfo.timezone)
hourVal = h * 100 + m
totalTrades = strategy.opentrades + strategy.closedtrades
if (mktAlwaysOn or (hourVal < endOfDay))
// Entry
var float sl = na
var float target = na
if (longCond)
strategy.entry("enter long", strategy.long, lotSize, limit=na, stop=na, comment="Enter Long")
sl := longStop
target := close + ((close - longStop) * rrRatio)
alert('Buy:' + syminfo.ticker + ' ,SL:' + str.tostring(math.floor(sl)) + ', Target:' + str.tostring(target), alert.freq_once_per_bar)
if (shortCond)
strategy.entry("enter short", strategy.short, lotSize, limit=na, stop=na, comment="Enter Short")
sl := shortStop
target := close - ((shortStop - close) * rrRatio)
alert('Sell:' + syminfo.ticker + ' ,SL:' + str.tostring(math.floor(sl)) + ', Target:' + str.tostring(target), alert.freq_once_per_bar)
// Exit: target or SL
if ((close >= target) or (close <= sl))
strategy.close("enter long", comment=close < sl ? "Long SL hit" : "Long target hit")
if ((close <= target) or (close >= sl))
strategy.close("enter short", comment=close > sl ? "Short SL hit" : "Short target hit")
else if (not mktAlwaysOn)
// Close all open position at the end if Day
strategy.close_all(comment = "Close all entries at end of day.")