
Strategi perdagangan simpanan tinggi, simpanan rendah dan simpanan rendah adalah strategi perdagangan jenis trend. Strategi ini mengkaji hubungan antara harga pembukaan dan harga penutupan garis K, mengenal pasti arah trend jangka pendek harga, membuat lebih banyak posisi kosong ketika trend bermula, mencapai tujuan untuk memasuki pasaran dengan cepat, dan mengikuti trend.
Strategi ini terutamanya menilai hubungan besar antara harga pembukaan dan harga penutupan K, menghasilkan isyarat banyak apabila harga pembukaan sama dengan harga terendah; menghasilkan isyarat kosong apabila harga pembukaan sama dengan harga tertinggi. Dengan cara ini, anda dapat menangkap terobosan harga dalam jangka pendek dan mengikuti tren.
Setelah masuk ke isyarat, ia akan segera menggunakan jumlah tetap untuk membuka kedudukan dan menubuhkan kedudukan. Stop loss akan merujuk kepada penunjuk ATR yang ditetapkan, untuk menjejaki pergerakan pasaran. Matlamat berhenti adalah bahagian perkadaran RR jarak antara titik berhenti dan harga masuk. Apabila harga menyentuh titik berhenti atau sasaran berhenti, ia akan berhenti atau berhenti tepat pada masanya.
Strategi ini juga akan menutup semua kedudukan pada waktu yang ditetapkan oleh pengguna, seperti setengah jam sebelum penutupan pasaran Amerika Syarikat, untuk mengelakkan risiko turun naik yang besar pada waktu malam.
Strategi ini mempunyai beberapa kelebihan:
Menggunakan hubungan harga pembukaan dan harga penutupan untuk menentukan arah trend, anda boleh dengan cepat mengenal pasti harga dalam jangka pendek.
Isyarat kemasukan mudah, jelas dan mudah dilaksanakan.
Hentikan dan hentikan kerugian tepat pada masanya untuk mengunci keuntungan dan mengelakkan kerugian daripada berkembang.
Untuk mengelakkan risiko turun naik semalaman, anda perlu memaksa kedudukan kosong pada tempoh masa tertentu.
Tidak perlu memilih jenis dagangan tertentu untuk pasaran seperti forex, saham, dan cryptocurrency.
Strategi ini mempunyai beberapa risiko:
Menggunakan ATR berhenti, mungkin sering berhenti dalam keadaan gegaran.
Terdapat kemungkinan over-fitting tanpa mengambil kira jenama dan tempoh transaksi.
Target penangguhan tetap mungkin tidak sepadan dengan keadaan pasaran dan tidak dapat menghasilkan keuntungan yang berterusan.
Jika tidak, anda mungkin akan terlepas peluang trend atau menanggung kerugian tambahan.
Strategi ini boleh dioptimumkan dalam beberapa aspek:
Mengoptimumkan Hentian Kerosakan, Menggunakan Hentian Bertahan dalam Keadaan Trend, Menggunakan Hentian Bergantung dalam Keadaan Guncangan, dan sebagainya.
Tambahan syarat penapisan untuk menentukan masa masuk dan mengelakkan penembusan palsu.
Mengubah kedudukan hentian secara dinamik untuk menentukan jarak hentian yang munasabah berdasarkan turun naik pasaran.
Mengoptimumkan masa pelantikan, memilih masa pelantikan yang sesuai untuk pelbagai jenis perdagangan dan kawasan.
Strategi perdagangan buka kedudukan tinggi tutup rendah makan cepat membina kedudukan dengan cara mudah menentukan trend harga jangka pendek. Ia mempunyai kelebihan yang mudah untuk masuk, berhenti dan menghentikan kerugian. Tetapi ada juga beberapa aspek yang boleh dioptimumkan, seperti kaedah berhenti, isyarat penapis, dan lain-lain. Dengan ujian dan pengoptimuman yang berterusan, anda boleh menjadikan strategi Parameters ini sesuai dengan lebih banyak keadaan pasaran, dengan 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.")