트렌드 강도 확인 전략


생성 날짜: 2024-01-16 15:22:53 마지막으로 수정됨: 2024-01-16 15:22:53
복사: 2 클릭수: 620
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

트렌드 강도 확인 전략

설명: 이 전략은 연속적인 N 루트 K 라인 종식 가격의 방향을 통해 트렌드 방향을 판단하고, 연속적인 N 루트 K 라인 종식 가격이 조건을 충족하면 거래 신호를 발생시킨다. N의 크기는 ConfirmBars 입력 파라미터가 설정한다. 이 전략은 주로 연속적인 N 루트 K 라인 종식 가격의 방향을 사용하여 트렌드의 강도를 결정한다.

원칙: 전략은 마지막 K선과 이전 K선의 종결 가격 크기의 관계를 추적하여 가격 상승 또는 하락의 강도를 판단한다. 구체적으로, 그것은 두 개의 변수 bcount과 scount을 정의하고, 각각 연속적인 종결 가격 상승과 연속적인 종결 가격 하락의 근수를 기록한다.

bcount가 confirmBars 설정의 값에 도달하면, 연속적인 confirmBars 루트 K 라인 닫기 가격이 상승하여 구매 신호를 생성한다. scount가 confirmBars 설정의 값에 도달하면, 연속적인 confirmBars 루트 K 라인 닫기 가격이 떨어지고 판매 신호를 생성한다.

이렇게 연속적으로 몇 개의 K 선의 종결 가격 방향을 판단함으로써, 단기 시장 변동의 소음을 효과적으로 필터링하여 더 큰 강도의 추세에서만 거래 신호를 생성 할 수 있습니다.

우위 분석:

  1. 을 효과적으로 필터링하여 트렌드를 확인할 수 있습니다. 이 전략은 연속적인 N근 K선 종식 가격이 조건에 부합할 때만 거래 신호를 생성하도록 요구하며, 정상적인 시장 변동이 거래에 미치는 영향을 필터링하여 더 강한 추세에서만 포지션을 열 수 있도록 보장합니다.

  2. 매개 변수는 필터 강도를 조절할 수 있습니다. confirmBars의 변수 크기를 조정하여 가격 변동의 필터링 강도를 제어 할 수 있습니다. 변수가 클수록 잡음 필터링 효과가 더 좋지만 트렌드의 초기 기회를 놓칠 수 있습니다.

위험 분석:

  1. 트렌드 초기에 놓친 기회 전략은 연속적인 K선 종식 가격 일치를 요구하여 신호를 생성하기 때문에 트렌드의 초기 기회를 놓치고 트렌드를 적시에 추적할 수 없습니다.

  2. 손해배상률을 돌파하기 쉬운 확증 근원 ConfirmBars가 너무 커진다면, 트렌드 초기에 반전 짧은 선에 착각할 수 있으며, 스톱 손실이 뚫려 퇴출될 수 있다.

최적화 방향:

  1. 다른 지표와 함께 필터링 가짜 돌파구 다른 기술 지표와 결합하여 부린 띠, RSI 등과 같은 구매/판매 신호에 대한 2차 필터링을 할 수 있으며, 가짜 침투의 가능성을 줄일 수 있다.

  2. 동적 조정 변수 시장 상황에 따라 동적으로 ConfirmBars 파라미터를 조정할 수도 있습니다. 흔들리는 시장에서 파라미터 값을 크게 하여 소음을 필터링 할 수 있습니다. 트렌드가 분명할 때 파라미터 값을 줄여서 트렌드를 추적 할 수 있습니다.

결론: 이 전략은 연속적인 몇 개의 루트 K 라인의 종식 가격 방향을 판단하여 필터 흔들림, 확인 트렌드의 효과를 달성한다. 그것은 효과적으로 단기 시장 변동으로 인해 발생하는 잘못된 거래를 줄일 수 있으며, 트렌드가 분명할 때만 거래 신호를 발생시킨다. ConfirmBars의 파라미터 크기를 조정함으로써 사용자는 필터 효과와 트렌드 기회를 잡는 사이의 관계를 자체적으로 균형을 잡을 수 있다. 그러나 이 전략은 트렌드 초기에 손실이 발생하기 쉬우며, 지속적으로 트렌드를 추적 할 수 없다. 다른 지표와 결합하여 최적화하거나 더 나은 수익을 추구하기 위해 동적으로 파라미터를 조정하는 것이 좋습니다.

전략 소스 코드
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Confirm Bars Strategy [TS Trader]", overlay=true)

confirmBars = input(1)

// === INPUT BACKTEST RANGE ===
fromYear = input.int(2019, title="Backtest Start Year")
fromMonth = input.int(1, title="Backtest Start Month", minval=1, maxval=12)
fromDay = input.int(1, title="Backtest Start Day", minval=1, maxval=31)
toYear = input.int(2023, title="Backtest End Year")
toMonth = input.int(12, title="Backtest End Month", minval=1, maxval=12)
toDay = input.int(31, title="Backtest End Day", minval=1, maxval=31)

startTimestamp = timestamp(fromYear, fromMonth, fromDay, 00, 00)
endTimestamp = timestamp(toYear, toMonth, toDay, 23, 59)

inBacktestRange = true

// === STRATEGY LOGIC ===
bcount = 0
bcount := close[1] < close ? nz(bcount[1]) + 1 : 0
if (bcount == confirmBars and inBacktestRange)
    strategy.entry("Buy", strategy.long, comment="Long")

scount = 0
scount := close[1] > close ? nz(scount[1]) + 1 : 0
if (scount == confirmBars and inBacktestRange)
    strategy.entry("Sell", strategy.short, comment="Short")