N 연속 K-라인 마감이 부정적 전략


생성 날짜: 2023-12-26 10:29:12 마지막으로 수정됨: 2023-12-26 10:29:12
복사: 1 클릭수: 562
avatar of ChaoZhang ChaoZhang
1
집중하다
1623
수행원

N 연속 K-라인 마감이 부정적 전략

개요

이 전략은 기술 지표에 기반하여 시장의 흐름을 판단하고, 연속적인 N근 K선 마이너스가 발생했을 때 공백을 취하는 짧은 라인 거래 전략이다.

전략 원칙

이 전략은 nCounter 변수를 사용하여 연속적으로 수직근 수를 계산한다. 클로즈 가격이 오픈 가격보다 낮으면 nCounter 값을 증가시키고, 클로즈 가격이 오픈 가격보다 높으면 nCounter를 0으로 재설정한다. nCounter가 입력 파라미트 nLength을 달성하면 연속적으로 N근 K 라인이 수직근 수를 나타내고, 출력 신호 C2=1이다.

신호가 나타나면, 현재 포지션이 없으면 포지션을 공백으로 열고, 이미 포지션이 있다면 포지션을 계속 유지한다. 포지션을 열고, 포스프라이스를 사용하여 포지션 개시 가격을 기록한다. 포지션 개시 가격을 기준으로, 중지 및 중지 조건을 설정합니다.

우위 분석

이 전략의 주요 장점은 다음과 같습니다.

  1. 규칙은 간단하고 명확하며, 이해하기 쉽다.
  2. 사용자 정의 가능한 매개 변수, 다양한 시장 조건에 대한 유연성.
  3. 스티프 스톱 손실 메커니즘을 사용하여 위험을 효과적으로 제어 할 수 있습니다.

위험 분석

이 전략의 주요 위험은 다음과 같습니다.

  1. 연속적인 N근 K선 종식과 음은 트렌드 반전을 완전히 결정할 수 없으며, 가짜 브레이크가 발생할 수 있다. N값을 적절히 조정하거나 다른 지표 검증과 함께 사용할 수 있다.
  2. 스톱 스톱 손실 설정이 잘못되면 조기 종료 또는 손실 확장이 발생할 수 있습니다. 시장의 변동 정도에 따라 합리적인 매개 변수를 설정해야합니다.

최적화 방향

이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.

  1. 트렌드 필터를 추가하여 불확실한 시장에서 발생하는 단기 조정이 잘못 판단되는 것을 피하십시오. 예를 들어, 평균선과 같은 지표가 결합되어 전체 트렌드를 판단하십시오.

  2. 거래량이 증가하면 트렌드 전환이 더 잘 확인됩니다.

  3. 정지정지 전략의 최적화, 예를 들어, 이동정지, 비율정지 등의 방법을 사용하여 정지를 더욱 지능화한다.

  4. nLength 값이 실시간 시장 변화에 따라 조정될 수 있도록 기계 학습 방법을 사용하여 파라미터를 최적화하십시오.

요약하다

이 전략은 종결 가격과 개시 가격의 크기의 관계에 기초하여 단기 경향을 판단하고, 연속적인 N 루트 K 라인을 검출할 때 거래 신호를 생성한다. 전략은 간단하고 직관적이며, 매개 변수는 조정할 수 있으며, 스톱 스톱 로즈 메커니즘이 있어, 일부 잡음 거래를 필터링할 수 있다. 그러나, 특정 가짜 신호 위험도 존재하며, 다른 파동 지표와 결합하여 최적화를 권장한다. 매개 변수 조정, 위험 관리 및 모델 최적화를 통해 이 전략은 매우 실용적인 단선 도구 선택이 될 수 있다.

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