
Ini adalah strategi dagangan kuantitatif yang menggabungkan penembusan paras paras paras paras paras paras tinggi dan rendah dan EMA pelbagai tempoh masa. Strategi ini digunakan untuk menentukan masa perdagangan dengan memantau penembusan harga terhadap paras paras paras tinggi dan rendah pada hari sebelumnya, digabungkan dengan EMA rata-rata dan CMF. Strategi ini menggunakan EMA rata-rata 200 siklus dalam kedua-dua tempoh masa.
Logik teras strategi merangkumi elemen utama berikut:
Peraturan transaksi adalah seperti berikut: Buat banyak syarat: harga menembusi paras tertinggi sehari sebelumnya + harga penutupan di atas EMA + CMF positif Syarat kosong: harga jatuh ke paras terendah sehari sebelumnya + harga penutupan di bawah EMA + CMF negatif Syarat kedudukan rata: harga turun di bawah EMA semasa melakukan dagangan, harga melampaui EMA semasa melakukan dagangan
Cadangan kawalan risiko:
Ini adalah sistem perdagangan yang lengkap yang menggabungkan pelbagai petunjuk teknikal dan analisis kitaran masa yang banyak. Strategi mencari peluang perdagangan melalui analisis komprehensif mengenai penembusan tinggi dan rendah dalam sehari, trend rata-rata dan aliran dana. Walaupun terdapat risiko tertentu, strategi ini mempunyai nilai aplikasi yang baik melalui kawalan risiko yang munasabah dan penambahbaikan pengoptimuman yang berterusan.
/*backtest
start: 2024-10-28 00:00:00
end: 2024-11-27 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(title='The security Daily HIGH/LOW strategy', overlay=true, initial_capital=10000, calc_on_every_tick=true,
default_qty_type=strategy.percent_of_equity, default_qty_value=100,
commission_type=strategy.commission.percent, commission_value=0.1)
// General Inputs
len = input.int(24, minval=1, title='Length MA', group='Optimization parameters')
src = input.source(close, title='Source MA', group='Optimization parameters')
out = ta.ema(src, len)
length = input.int(20, minval=1, title='CMF Length', group='Optimization parameters')
ad = close == high and close == low or high == low ? 0 : (2 * close - low - high) / (high - low) * volume
mf = math.sum(ad, length) / math.sum(volume, length)
// Function to get daily high and low
f_secureSecurity(_symbol, _res, _src) =>
request.security(_symbol, _res, _src[1], lookahead=barmerge.lookahead_on)
pricehigh = f_secureSecurity(syminfo.tickerid, 'D', high)
pricelow = f_secureSecurity(syminfo.tickerid, 'D', low)
// Plotting previous daily high and low
plot(pricehigh, title='Previous Daily High', style=plot.style_linebr, linewidth=2, color=color.new(color.white, 0))
plot(pricelow, title='Previous Daily Low', style=plot.style_linebr, linewidth=2, color=color.new(color.white, 0))
// Entry Conditions
short = ta.crossunder(low, pricelow) and close < out and mf < 0
long = ta.crossover(high, pricehigh) and close > out and mf > 0
if short and barstate.isconfirmed
strategy.entry('short', strategy.short, stop=pricelow[1])
strategy.close('short', when=close > out)
if long and barstate.isconfirmed
strategy.entry('long', strategy.long, stop=pricehigh[1])
strategy.close('long', when=close < out)
// 200 EMA on 1-hour timeframe
ema_200 = ta.ema(close, 200)
ema_200_1h = request.security(syminfo.tickerid, "60", ta.ema(close, 200))
plot(ema_200_1h, color=color.purple, title="200 EMA (1H)")
plot(ema_200, color=color.white, title="200 EMA")