거래 시간 동안 VWMA 동적 가격 상승 및 하락 침투 전략

VWMA ATR 交易时段 动态支撑阻力 价格穿透 交易信号
생성 날짜: 2025-02-28 10:22:57 마지막으로 수정됨: 2025-02-28 10:22:57
복사: 0 클릭수: 441
avatar of ianzeng123 ianzeng123
2
집중하다
319
수행원

거래 시간 동안 VWMA 동적 가격 상승 및 하락 침투 전략 거래 시간 동안 VWMA 동적 가격 상승 및 하락 침투 전략

개요

거래 시간 VWMA 동적 가격 상하 침투 전략은 일일 거래 시간에 대한 거래량 가중 이동 평균 (VWMA) 을 기반으로 한 정량 거래 시스템이다. 이 전략은 1분 시간 프레임에 특히 적합하며, 가격과 각 거래 날 재설정된 VWMA 사이의 관계를 모니터링하여 구매 신호를 생성한다. 전략의 핵심 논리는 가격이 VWMA를 완전히 뚫을 때 거래 신호를 유발하는 것이다.

전략 원칙

이 전략의 핵심 원칙은 매 거래일 재계산된 VWMA를 동적 기준선으로 사용하여 가격과 이 기준선의 상대적 위치 관계에 의해 잠재적인 거래 기회를 식별하는 것이다. 전략의 세부적인 작동 원리는 다음과 같다:

  1. 거래 시점 VWMA 계산전략: 길이가 55인 VWMA 지표를 사용하지만, 전통적인 VWMA와는 달리, 이 지표는 매일 거래의 시작에 재계산되어 VWMA가 당일 시장의 정서를 보다 정확하게 반영하도록 한다.

  2. 신호 생성 메커니즘

    • 구매 신호: 의 최저가격이 VWMA보다 완전히 높고 이전 이 이 조건을 충족하지 않을 때 트리거
    • 판매 신호: 의 최고 가격이 VWMA보다 완전히 낮고 이전 이 이 조건을 충족하지 않을 때 발동
  3. 트랜잭션 제어 논리전략: 연속 동방향 신호의 반복 입장을 방지하는 지능적인 거래 제어 메커니즘을 구현합니다. 즉, 구매 신호가 다시 구매하기 전에 판매 신호가 있어야하며 그 반대의 경우도 있습니다.

  4. 자동 폐지전략: 매일 15시 29분 (인도 표준시) 에 모든 지분을 자동으로 청산하여 야간 지점을 보유하지 않도록 보장하고 야간 위험을 효과적으로 피하십시오.

  5. 다중 포지션 관리전략: 최대 10층의 피라미드 형태의 상장을 지원하고, 자금 관리자는 계정 이득의 10%를 포지션 통제로 사용합니다.

전략적 이점

코드의 심층적인 분석을 통해, 이 전략은 다음과 같은 중요한 장점을 보여준다:

  1. 시간적 적응성: 매 거래일마다 VWMA 계산을 재설정함으로써, 전략은 일일 시장 조건에 더 잘 적응할 수 있으며, 역사 데이터의 과도한 영향을 받지 않습니다.

  2. 명확한 진입 신호이 전략은 VWMA를 완전히 뚫는 것을 요구하여 신호를 발동시키는데, 이는 가짜 뚫림과 흔들림 상황에서 잘못된 판단을 줄여줍니다.

  3. 방향 제어: 거래 제어 논리를 통해, 전략은 같은 방향에서 연속적인 입시를 피하고, 다시 입시를 하기 위해 방향 전환이 있어야 함을 요구하며, 빈번한 거래의 위험을 효과적으로 감소시킨다.

  4. 위험 관리: 매일 고정 시간 자동 평점 메커니즘은 밤새의 위험을 효과적으로 회피하고, 낮의 짧은 라인 거래자에게 적합하다.

  5. 높은 승률 잠재력전략적 설명에 따르면, 특히 팔기 신호는 우수한 성능을 보이며, 65% 이상의 승률을 보이며, 거래자에게 높은 성공 확률을 제공합니다.

  6. 유연한 포지션 관리: 피라미드형 상장 전략을 지원하여 추세가 지속될 때 상장을 늘리고 수익 잠재력을 극대화 할 수 있습니다.

전략적 위험

