
DZ London Session Breakout Strategy는 런던 거래 시간대의 돌파구를 기반으로 한 양적 거래 전략이다. 이 전략의 주요 아이디어는 런던 거래 시간대의 돌파구를 포착하는 것이며, 가격이 이전 최고점이나 낮은 곳을 돌파했는지 판단하여 거래 결정을 내린다. 전략은 현재 시간이 지정된 런던 거래 시간대 안에 있는지 확인하고, 가격이 현재 거래일, 주기 또는 주간 최고 가격 또는 최저 가격을 돌파했는지 판단한다.
DZ London Session Breakout Strategy의 핵심 원칙은 런던 거래 시간에 기반한 브레이크 트레이딩이다. 런던은 세계 최대 외환 거래 센터 중 하나로서 거래량이 크고 시장의 변동성이 높다. 전략은 런던 거래 시간의 시작과 종료 시간을 설정하여 현재 시간이 그 기간 내에 있는지 판단한다.
DZ London Session Breakout Strategy는 런던 거래 시간대의 돌파구를 기반으로 한 양적 거래 전략이다. 이 전략은 런던 거래 시간대의 높은 거래량과 변동성을 활용하여 가격이 핵심 가격을 돌파했는지 여부를 판단하여 잠재적인 거래 기회를 포착한다. 전략은 여러 시간 프레임의 최고 가격과 최저 가격을 종합적으로 고려하고, 새로운 높고 낮은 것을 확인하여 가짜 돌파구를 통과한다. 이 전략은 장점이 있지만, 동시에 런던 거래 시간대의 높은 변동성, 가짜 돌파구 및 매개 변수 설정과 같은 위험에 직면해 있다.
/*backtest
start: 2023-05-14 00:00:00
end: 2024-05-13 00:00:00
period: 6h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("DZ Strategy ICT", overlay=true)
// Input parameters
london_open_hour = input(13, "London Open Hour")
london_open_minute = input(30, "London Open Minute")
london_close_hour = input(16, "London Close Hour")
// Get current datetime
hour = hour(time)
minute = minute(time)
// Get session high, daily high, and weekly high
sessionHigh = request.security(syminfo.tickerid, "D", high)
dailyHigh = request.security(syminfo.tickerid, "D", high)
weeklyHigh = request.security(syminfo.tickerid, "W", high)
// Condition for being in the specified time range
inLondonTimeRange = (hour >= london_open_hour and hour < london_close_hour) or (hour == london_close_hour and minute == 0)
// Check for breakout above session, daily, or weekly high
breakoutAboveSessionHigh = high > sessionHigh
breakoutAboveDailyHigh = high > dailyHigh
breakoutAboveWeeklyHigh = high > weeklyHigh
// Check for breakout below session, daily, or weekly high
breakoutBelowSessionHigh = low < sessionHigh
breakoutBelowDailyHigh = low < dailyHigh
breakoutBelowWeeklyHigh = low < weeklyHigh
// Check for new lower low or higher high on 1-minute chart
newLowerLow = ta.lowest(low, 10)[1] > low
newHigherHigh = ta.highest(high, 10)[1] < high
// Set entry point based on imbalance
imbalanceLevel = low[1] // Placeholder for imbalance level, adjust this as needed
// Entry conditions for short position
if (inLondonTimeRange and (breakoutAboveSessionHigh or breakoutAboveDailyHigh or breakoutAboveWeeklyHigh) and newLowerLow)
strategy.entry("Short Entry", strategy.short)
// Entry conditions for long position
if (inLondonTimeRange and (breakoutBelowSessionHigh or breakoutBelowDailyHigh or breakoutBelowWeeklyHigh) and newHigherHigh)
strategy.entry("Long Entry", strategy.long)