지속적인 높은 돌파 전략


생성 날짜: 2023-12-08 10:50:54 마지막으로 수정됨: 2023-12-08 10:50:54
복사: 2 클릭수: 582
avatar of ChaoZhang ChaoZhang
1
집중하다
1621
수행원

지속적인 높은 돌파 전략

개요

이 전략의 핵심 논리는 연속적인 N근 K선 종식 가격이 연속적으로 상승했는지 탐지하고, 만약 그렇다면, 더 많은 것을 수행합니다. 만족하지 않으면, 평점 니다. 따라서 주가 상승의 추세를 포착하여 수익을 창출 할 수 있습니다.

전략 원칙

이 전략의 핵심 지표는 nCounter이며, 현재 K선에서 종결 가격과 개시 가격을 비교하여 가격이 상승했는지 판단합니다.

특히, 만약[1]>=open[1], nCounter + 1은 상승을 나타냅니다.[1]

nCounter를 nLength와 비교하면, nCounter>=nLength일 때, 출력 신호는 C1=1; 그렇지 않으면 C1=0이다. 여기서 nLength는 우리가 정의한 K 선의 수를 연속적으로 따라가며 신호를 생성하는 데 필요한 것이다.

C1=1의 신호를 받은 후, 현재 포지션이 없다면, 더 많이 실행한다; 이미 포지션이 많다면, 계속 보유한다.

또한, 이 전략은 중지 및 중지 조건을 설정한다. 가격이 입시 가격의 일정한 비율보다 낮으면 평점 위치를 중지하고, 입시 가격의 일정한 비율보다 높으면 중지한다.

우위 분석

이것은 전형적인 트렌드 추적 전략으로 다음과 같은 장점이 있습니다.

  1. 주가 상승 동향을 포착할 수 있는 기회, 다중 전략으로 활용할 수 있는 적합성
  2. 입시 신호로 N 루트 연속 상승, 가짜 돌파구를 효과적으로 필터링하여 불필요한 거래를 줄일 수 있습니다.
  3. Stop Loss 및 Stop Stop 조건이 설정되어 하락 위험을 제한하고 수익을 고정합니다.
  4. 전략 논리는 간단하고 명확하며 이해하기 쉽고 수정할 수 있습니다.
  5. nLength 파라미터를 조정하여 거래 주파수를 제어할 수 있습니다.

위험 분석

이 전략에는 다음과 같은 몇 가지 측면에 초점을 맞춘 몇 가지 위험도 있습니다.

  1. 상승세가 역전되면 적자를 제때 막지 못하면 큰 손실이 발생할 수 있습니다.
  2. nLength 파라미터가 너무 커서 더 좋은 진입 기회를 놓칠 수 있습니다.
  3. 대시장 환경을 고려하지 않고 대시장 하락시 다중 포지션을 보유하면 손해가 발생할 수 있습니다.
  4. 다른 주식의 특성에 따라 변수를 조정하지 않고, 통일된 변수를 사용하는 것은 일부 주식에 적용되지 않을 수 있습니다.

이러한 위험을 줄이기 위해, 우리는 더 엄격한 중지 조건을 설정할 수 있습니다. nLength 파라미터를 최적화하거나, 대장 판단 규칙을 추가하거나, 다른 주식에 대한 개별 테스트 파라미터를 추가할 수 있습니다. 물론, 모든 전략은 손실을 완전히 피하기 어렵고, 거래자의 위험 선호도에 맞게 조정해야합니다.

최적화 방향

위와 같은 위험을 고려하여, 우리는 다음과 같은 측면에서 전략을 계속 개선할 수 있습니다.

  1. 모바일 스톱 또는 스톱 트래킹 기능을 추가하십시오. 이것은 가격 변화에 따라 스톱 위치를 시간적으로 조정하여 손실 위험을 줄일 수 있습니다.
  2. nLength 파라미터를 최적화한다. 다양한 종류의 주식을 개별적으로 테스트하여 각 종류의 주식에 더 적합한 파라미터 값을 찾을 수 있다.
  3. 대시장 환경 판단을 높여라. 대시장이 하락할 때 거래를 중지하여 역시장 운영으로 인한 추가 손실을 피한다.
  4. 매매량을 증가시키는 등의 다른 요인이 보조 조건으로. 중독 과정에서 매매량을 증가시키는 것을 요구하여 돌파의 유효성을 보장하는 등
  5. 회수 제어를 설정한다. 최대 허용 손실 비율, 최대 연속 손실 횟수 등과 같이, 자동으로 손실을 멈추고 총 손실을 제어할 수 있다.

요약하다

이 전략은 N 루트 연속 상위 K 라인을 탐지하여 상위 트렌드를 포착하여 트렌드 추적을 효과적으로 수행 할 수 있습니다. 이 전략은 논리적으로 간단하고, 파라미터를 조정할 수 있으며, 필터링 가짜 돌파구를 할 수 있습니다. 그러나 전략의 포괄성과 안정성을 높이기 위해 중단, 파라미터 최적화, 환경 판단과 같은 모듈을 추가해야 할 위험이 있습니다.

전략 소스 코드
/*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)