
이 전략은 촛대 차트 기술 분석을 기반으로 한 양적 거래 시스템으로, 주로 촛대의 위쪽 그림자와 아래쪽 그림자의 전체 길이를 분석하여 잠재적인 거래 기회를 식별합니다. 전략의 핵심은 실시간으로 계산된 그림자의 총 길이를 오프셋 조정 이동 평균과 비교하고, 그림자 길이가 이동 평균을 돌파할 때 롱 신호를 생성하는 것입니다. 이 전략은 단순 이동 평균(SMA), 지수 이동 평균(EMA), 가중 이동 평균(WMA) 및 거래량 가중 이동 평균(VWMA)을 포함한 여러 이동 평균 유형을 통합하여 트레이더에게 유연한 매개변수 선택 공간을 제공합니다.
전략의 핵심 논리에는 다음과 같은 주요 단계가 포함됩니다.
이 전략은 캔들 섀도우 길이의 고전적인 기술 지표를 분석하고 이를 현대적인 양적 거래 방법과 결합하여 명확한 논리와 강력한 실용성을 갖춘 거래 시스템을 구축합니다. 이 전략의 핵심적인 장점은 매개변수의 유연성과 완전한 위험 통제에 있지만, 시장 환경에 대한 강한 의존성과 매개변수 민감성과 같은 한계도 있습니다. 다차원적 지표를 도입하고 포지션 관리를 최적화함으로써 이 전략은 여전히 개선의 여지가 많습니다. 전반적으로, 이는 견고한 기초와 합리적인 논리를 갖춘 양적 거래 전략으로, 추가 개발 및 최적화에 적합합니다.
/*backtest
start: 2019-12-23 08:00:00
end: 2025-01-04 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=6
strategy("Daytrading ES Wick Length Strategy", overlay=true)
// Input parameters
ma_length = input.int(20, title="Moving Average Length", minval=1)
ma_type = input.string("VWMA", title="Type of Moving Average", options=["SMA", "EMA", "WMA", "VWMA"])
ma_offset = input.float(10, title="MA Offset (Points)", step=1)
hold_periods = input.int(18, title="Holding Period (Bars)", minval=1)
// Calculating upper and lower wick lengths
upper_wick_length = high - math.max(close, open)
lower_wick_length = math.min(close, open) - low
// Total wick length (upper + lower)
total_wick_length = upper_wick_length + lower_wick_length
// Calculate the moving average based on the selected method
ma = switch ma_type
"SMA" => ta.sma(total_wick_length, ma_length)
"EMA" => ta.ema(total_wick_length, ma_length)
"WMA" => ta.wma(total_wick_length, ma_length)
"VWMA" => ta.vwma(total_wick_length, ma_length)
// Add the offset to the moving average
ma_with_offset = ma + ma_offset
// Entry condition: wick length exceeds MA with offset
long_entry_condition = total_wick_length > ma_with_offset
// Long entry
if (long_entry_condition)
strategy.entry("Long", strategy.long)
// Automatic exit after holding period
if strategy.position_size > 0 and bar_index - strategy.opentrades.entry_bar_index(strategy.opentrades - 1) >= hold_periods
strategy.close("Long")
// Plot the total wick length as a histogram
plot(total_wick_length, color=color.blue, style=plot.style_histogram, linewidth=2, title="Total Wick Length")
// Plot the moving average with offset
plot(ma_with_offset, color=color.yellow, linewidth=2, title="MA of Wick Length (Offset)")