리소스 로딩... 로딩...

오전 촛불 발사 및 역전 전략

저자:차오장날짜: 2024-07-31 14:16:42
태그:OHLCMAATRRSI

img

전반적인 설명

이 전략은 아침 촛불 패턴을 기반으로 하는 내일 거래 시스템으로, 주로 시장 트렌드를 결정하기 위해 오전 11시 촛불의 높고 낮은 지점을 활용합니다. 핵심 아이디어는 가격이 아침 촛불 높기보다 높고 낮은 지점보다 낮을 때 짧게 갈 것입니다. 해당 스톱 로스 조건과 함께. 이 접근법은 트렌드를 따르는 것과 가격 역전 개념을 결합하여 중요한 내일 가격 수준의 파격에 따른 단기 움직임을 포착하는 것을 목표로합니다.

전략 원칙

전략의 운영 원칙은 다음과 같습니다.

  1. 주요 레벨을 식별: 전략은 먼저 11시 촛불의 가장 높고 가장 낮은 지점을 식별하여 주요 기준 수준으로 사용합니다.

  2. 입력 신호:

    • 긴 신호: 두 번 연속 촛불을 위해 닫기 가격이 아침 최고치를 넘을 때 시작됩니다.
    • 단기 신호: 두 번 연속 촛불로 닫기 가격이 아침 최저치 아래로 넘어갈 때 발생한다.
  3. 스톱 로스 설정:

    • 긴 스톱 로스: 아침 촛불의 최저에 설정.
    • 짧은 스톱 로스: 아침 촛불의 최고점에 설정됩니다.
  4. 출구 메커니즘

    • 스톱 로스 히트: 가격이 해당 스톱 로스 수준에 도달하면 자동으로 포지션을 닫습니다.
    • 시간 기반 출구: 모든 포지션은 오버나이트 리스크를 제어하기 위해 15:15에 자동으로 종료됩니다.
  5. 거래 시간 제한: 전략은 시장 폐쇄 근처에서 비정상적인 변동성을 피하기 위해 15:15 이후 새로운 거래를 열지 않습니다.

전략적 장점

  1. 명확한 거래 규칙: 전략은 명확한 가격 브레이크와 역전 논리에 기반하여 이해하기 쉽고 실행 할 수 있습니다.

  2. 리스크 제어: 고정된 스톱 로스 포인트를 통해 각 거래의 위험을 효과적으로 제어합니다.

  3. 시장 상태 적응: 전략은 아침에 형성 된 가격 범위를 기반으로 다른 시장 변동 상태에 적응 할 수 있습니다.

  4. 자동화 실행: 전략은 프로그래밍을 통해 완전히 자동화 될 수 있으며 인간의 개입과 정서적 영향을 줄일 수 있습니다.

  5. 내일 거래: 거래일 종료 전에 포지션을 닫음으로써 오버나이트 포지션 위험이 피됩니다.

  6. 유연성: 전략은 매개 변수를 조정함으로써 다른 시장과 거래 도구에 최적화 될 수 있습니다.

전략 위험

  1. 가짜 브레이크오웃 위험: 시장은 잘못된 브레이크오웃을 경험할 수 있으며, 빈번한 스톱 로스 출구로 이어질 수 있습니다.

  2. 제한된 변동성 범위: 낮은 변동성 기간 동안 전략은 거래 신호를 유발하거나 효과적인 이익을 창출하는 데 어려움을 겪을 수 있습니다.

  3. 단일 시간 프레임: 오전 11시 촛불에만 의존하면 다른 기간의 중요한 시장 정보를 무시 할 수 있습니다.

  4. 트렌드 추적 부족: 전략은 수익을 취하는 조건을 설정하지 않으며 강력한 트렌드 움직임을 완전히 활용하지 못할 수 있습니다.

  5. 고정 스톱 로스: 매우 변동적인 시장에서 고정 스톱 로스는 너무 가깝고, 유리한 포지션에서 조기 종료로 이어질 수 있습니다.

  6. 거래 비용: 빈번한 입출입은 높은 거래 비용으로 이어지며 전체 수익에 영향을 줄 수 있습니다.

전략 최적화 방향

  1. 멀티 타임프레임 분석을 포함: 더 긴 기간의 트렌드 판단을 결합하여 거래 정확성을 향상시킵니다.

  2. 동적 스톱 로스: 다른 시장 변동 상태에 적응하여 동적 스톱 로스를 설정하기 위해 ATR 지표와 같은 방법을 사용합니다.

  3. 이윤 취득 메커니즘 추가: 전략의 이익 손실 비율을 개선하기 위해 위험 보상 비율에 기반한 이윤 취득 조건을 설정합니다.

  4. 부피 분석: 부피 분석을 포함하여 브레이크오웃 신호의 신뢰성을 높입니다.

  5. 시장 상태 필터링: 낮은 변동성 기간 동안 거래 빈도를 줄이기 위해 ATR과 같은 변동성 지표를 도입하십시오.

  6. 진입 시기를 최적화하십시오. 과잉 구매 또는 과잉 판매 영역에서 반대 트렌드 거래를 위해 RSI와 같은 지표를 사용하는 것을 고려하십시오.

  7. 트렌드를 따르는 요소를 추가하십시오. 강한 브레이크오웃 중에 트렌드를 추적하기 위해 후속 스톱을 사용하는 것을 고려하십시오.

  8. 백테스팅 및 매개 변수 최적화: 최적의 설정을 찾기 위해 다른 매개 변수 조합에 대한 백테스팅을 수행합니다.

