N 연속적으로 높은 점수를 기록한 외출 전략

저자:차오장, 날짜: 2023-12-08 10:50:54
태그:

img

전반적인 설명

이 전략의 핵심 논리는 N 개의 연속 촛불의 종료 가격이 계속 상승하는지 여부를 탐지하는 것입니다. 만약 그렇다면, 긴 지점에 가십시오. 그렇지 않으면, 닫습니다. 이것은 주식 가격의 상승 추세를 파악하고 이익을 얻을 수 있습니다.

전략 원칙

이 전략의 핵심 지표는 nCounter입니다. 현재 촛불의 종료 가격과 개시 가격을 비교하여 가격이 상승하는지 판단합니다.

구체적으로, close [1]>=open[1], nCounter는 상승을 나타내는 1을 추가합니다. close [1]

nCounter>=nLength, 출력 신호 C1=1; 그렇지 않으면 C1=0. 여기 nLength는 신호를 생성하기 위해 정의한 연속 상승 촛불의 수입니다.

C1=1 신호를 받은 후, 현재 위치가 없다면, 길게 가십시오. 이미 길게 있다면, 계속 유지하십시오.

또한 이 전략은 스톱 로스 및 영업 조건을 설정합니다. 가격이 특정 비율로 입시 가격 아래로 떨어지면 스톱 로스는 입장을 종료합니다. 특정 비율로 입시 가격 이상으로 상승하면 이익을 취합니다.

이점 분석

이것은 다음과 같은 강점을 가진 전략을 따르는 전형적인 경향입니다.

  1. 그것은 주식 가격의 상승 트렌드 기회를 포착 할 수 있습니다, 긴 전략으로 적합
  2. 엔트리 신호로 N의 연속 상승은 가짜 브레이크오웃을 효과적으로 필터링하고 불필요한 거래를 줄일 수 있습니다.
  3. 스톱 로스 및 수익을 설정하면 하향 위험을 제한하고 수익을 차단 할 수 있습니다.
  4. 논리는 간단하고 명확하고 이해하기 쉽고 수정하기 쉽습니다.
  5. 거래 주파수는 nLength 매개 변수를 조정하여 제어 할 수 있습니다.

위험 분석

이 전략에는 다음과 같은 몇 가지 위험이 있습니다.

  1. 상승 추세가 역전되면, 적시에 손실을 막지 못하면 엄청난 손실이 발생할 수 있습니다.
  2. nLength 세트가 너무 커지면 좋은 진입 기회를 놓칠 수 있습니다.
  3. 시장 환경은 고려하지 않습니다. 시장 붕괴 때 긴 위치를 보유 추가 손실로 이어질 수 있습니다.
  4. 다른 조류 특성에 따라 조정하지 않고 통일된 매개 변수를 사용하는 것은 일부 조류에 적용되지 않을 수 있습니다.

이러한 위험을 줄이기 위해 우리는 더 엄격한 스톱 로스를 설정하고, nLength를 최적화하고, 시장 조건 규칙을 추가하거나, 다른 주식에 대해 개별적으로 테스트 매개 변수를 설정할 수 있습니다. 물론 어떤 전략도 손실을 완전히 피할 수 없습니다. 거래자의 위험 욕구와 일치해야합니다.

최적화 방향

위의 위험을 고려하면 아래와 같은 측면에서 전략을 최적화 할 수 있습니다.

  1. 이동 스톱 손실 또는 후속 스톱 손실 기능을 추가합니다. 그들은 손실 위험을 줄이기 위해 가격 변화에 따라 그에 따라 스톱 손실 지점을 조정할 수 있습니다.
  2. nLength 매개 변수를 최적화. 각각 다른 유형의 주식을 테스트 더 적합한 매개 변수 값을 알아보기
  3. 시장 환경에 대한 판단을 추가합니다. 예를 들어 시장이 추락할 때 거래를 중단하여 곰 시장에서 추가 손실을 피합니다.
  4. 부가 조건으로 볼륨과 같은 다른 요소를 추가합니다. 예를 들어 브레이크오웃 유효성을 보장하기 위해 상승 추세 동안 볼륨을 늘려야합니다.
  5. 최대 허용 손실 비율, 최대 연속 손실 시간 등 손실을 중지 자동으로 전체 손실을 제어

결론

이 전략은 N 개의 연속 상승 촛불을 감지하여 상승 추세를 포착합니다. 트렌드를 효과적으로 수행 할 수 있습니다. 장점은 간단한 논리, 유연한 매개 변수 조정, 잘못된 브레이크오웃 필터링입니다. 그러나 일부 위험도 있습니다. 개선하기 위해 스톱 로스, 매개 변수 최적화, 환경 판단과 같은 모듈을 추가해야합니다. 전반적으로,이 전략은 양적 거래에 귀중한 기본 모델을 제공합니다. 지속적인 개선 후에 강력한 거래 도구가 될 수 있습니다.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 05/02/2020
// Evaluates for n number of consecutive higher 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 Up", shorttitle="NBU 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))
C1 = 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(C1== 1, close, nz(posprice[1], 0)) 
pos := iff(posprice > 0, 1, 0)
if (pos == 0) 
    strategy.close_all()
if (pos == 1)
    strategy.entry("Long", strategy.long)
posprice := iff(low <= posprice - input_stoploss and posprice > 0, 0 ,  nz(posprice, 0))
posprice := iff(high >= posprice + input_takeprofit and posprice > 0, 0 ,  nz(posprice, 0))
plot(C1, title='NBU', color=color.green)

더 많은