
이 전략의 핵심 논리는 연속적인 N근 K선 종식 가격이 연속적으로 상승했는지 탐지하고, 만약 그렇다면, 더 많은 것을 수행합니다. 만족하지 않으면, 평점 니다. 따라서 주가 상승의 추세를 포착하여 수익을 창출 할 수 있습니다.
이 전략의 핵심 지표는 nCounter이며, 현재 K선에서 종결 가격과 개시 가격을 비교하여 가격이 상승했는지 판단합니다.
특히, 만약[1]>=open[1], nCounter + 1은 상승을 나타냅니다.[1]
nCounter를 nLength와 비교하면, nCounter>=nLength일 때, 출력 신호는 C1=1; 그렇지 않으면 C1=0이다. 여기서 nLength는 우리가 정의한 K 선의 수를 연속적으로 따라가며 신호를 생성하는 데 필요한 것이다.
C1=1의 신호를 받은 후, 현재 포지션이 없다면, 더 많이 실행한다; 이미 포지션이 많다면, 계속 보유한다.
또한, 이 전략은 중지 및 중지 조건을 설정한다. 가격이 입시 가격의 일정한 비율보다 낮으면 평점 위치를 중지하고, 입시 가격의 일정한 비율보다 높으면 중지한다.
이것은 전형적인 트렌드 추적 전략으로 다음과 같은 장점이 있습니다.
이 전략에는 다음과 같은 몇 가지 측면에 초점을 맞춘 몇 가지 위험도 있습니다.
이러한 위험을 줄이기 위해, 우리는 더 엄격한 중지 조건을 설정할 수 있습니다. nLength 파라미터를 최적화하거나, 대장 판단 규칙을 추가하거나, 다른 주식에 대한 개별 테스트 파라미터를 추가할 수 있습니다. 물론, 모든 전략은 손실을 완전히 피하기 어렵고, 거래자의 위험 선호도에 맞게 조정해야합니다.
위와 같은 위험을 고려하여, 우리는 다음과 같은 측면에서 전략을 계속 개선할 수 있습니다.
이 전략은 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)