N 바 클로즈 아래 오픈 쇼트 전략

저자:차오장, 날짜: 2023-12-26 10:29:12
태그:

img

전반적인 설명

이 전략은 기술 지표에 기초하여 단기 트렌드를 식별하고 열기 가격 이하로 N 개의 연속 바가 닫히는 것을 감지하면 짧은 지위를 취합니다. 그것은 Intraday 거래 전략입니다.

전략 논리

이 전략은 nCounter 변수를 사용하여 닫기 아래 열리는 연속 바의 수를 계산합니다. 닫기 가격이 열기 가격보다 낮을 때, nCounter는 1로 증가합니다. 닫기 가격이 열기 가격보다 높을 때, nCounter는 0으로 재설정됩니다. nCounter가 입력 매개 변수 nLength에 도달하면 N 연속 바가 열기 가격 이하로 닫히고 신호 C2가 1이됩니다.

신호에 따라 포지션이 없으면 짧은 오더가 전송됩니다. 이미 포지션에 있다면 포지션을 유지하십시오. 포지션을 열면 포스프라이스는 입상 가격을 기록합니다. 영업 수익 및 스톱 손실은 입시 가격에 따라 설정됩니다. 가격이 영업 수익 포인트 (입시 + 입력 취업 수익) 에 도달하면 포지션을 닫고 재설정합니다. 가격이 스톱 손실 포인트 (입시 - 입력 스톱 로스) 에 도달하면 포지션을 닫고 재설정합니다.

이점 분석

이 전략의 주요 장점:

  1. 단순하고 명확한 논리, 이해하기 쉽고 실행하기 쉽습니다.
  2. 사용자 정의 가능한 매개 변수, 다양한 시장 조건에 따라 유연합니다.
  3. 이윤을 취하고 손실을 멈추고 효과적으로 위험을 통제합니다.

위험 분석

이 전략의 주요 위험은:

  1. 열기 아래의 N 바 닫는 것은 트렌드 반전을 완전히 확인 할 수 없으며 잘못된 신호가 발생할 수 있습니다. N 값을 정렬하거나 확인을 위해 다른 필터를 추가하십시오.
  2. 부적절한 스톱 로스 또는 취득 설정은 조기 출퇴 또는 증폭 손실로 이어질 수 있습니다. 합리적인 매개 변수를 시장 변동성에 따라 설정해야합니다.

최적화 방향

이 전략은 다음과 같은 측면에서 개선될 수 있습니다.

  1. 추세 필터를 추가하여 옆 시장의 단기 수정에 대해 잘못 판단하지 않도록하십시오. 예를 들어 전체 추세를 결정하기 위해 이동 평균과 결합하십시오.

  2. 부피 확인을 추가합니다. 부피 상승은 트렌드 반전을 더 잘 확인할 수 있습니다.

  3. 수익을 취하고 손실을 멈추는 것을 최적화하십시오. 예를 들어, 더 지능적인 출구를 만들기 위해 후속 스톱 손실, 퍼센트 스톱 손실을 사용하십시오.

  4. 실시간 시장 변화에 따라 nLength와 같은 매개 변수를 동적으로 조정하기 위해 기계 학습 모델을 활용합니다.

결론

이 전략은 폐쇄 가격과 개방 가격 사이의 관계를 기반으로 단기 트렌드를 식별합니다. 오픈 가격 이하로 닫는 N 개의 연속 바를 감지하면 거래 신호가 생성됩니다. 전략은 직관적이고 사용자 정의 가능하며 효과적인 리스크 관리로 장착됩니다. 그러나 특정 수준의 잘못된 신호가 있습니다. 최적화를 위해 추가 필터를 결합하는 것이 좋습니다. 매개 변수 조정, 리스크 관리 및 모델 향상으로 이것은 단기 거래에 매우 실용적인 도구가 될 수 있습니다.


/*backtest
start: 2023-12-18 00:00:00
end: 2023-12-25 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 05/02/2020
// Evaluates for n number of consecutive lower closes. Returns a value 
// of 1 when the condition is true or 0 when false.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="N Bars Down", shorttitle="NBD Backtest", overlay = false) 
nLength = input(4, minval=1)
input_takeprofit = input(20, title="Take Profit pip", step=0.01)
input_stoploss = input(10, title="Stop Loss pip", step=0.01)
nCounter = 0
nCounter := iff(close[1] <= open[1], nz(nCounter[1],0)+1,
             iff(close[1] > open[1], 0, nCounter))
C2 = iff(nCounter >= nLength, 1, 0)
posprice = 0.0
pos = 0
barcolor(nz(pos[1], 0) == -1 ? color.red: nz(pos[1], 0) == 1 ? color.green : color.blue ) 
posprice := iff(C2== 1, close, nz(posprice[1], 0)) 
pos := iff(posprice > 0, -1, 0)
if (pos == 0) 
    strategy.close_all()
if (pos == -1)
    strategy.entry("Short", strategy.short)
posprice := iff(low <= posprice - input_takeprofit and posprice > 0, 0 ,  nz(posprice, 0))
posprice := iff(high >= posprice + input_stoploss and posprice > 0, 0 ,  nz(posprice, 0))
plot(C2, title='NBD', color=color.red)

더 많은