이 전략은 많은 장점이 있지만, 다음과 같은 잠재적인 위험도 있습니다.

  1. 시간적 제한: 전략은 1분 시간 프레임에 가장 적합하다고 명시하고, 다른 시간 프레임에서 좋지 않을 수 있습니다. 이것은 전략의 적용 시나리오를 제한합니다.

  2. 구매 신호는 상대적으로 약합니다.전략 설명: 구매 신호는 고정 스톱과 스톱포드를 설정해야 한다고 언급하고, 구매 신호의 신뢰성이 판매 신호보다 낮다는 것을 암시하며, 이는 구매 동작의 수익성을 제한할 수 있다.

  3. 시장 조건 의존:VWMA는 주요 지표로서 수평 변동 시장에서 많은 가짜 신호를 생성할 수 있으며, 전략은 강한 추세 시장에서 더 잘 작동 할 수 있습니다.

  4. 고정 시간 청산 위험15: 29에 평점을 고정하는 것은 유리한 상황에서 조기 퇴출을 초래할 수 있으며, 수익의 일부를 놓치게 할 수 있습니다.

  5. 매개변수 민감도:VWMA 길이55은 고정된 파라미터이며, 다른 시장 환경에는 다른 파라미터 설정이 필요할 수 있으며, 고정된 파라미터는 모든 시장 조건에 적합하지 않을 수 있다.

위험 완화 방법:

  • 구매 신호의 상대적으로 약한 문제에 대응하기 위해 엄격한 스톱 손실 및 목표 수익 설정이 권장됩니다.
  • 시장 환경 필터링 조건을 추가하여 적절한 시장 환경에서만 전략을 적용하는 것을 고려하십시오.
  • 시장 변화에 따라 VWMA 길이를 자동으로 조정할 수 있도록 적응 변수 조정 메커니즘을 개발

전략 최적화 방향

코드 분석을 바탕으로, 이 전략은 다음과 같은 방향으로 최적화될 수 있습니다:

  1. 시장 환경 필터링: 변동률 또는 트렌드 강도 지표를 필터링 조건으로 도입하여 적절한 시장 환경에서만 신호를 생성합니다. 예를 들어 ATR 또는 ADX 지표를 통해 현재 시장이 전략에 적합한지 판단 할 수 있습니다.

  2. VWMA 변수를 최적화합니다.: 자기 적응 VWMA 길이를 구현하여 시장의 변동성 동력에 따라 변수를 조정하여 전략을 다른 시장 환경에 더 잘 적응시킬 수 있습니다. 이것은 VWMA 길이를 시장의 변동률과 연관시켜 수행 할 수 있습니다.

  3. 강화된 신호 확인 메커니즘: 추가적인 기술 지표 또는 가격 패턴을 확인 조건으로 도입하여 신호 품질을 향상시킨다. 예를 들어, RSI, MACD와 같은 지표와 결합하여 신호 확인을 할 수 있다.

  4. 평형 전략의 개선: 고정 시간 평점 이외에, 수익 회수, 목표 달성 또는 기술 지표 반전과 같은 시장 조건에 기반한 동적 평점 규칙을 추가한다.

  5. 다른 거래 신호 처리구매 및 판매 신호의 다른 성능 특성에 맞게 타겟 관리 전략을 개발합니다. 예를 들어 구매 신호에 대해 더 보수적인 포지션 관리와 더 엄격한 중지 전략입니다.

  6. 자금 관리 최적화더 유연한 자금 관리 메커니즘을 구현하여 신호의 강도, 시장의 변동성 및 역사적인 성과에 따라 거래당 자금 비율을 조정합니다.

이러한 최적화 방향은 전략의 안정성과 적응성을 높이고, 원래의 높은 승률 특성을 유지하기 위한 것이다.

요약하다

거래 시간 VWMA 동적 가격 상하 침투 전략은 매일 재배치 된 VWMA를 동적 참조선으로 사용하여 가격이 해당 참조선을 완전히 뚫는 조건과 결합하여 거래 신호를 생성하는 정교하게 설계된 일간 거래 시스템입니다. 이 전략은 1 분 시간 프레임에 특히 적합하며, 판매 신호는 65% 이상의 성공률로 특히 우수한 성능을 발휘합니다.

전략의 주요 장점은 당일 시장 조건에 대한 적응력, 명확한 입시 조건 및 효과적인 위험 제어 장치에 있습니다. 그러나 전략에는 시간 프레임의 제한, 구매 신호의 상대적으로 약한 상태 및 시장 조건에 대한 의존성 등의 잠재적인 위험도 있습니다.

시장 환경 필터링을 추가하고, 적응 파라미터를 구현하고, 신호 확인 메커니즘을 강화하고, 평점 전략을 개선하는 등의 최적화 조치를 통해, 이 전략은 안정성과 수익성을 더욱 향상시킬 잠재력을 가지고 있다. 전체적으로, 이것은 명확하고, 논리적으로 엄격한 거래 전략이며, 특히 높은 승률을 추구하고, 위험을 통제하는 intraday 거래자에게 적합하다.

