이 전략은 촛불 기술 분석을 기반으로 한 양적 거래 시스템으로, 주로 촛불 상부 및 하부 빗의 총 길이를 분석하여 잠재적 인 거래 기회를 식별합니다. 핵심 메커니즘은 실시간으로 계산된 총 빗 길이를 오프셋 조정 이동 평균과 비교하여, 빗 길이가 이동 평균을 통과 할 때 긴 신호를 생성합니다. 전략은 간단한 이동 평균 (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)")