결론

모닝 촛불 브레이크아웃 및 리버션 전략 (Morning Candle Breakout and Reversion Strategy) 은 주요 레벨 브레이크아웃을 기반으로 하는 내일 거래 시스템이다. 11:00 촛불의 높고 낮은 지점을 가격 브레이크아웃을 통해 단기 트렌드를 파악하는 중요한 참조로 사용합니다. 전략의 강점은 명확한 규칙, 제어 가능한 위험 및 자동화 실행에 적합함이다. 그러나 가짜 브레이크아웃 및 고정 스톱-로스와 같은 잠재적 위험에 직면하고 있습니다. 멀티 타임프레임 분석, 동적 스톱-로스, 볼륨 확인 및 기타 최적화 조치를 도입함으로써 전략의 안정성과 수익성을 더욱 향상시킬 수 있습니다. 전반적으로, 이것은 적절한 최적화 및 리스크 관리와 함께 효과적인 거래 도구가 될 가능성이있는 좋은 기반을 가진 전략 프레임워크입니다.


/*backtest
start: 2024-06-30 00:00:00
end: 2024-07-30 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Custom Strategy Nifty 50", overlay=true)

// Define the time variables
var bool morningCandleFound = false
var float morningHigh = na
var float morningLow = na
var bool inTrade = false
var int tradeDirection = 0 // 0: No trade, 1: Buy Call, -1: Buy Put
var bool noNewTrades = false // To prevent new trades after 15:15

// Identify the high and low of the 11:00 morning candle
if (hour == 11 and minute == 0)
    morningHigh := high
    morningLow := low
    morningCandleFound := true

// Plot the high and low of the 11:00 morning candle
plot(morningHigh, title="11:00 morning High", color=color.green, linewidth=2)
plot(morningLow, title="11:00 morning Low", color=color.red, linewidth=2)

// Conditions for Buy Call and Buy Put signals
var bool buyCallCondition = false
var bool buyPutCondition = false

if (morningCandleFound and (hour > 11 or (hour == 11 and minute > 0)) and not noNewTrades)
    // Check for Buy Call condition
    if (close[1] > morningHigh and close > morningHigh)
        if (not inTrade or tradeDirection != 1)
            strategy.entry("Buy Call", strategy.long, stop=morningLow)
            buyCallCondition := true
            inTrade := true
            tradeDirection := 1
            label.new(bar_index, high, "Buy Call", color=color.green)
            alert("Buy Call: Price crossed morning high", alert.freq_once_per_bar_close)
    else if (close[1] <= morningHigh)
        buyCallCondition := false

    // Check for Buy Put condition
    if (close[1] < morningLow and close < morningLow)
        if (not inTrade or tradeDirection != -1)
            strategy.entry("Buy Put", strategy.short, stop=morningHigh)
            buyPutCondition := true
            inTrade := true
            tradeDirection := -1
            label.new(bar_index, low, "Buy Put", color=color.red)
            alert("Buy Put: Price crossed morning low", alert.freq_once_per_bar_close)
    else if (close[1] >= morningLow)
        buyPutCondition := false

    // Exit conditions
    if (inTrade)
        if (tradeDirection == 1 and low <= morningLow)
            strategy.close("Buy Call")
            label.new(bar_index, low, "Exit Call", color=color.red)
            alert("Exit Call: Price fell below stop", alert.freq_once_per_bar_close)
            buyCallCondition := false
            inTrade := false
            tradeDirection := 0
        if (tradeDirection == -1 and high >= morningHigh)
            strategy.close("Buy Put")
            label.new(bar_index, high, "Exit Put", color=color.green)
            alert("Exit Put: Price rose above stop", alert.freq_once_per_bar_close)
            buyPutCondition := false
            inTrade := false
            tradeDirection := 0

// Close all positions at 15:15 and prevent new trades for the rest of the day
if (hour == 15 and minute == 15)
    strategy.close_all()
    inTrade := false
    tradeDirection := 0
    noNewTrades := true
    alert("Close All Positions at 15:15", alert.freq_once_per_bar_close)

// Reset noNewTrades at the start of a new day
if (hour == 11 and minute == 0)
    noNewTrades := false


관련

더 많은