이 전략을 적용하려는 거래자는 시뮬레이션 환경에서 충분한 테스트를 실시하고 구매 신호의 성능에 특히 주의를 기울이며 자신의 위험 수용 능력과 거래 목표에 따라 매개 변수 설정과 자금 관리 규칙을 조정하는 것이 좋습니다.

전략 소스 코드
/*backtest
start: 2024-02-29 00:00:00
end: 2025-02-26 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy("SVWMA Lx", overlay=true, initial_capital=100000, 
     default_qty_type=strategy.percent_of_equity, default_qty_value=10, pyramiding=10, calc_on_every_tick=true)

//──────────────────────────────
// Session VWMA Inputs
//──────────────────────────────
vwmaLen   = input.int(55, title="VWMA Length", inline="VWMA", group="Session VWMA")
vwmaColor = input.color(color.orange, title="VWMA Color", inline="VWMA", group="Session VWMA", tooltip="VWMA resets at the start of each session (at the opening of the day).")

//──────────────────────────────
// Session VWMA Calculation Function
//──────────────────────────────
day_vwma(_start, s, l) =>
    bs_nd = ta.barssince(_start)
    v_len = math.max(1, bs_nd < l ? bs_nd : l)
    ta.vwma(s, v_len)

//──────────────────────────────
// Determine Session Start
//──────────────────────────────
newSession = ta.change(time("D")) != 0

//──────────────────────────────
// Compute Session VWMA
//──────────────────────────────
vwmaValue = day_vwma(newSession, close, vwmaLen)
plot(vwmaValue, color=vwmaColor, title="Session VWMA")

//──────────────────────────────
// Define Signal Conditions (only on transition)
//──────────────────────────────
bullCond = low > vwmaValue      // Bullish: candle low above VWMA
bearCond = high < vwmaValue     // Bearish: candle high below VWMA

// Trigger signal only on the bar where the condition first becomes true
bullSignal = bullCond and not bullCond[1]
bearSignal = bearCond and not bearCond[1]

//──────────────────────────────
// **Exit Condition at 15:29 IST**
//──────────────────────────────
sessionEnd = hour == 15 and minute == 29

// Exit all positions at 15:29 IST
if sessionEnd
    strategy.close_all(comment="Closing all positions at session end")

//──────────────────────────────
// **Trade Control Logic** (Prevents consecutive same-side signals)
//──────────────────────────────
var bool lastTradeWasBuy = false  // Track last trade direction **Reset Direction At Session End**
var bool lastTradeWasSell = false // Track last trade direction **Reset Direction At Session End**
// Reset at new session
if newSession
    lastTradeWasBuy := true
    lastTradeWasSell := true

//──────────────────────────────
// **Position Management: Entry & Labels**
//──────────────────────────────
if bullSignal and not lastTradeWasBuy  //
    if strategy.position_size < 0
        strategy.close("Short", comment="Exit Short on Bull Signal")
        strategy.entry("Long", strategy.long, comment="Enter Long: Buy Call & Sell Put at ATM")
    else
        strategy.entry("Long", strategy.long, comment="Add Long: Buy Call & Sell Put at ATM")

    // Add BUY Label above entry candle
    label.new(x=bar_index, y=low - ta.atr(5) * 0.5, text="BUY", color=color.green, textcolor=color.white, size=size.small,  style=label.style_label_up, xloc=xloc.bar_index)

    lastTradeWasBuy := true  // Mark that the last trade was a Buy

if bearSignal and lastTradeWasBuy  //
    if strategy.position_size < 0
        strategy.close("Long", comment="Exit Long on Bear Signal")
        strategy.entry("Short", strategy.short, comment="Enter Short: Buy Put & Sell Call at ATM")
    else
        strategy.entry("Short", strategy.short, comment="Add Short: Buy Put & Sell Call at ATM")

    // Add SELL Label below candle 
    label.new(x=bar_index, y=high + ta.atr(5) * 0.5,  text="SELL", color=color.red, textcolor=color.white, size=size.small, style=label.style_label_down, xloc=xloc.bar_index)

    lastTradeWasBuy := false  // Mark that the last trade was a Sell

//──────────────────────────────
// **Updated Alert Conditions**
//──────────────────────────────
alertcondition(bullSignal and not lastTradeWasBuy, 
     title="Long Entry Alert", 
     message="Bullish signal: BUY CALL & SELL PUT at ATM. Entry allowed.")

alertcondition(bearSignal and lastTradeWasBuy, 
     title="Short Entry Alert", 
     message="Bearish signal: BUY PUT & SELL CALL at ATM. Entry allowed.")