
Strategi ini adalah sistem perdagangan kuantitatif frekuensi tinggi yang menggabungkan analisis tren dan hubungan kuantitatif dari beberapa periode waktu. Ini terutama menilai tren pasar melalui rata-rata bergerak indeks (EMA) dari dua periode waktu, yaitu 3 menit dan 1 jam, dan menggabungkan analisis kuantitatif untuk mengkonfirmasi sinyal perdagangan dan merancang mekanisme double-exit berdasarkan harga tertinggi sepanjang hari dan titik waktu tetap.
Logika inti dari strategi ini terdiri dari tiga bagian utama:
Sinyal masuk harus memenuhi ketiga kondisi tersebut secara bersamaan. Strategi keluar menggunakan harga yang mencapai titik tertinggi dalam hari atau mencapai 3 p.m. salah satu dari dua kondisi tersebut.
Strategi ini dengan menggabungkan analisis siklus waktu ganda dan hubungan kuantitatif, membangun sistem perdagangan yang relatif lengkap. Keuntungannya adalah kejernihan logis, implementasi sederhana, tetapi masih perlu dioptimalkan dalam pengendalian risiko.
/*backtest
start: 2024-02-19 00:00:00
end: 2025-02-16 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Intraday + 1-Hour Trend Match", overlay=true)
// Inputs
emaLength3Min = input.int(50, title="EMA Length (3-Min)")
emaLength1Hr = input.int(50, title="EMA Length (1-Hour)")
volumeMultiplier = input.float(1.5, title="Volume Spike Multiplier")
// Intraday (3-Minute) EMA and Volume Spike
ema3Min = ta.ema(close, emaLength3Min)
volumeSMA = ta.sma(volume, 20)
isVolumeSpike = volume > (volumeSMA * volumeMultiplier)
// 1-Hour Trend (EMA)
ema1Hr = request.security(syminfo.tickerid, "60", ta.ema(close, emaLength1Hr))
is1HrUptrend = close > ema1Hr
// Intraday Signal
buyCondition3Min = close > ema3Min and isVolumeSpike
// Combined Signal: Match 3-Min Signal with 1-Hour Trend
finalBuyCondition = buyCondition3Min and is1HrUptrend
// All-Day High Tracking
var float allDayHigh = na
if (hour == 9 and minute == 0)
allDayHigh := high // Reset the all-day high at market open
else
allDayHigh := math.max(allDayHigh, high) // Update all-day high
// Debugging Plots
plot(ema3Min, color=color.blue, title="EMA 3-Min")
plot(ema1Hr, color=color.orange, title="EMA 1-Hour")
plotshape(isVolumeSpike, style=shape.circle, color=color.blue, title="Volume Spike (3-Min)")
plotshape(finalBuyCondition, style=shape.triangleup, color=color.green, title="Buy Signal")
plot(allDayHigh, color=color.red, title="All-Day High", linewidth=2)
// Strategy Execution
if (finalBuyCondition)
strategy.entry("Buy Signal", strategy.long)
// Exit Conditions
exitCondition = (close == allDayHigh) or (hour == 15 and minute >= 0)
if (exitCondition)
strategy.close("Buy Signal")