이 전략의 핵심 논리는 N 개의 연속 촛불의 종료 가격이 계속 상승하는지 여부를 탐지하는 것입니다. 만약 그렇다면, 긴 지점에 가십시오. 그렇지 않으면, 닫습니다. 이것은 주식 가격의 상승 추세를 파악하고 이익을 얻을 수 있습니다.
이 전략의 핵심 지표는 nCounter입니다. 현재 촛불의 종료 가격과 개시 가격을 비교하여 가격이 상승하는지 판단합니다.
구체적으로, close [1]>=open[1], nCounter는 상승을 나타내는 1을 추가합니다. close [1]
nCounter>=nLength, 출력 신호 C1=1; 그렇지 않으면 C1=0. 여기 nLength는 신호를 생성하기 위해 정의한 연속 상승 촛불의 수입니다.
C1=1 신호를 받은 후, 현재 위치가 없다면, 길게 가십시오. 이미 길게 있다면, 계속 유지하십시오.
또한 이 전략은 스톱 로스 및 영업 조건을 설정합니다. 가격이 특정 비율로 입시 가격 아래로 떨어지면 스톱 로스는 입장을 종료합니다. 특정 비율로 입시 가격 이상으로 상승하면 이익을 취합니다.
이것은 다음과 같은 강점을 가진 전략을 따르는 전형적인 경향입니다.
이 전략에는 다음과 같은 몇 가지 위험이 있습니다.
이러한 위험을 줄이기 위해 우리는 더 엄격한 스톱 로스를 설정하고, nLength를 최적화하고, 시장 조건 규칙을 추가하거나, 다른 주식에 대해 개별적으로 테스트 매개 변수를 설정할 수 있습니다. 물론 어떤 전략도 손실을 완전히 피할 수 없습니다. 거래자의 위험 욕구와 일치해야합니다.
위의 위험을 고려하면 아래와 같은 측면에서 전략을 최적화 할 수 있습니다.
이 전략은 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)