매일 오픈 역전 전략

저자:차오장, 날짜: 2024-01-26 14:35:22
태그:

img

전반적인 설명

일일 오픈 리버설 전략 (Daily Open Reversal Strategy) 은 현재의 촛불에서 리버설 기회를 결정하기 위해 이전 촛불의 실제 몸 크기를 기반으로 하는 일내 평균 리버설 전략이다. 실제 몸 크기가 매개 변수에서 설정된 임계치를 초과하는 조건으로 현재 촛불의 오픈 가격과 이전 촛불의 폐쇄 가격 사이에 상당한 격차가 있는 경우 긴 또는 짧은 거래 신호를 유발한다.

이 전략의 가장 좋은 거래 자산은 GBP 및 AUD 일간 차트이지만 다른 자산과 시간 프레임도 테스트 할 수 있습니다. 매개 변수에는 시작 및 종료 날짜, 이전 촛불의 실제 몸 크기, 스톱 로스 (피프에서) 및 수익 (피프에서) 등이 포함됩니다.

전략 논리

매일 오픈 리버설 전략의 핵심 논리는 단기적인 과잉 구매 및 과잉 판매 시나리오를 포착하는 것입니다. 가격은 시장의 과도한 움직임에 따라 재구성 및 수정하는 경향이 있습니다. 이 전략은 이윤을 위해 그러한 평균 리버설 경향을 활용하는 것을 목표로합니다.

구체적으로, 전략은 현재 촛불의 오픈 가격과 이전 촛불의 폐쇄 가격 사이에 상당한 격차가 있는지 확인합니다. 이전 촛불의 실제 몸 크기가 매개 변수에서 설정된 임계치를 초과하고 현재 촛불이 개막 격차를 표시하면 긴 또는 짧은 신호가 트리거됩니다. 긴 신호는 열 때 트리거됩니다. 이전 폐쇄는 다운 간격으로. 짧은 신호는 열 때 트리거됩니다. < 이전 폐쇄는 업 간격으로.

일단 포지션에 들어가면 스톱 로스 레벨과 취리 레벨이 설정됩니다. 손실을 제어하기 위해 스톱 로스 레벨을 누르거나 이윤을 확보하기 위해 취리 레벨을 누르면 포지션이 종료됩니다.

이점 분석

일일 오픈 리버전 전략은 다음과 같은 주요 장점을 가지고 있습니다.

  1. 시장의 단기적 반전, 더 높은 수익성을 포착합니다.

    단기 가격 변동의 모든 장점을 활용하고, 과잉 구매/ 과잉 판매 시나리오를 통해 더 높은 수익 가능성을 위해 포지션을 개척합니다.

  2. 통제 가능한 위험, 손실을 제한하기 위한 효과적인 스톱 로스

    스톱 로스 메커니즘은 미리 설정된 최대 값을 달성하면 거래 손실을 효과적으로 제한할 수 있습니다.

  3. 자산에 대한 유연성

    다양한 외환 쌍, 특히 GBP와 AUD와 같은 변동성 있는 쌍에 적용됩니다. 최적화 유연성을 위해 매개 변수도 조정할 수 있습니다.

  4. 단순함, 내일 거래에 적합함

    높은 거래 빈도와 짧은 시간 프레임으로, 그것은 매우 잘 일내 또는 일 거래에 맞는 간단하고 명확한 규칙을 가지고 있습니다.

위험 분석

또한 매일 오픈 역전 전략에는 몇 가지 본질적인 위험이 있습니다:

  1. 추세의 지속 위험 손실

    지속되는 일방적인 추세는 실패한 반전과 손실의 가능성을 증가시킵니다.

  2. 더 높은 거래 비용

    거래의 수가 증가하면 거래 비용이 증가하기 때문에 수익을 섭취 할 수 있습니다.

  3. 매개 변수 최적화 필요

    이전 촛불의 실제 몸 크기와 같은 매개 변수, 스톱 로스 및 수익 레벨은 최상의 결과를 위해 충분한 최적화를 요구합니다.

  4. 면밀한 모니터링이 필요합니다.

    짧은 보유 기간은 적시에 진입하고 손실을 멈추기 위해 시장을 면밀히 추적해야합니다.

최적화 방향

매일 오픈 리버스 전략은 다음 측면으로 최적화 될 수 있습니다:

  1. 가장 좋은 조합을 위해 매개 변수를 최적화

    역 테스트와 데모 트레이딩을 실행하여 최적의 이전 촛불 실제 크기를 결정하고, 손실을 멈추고, 높은 효율성을 위해 수익 수준을 취합니다.

  2. 여러 시간 프레임 분석을 포함

    반대 트렌드 거래를 피하기 위해 더 높은 시간 프레임에서 전반적인 트렌드 방향을 설정합니다. 더 낮은 시간 프레임에서 특정 입점 및 출구 수준을 최적화하십시오.

  3. 스톱 로스 메커니즘을 강화

    변동성 지표를 사용하여 변동성 시장에서 더 나은 보호를 위해 손해를 막는 전략을 개선하거나 후속 스톱 주문 등을 사용합니다.

  4. 필터를 추가합니다

    부피, 변동성 등의 필터를 추가하여 반전 신호가 거래하기에 충분히 신뢰할 수 있도록 합니다. 불필요한 반전 거래를 피하세요.

  5. 위치 크기를 개선

    큰 손실로 이어지는 과대 규모의 포지션을 방지하기 위해 거래 크기와 할당을 최적화하십시오. 위험을 줄이기 위해 점진적인 입출입을 실험하십시오.

결론

일일 오픈 리버설 (Daily Open Reversal) 은 리버스 트레이딩을 위해 과잉 구매 및 과잉 판매 시나리오를 포착하는 전형적인 단기 평균 리버설 전략이다. 제어 가능한 위험과 단순성의 장점이 있다. 그러나 트렌드 지속 위험과 높은 거래 빈도도 주목해야 한다. 파라미터 최적화, 스톱 로스 강화, 필터 추가 및 위치 사이징을 통해 더 많은 개선이 가능하며 안정성과 수익성을 높일 수 있다. 내일 거래를 선호하는 투자자에게 적합하다.


/*backtest
start: 2023-01-19 00:00:00
end: 2024-01-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// @version=4
strategy("Daily Open Strategy", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, initial_capital = 10000)

PrevRange = input(0.0100, type=input.float, title="Previous Candle Range")
TP = input(200, title="Take Profit in pips")
SL = input(1000, title="Stop Loss in pips")

startDate = input(title="Start Date", type=input.integer,
     defval=1, minval=1, maxval=31)
startMonth = input(title="Start Month", type=input.integer,
     defval=1, minval=1, maxval=12)
startYear = input(title="Start Year", type=input.integer,
     defval=2015, minval=1800, maxval=2100)

endDate = input(title="End Date", type=input.integer,
     defval=31, minval=1, maxval=31)
endMonth = input(title="End Month", type=input.integer,
     defval=12, minval=1, maxval=12)
endYear = input(title="End Year", type=input.integer,
     defval=2020, minval=1800, maxval=2100)


isLong = strategy.position_size > 0
isShort = strategy.position_size < 0

longTrigger = (open-close) > PrevRange and close<open 
shortTrigger = (close-open) > PrevRange and close>open

inDateRange = true


strategy.entry(id = "Long", long = true, when = (longTrigger and not isShort and inDateRange))
strategy.exit("Exit Long", "Long", loss=SL, profit=TP) 

strategy.entry(id = "Short", long = false, when = (shortTrigger and not isLong and inDateRange))
strategy.exit("Exit Short", "Short", loss=SL, profit=TP)


더 많은