글 목차

근거와 범위

세 가지 참조 자료는 정의 및 구현 동작을 뒷받침하는 공식 SciPy API 문서입니다. 하지만 이러한 기능을 기반으로 구축된 거래 전략이 수익성이 있다는 증거는 제공하지 않습니다.

데이터와 시장일관된 종가 시계열 또는 수치 지표를 사용하십시오. 극값을 감지하기 전에 누락된 관측치와 거래 공백을 처리하십시오. 가격 단위나 조정 방식을 혼합하지 마십시오.
연구 대상 시간봉H=1와 일봉 차트는 가능한 연구 구성입니다. 윈도우 길이는 관측치 수를 계산하는 것이지, 모든 금융 상품에 걸쳐 시장 거래 시간이 자동으로 동일함을 의미하는 것은 아닙니다.
피크 106는 더 높은 기준점인 102보다 4포인트 높으며, 피크 110는 별도의 로컬 창에서 기준점인 109.7보다 약간만 높습니다.도표를 원래 크기로 열기
원래의 합성 가격입니다. 별도의 로컬 창을 통해 106가 110의 잔물결보다 더 두드러지게 나타나는 이유를 보여줍니다. 전체 그래프 계열은 하나의 두드러짐 창으로 처리되지 않습니다.

실전 적용 절차

적용 절차: 최고점 두드러짐: 지역 구조를 이용한 스윙 고점 및 저점 필터링
전체 단계는 아래에 설명되어 있습니다. 각 단계에서 데이터가 부족하거나 조건을 충족하지 못하면 제외 사유를 기록해야 합니다.
  1. 시리즈를 선택하세요종가 또는 지표 시계열을 선택해 고정하고 결측 데이터를 검증합니다.
  2. 창이 완성될 때까지 기다리기오른쪽 부분이 닫힌 후에야 중심을 평가하십시오.
  3. 두 기반을 모두 찾으십시오창 경계와 더 높은 피크를 존중하십시오.
  4. 정규화등록된 단위 일관성 임계값과 돌출도를 비교하십시오.
  5. 이벤트 기록 고정측정 속성과 실제 확인 시각을 저장합니다.

더 높은 가격이 반드시 더 두드러진 최고점을 의미하는 것은 아닙니다.

주변 기준값이119.8 부근인 종가120은 기준값이100 부근인 종가105보다 구조적으로 덜 두드러질 수 있습니다. 절대 높이는 해당 상품의 명목 가격에 따라 달라집니다. 돌출도는 후보 피크가 주변 구조를 연결하는 등고선보다 얼마나 높은지를 측정하는 별개의 기하학적 개념입니다.

SciPy는 두 개의 측면 기준선 [1] 중 더 높은 쪽을 사용하여 돌출도를 정의합니다. 너비는 지정된 상대적 돌출도 높이 [2]에서 측정되며, find_peaks는 여러 개의 개별 필터 [3]를 표시합니다. 이러한 도구는 수치 시리즈를 기반으로 합니다. 특정 고점을 저항, 분산 또는 거래 기회로 해석하려면 추가적인 맥락과 독립적인 검증이 필요합니다.

의도된 이점은 중요하지 않은 앵커를 재현 가능하게 줄이는 것입니다. 이는 눈에 띄는 특징이 최종 고점을 나타낸다는 것을 보장하는 것은 아닙니다. 강한 추세는 눈에 띄는 국지적 고점을 생성한 후 더 높은 가격을 형성할 수 있으며, 주변 구조를 기다리다 보면 이벤트가 확정될 때쯤에는 위험 대비 수익률이 낮아질 수 있습니다.

유한한 확인 지연 시간을 갖는 로컬 검출기

제안된 기준 모델은 관측값 W=11개와 반경 h=5를 사용합니다. 봉 t가 마감하면 i−5부터 i+5까지의 창에서 후보 i=t−5만 평가합니다. 돌출도는 최소1.5×ATR[i−1]이어야 합니다. W=11과1.5는 실험 설정이며 최적값이 아닙니다. 후보 이전의 ATR은 확인 시점에 이미 알 수 있는 고정 변동성 기준입니다.

최고점에서 시작하여 창 경계 또는 더 높은 최고점에 도달할 때까지 각 측면을 검사합니다. 각 구간에서 최솟값을 찾고, 더 높은 기준점을 선택하여 후보 값에서 뺍니다. 저점의 경우, 음의 종가에도 동일한 방법을 적용합니다. 양쪽에서 가장 낮은 값을 취하면 더 큰 구조의 어깨 부분에 위치한 최고점의 돌출도를 과대평가하게 될 수 있습니다.

이 코드는 평탄한 구간을 단일 관측값으로 제한합니다. 평탄한 구간이 필요한 경우, 해당 구간의 대표 타임스탬프와 전체 확인 정책을 다른 버전으로 정의하십시오. NaN 값은 영으로 자동 변환되어서는 안 됩니다. 그렇게 하면 인위적으로 깊은 기저부가 생성될 수 있기 때문입니다. 윈도우 경계에 있는 후보는 필요한 주변 증거가 부족하므로 중심 피크로 처리해서는 안 됩니다.

h = 5; W = 2*h + 1
on_closed_bar(t):
    i = t - h
    if i-h < 0 or invalid_data(i-h, t): return
    x = close[i-h:t+1]
    candidates, _ = find_peaks(x, plateau_size=(1,1))
    if h not in candidates: return
    prominences, left_bases, right_bases = peak_prominences(x, [h], wlen=W)
    p = prominences[0]
    a = ATR[i-1]
    if a is not missing and isfinite(a) and a > 0 and p / a >= 1.5:
        emit_once(i, confirmed_at=t, prominence=p, window=W)
# Troughs: repeat on -close, preserving timestamps and ATR.

높이·임계값·돌출도·너비는 서로 다른 성질을 측정한다

높이는 피크의 값입니다. 임계값은 인접한 관측값과의 차이를 측정합니다. 돌출도는 주변의 더 넓은 기준선을 사용합니다. 너비는 선택된 수직 레벨에서의 수평 범위를 측정합니다. 넓고 둥근 정상부는 인접한 관측값과의 차이가 작더라도 상당한 돌출도를 유지할 수 있습니다. 높은 임계값 요구 조건은 의도치 않게 단일 막대 피크만 남길 수 있습니다.

거리 필터링에는 인과 관계 정책도 필요합니다. 전체 과거 시계열에 대해 find_peaks를 실행하고 더 큰 미래 피크가 이전의 인근 피크를 제거하도록 허용하면 과거 선택이 달라질 수 있습니다. 기준선은 각 중심 후보를 평가하고 전역 거리 가지치기를 적용하지 않습니다. 발표된 이벤트 후 쿨다운을 적용하는 것도 가능한 대안이지만, 이는 나중에 보이는 가장 인상적인 피크보다는 시간적 가용성을 우선시합니다.

필터로 인해 후보가 제외되더라도 측정된 모든 속성을 이벤트 기록에 유지해야 합니다. 그래야 어떤 조건 때문에 기회가 사라졌는지 진단할 수 있습니다. 그렇지 않으면 너비와 거리를 동시에 추가하면 집계 통계는 개선될 수 있지만, 변화가 모양, 시점 또는 거래 횟수의 차이에서 비롯된 것인지 명확하게 설명할 수 없습니다.

수치 예시, 거부된 리플 및 손실 거래

합성 구간:100, 101, 103, 106, 104, 102, 103. 이 예시 구간의 왼쪽 기준은100, 오른쪽은102이므로 돌출도는4입니다. 기준 ATR=2라면 정규화한 돌출도는2 ATR로 제안 임계값1.5를 넘습니다. 이벤트를 발행하려면 주변 창이 완성될 때까지 기다려야 합니다.

다른 구간108, 109, 110, 109.8, 109.7은 절대 피크가 더 높지만 양쪽 기준 중 높은 값은109.7입니다. 국소 돌출도는0.3에 불과해 ATR=1에서 같은 필터를 통과하지 못합니다. 두 구간은 기하학적 예시이며 완전한 W=11 테스트 데이터도, 어느 쪽이 수익성 있는 거래를 만든다는 증거도 아닙니다.

두드러진 고점 이후에도 거래는 손실일 수 있습니다. 확인 후 공매도가 허용되고 다음 체결 가능 가격이101.8, 구조적 손절가가106.2라면 계획 가격 위험은 이미4.4포인트입니다.107까지 반등하면 검출기가 이전 극값을 정확히 측정했어도 손실입니다. 돌출도와 같은 거리를 투영해 목표를 정하는 것은 그 자체로 별도 가설입니다.

고정된 윈도우 바로 안쪽과 바로 바깥쪽에 더 높은 인접 피크를 추가하여 지역성을 테스트합니다. 새로 평가된 후보의 돌출도는 해당 데이터 세트 간에 변경될 수 있지만, 변경되지 않은 접두사에서 이전에 발표된 이벤트는 다시 작성해서는 안 됩니다. 이는 의도적인 윈도우 정의와 미래 구조의 우연한 사용을 구분하는 기준입니다.

진입 규칙을 만들기 전에 돌출도를 기준점의 특징으로 활용하기

한 가지 제안된 활용 사례는 이중 고점 또는 저항 영역에 대한 기준점을 선택하고, 트리거는 중간 저점 아래에서 종가가 형성되는 것과 같은 후속 이벤트에 맡기는 것입니다. window_start, window_end, 두 기준점, 돌출부, ATR_ref, 검출기 버전 및 confirmed_at를 후보와 함께 고정합니다. 이러한 필드를 통해 결정 과정을 정확하게 재구성할 수 있습니다.

확인 직후 진입하려면 별도의 손절, 시간 청산, 노출 한도와 체결 모델이 필요합니다. 돌출도는 보장된 자연적 가격 목표를 주지 않습니다. 사전 등록한 설정에서만 돌출도 기반 목표를 고정-R 목표 또는 시간 청산과 비교하십시오. 매력적인 차트마다 청산 규칙을 따로 고르지 마십시오.

검출기가 RSI 또는 다른 제한된 지표를 사용할 때, 해당 지표의 돌출도는 지표 포인트 단위로 측정됩니다. RSI의 돌출도를 ATR 가격으로 나누면 단위가 혼합됩니다. 차원적으로 일관된 정규화를 사용하거나, 원시 지표 포인트를 별도로 보정된 특징으로 유지하십시오. 로그 가격과 일반 가격 검출기를 비교할 때도 동일한 주의 사항이 적용됩니다.

볼륨 테스트를 통해 뚜렷한 기여도를 확인해 보세요.

거래량은 돌출도 계산 공식에 포함되지 않으므로 별도의 데이터 특징으로 추가할 수 있지만, 이는 통계적 독립성을 보장하지 않습니다. 극단적인 값 부근의 활동과 최종 트리거 시점의 RVOL 데이터를 별도로 저장하십시오. 단순히 높은 총 거래량만으로는 기관 투자자의 참여를 파악할 수 없으며, 뉴스 발표 시점의 두드러진 최고점은 높은 스프레드와 일치할 수 있습니다.

돌출도/ATR를 기준으로 관측값을 묶고 각 그룹 내 RVOL 범위를 비교합니다. 거래량이 단지 큰 움직임을 고르는 것을 넘어 가격 진폭 이외의 정보를 주는지 확인합니다. 장중 데이터에는 같은 세션 시각의 비교 가능한 기준을 쓰고, 암호화폐는 거래소와 기초자산 단위·호가통화 단위 거래량의 정의를 고정합니다.

거래량 필터가 신호 발생 횟수, 평균 보유 시간 및 노출도에 미치는 영향을 보고하십시오. 체결된 거래당 평균 수익이 높아지더라도 필터가 유용한 기회를 많이 걸러낸다면 포트폴리오 성과는 낮아질 수 있습니다. 누락된 거래량은 극심한 거래량 감소로 해석하기보다는 명확한 데이터 없음 정책을 적용해야 합니다.

기하학적 형상, 안정성 및 경제적 가치를 각각 검증하십시오.

피크 형상에는 큰 피크 옆에 작은 피크가 중첩된 형태, 평평한 고원, NaN 값, 윈도우 가장자리, 그리고 밀접하게 위치한 후보 영역 등이 포함되어야 합니다. 정확한 기준 위치와 결과적인 돌출도를 확인하십시오. SciPy를 사용하는 경우, 버전과 전처리 과정을 기록하십시오. 중심 평활화 필터는 자체적으로 미래 데이터 지연을 추가합니다.

유지된 앵커 개수, 고정 h-bar 확인 지연 시간, 그리고 최종 앵커를 사용할 수 있게 되었을 때 만료된 다운스트림 패턴의 비율을 측정하십시오. 그런 다음 현실적인 비용과 실행을 고려하여 확정된 테스트 기간 동안의 순 결과를 평가하십시오. 시각적으로 깔끔한 차트가 경제성을 나타내는 지표는 아닙니다.

W 값을 증가시키면 새롭게 평가되는 지역 구조의 정의가 변경됩니다. 이전 버전에 속하는 이미 게시된 이벤트는 수정해서는 안 됩니다. 개발 데이터에서 인접한 윈도우 크기를 비교하고, 시도 횟수를 기록하고, 놓친 기회를 고려한 후 추가 필터링이 순 기대값 또는 위험을 의미 있게 개선하는지 여부를 보고하십시오.

흔한 실수

돌출 정도와 절대 높이를 혼동함

명목 가격이 높다고 해서 지역 기준 가격 대비 더욱 뚜렷한 최고점을 의미하는 것은 아닙니다.

전체 시리즈를 시청한 후 가지치기 거리

미래의 정점은 이전 이벤트를 무효화할 수 있습니다. 대신 리플레이 또는 명시된 인과 관계 쿨다운을 사용하십시오.

지연을 고려하지 않은 평활화

중심 평활화기는 이후 관측값을 사용합니다. 해당 지연 시간을 이벤트의 실제 가용성에 더하십시오.

이 기법을 사용하기 전 체크리스트

자신의 데이터로 확인한 뒤 각 항목에 체크하세요. 진행 상태는 이 브라우저에 저장되며, 전략의 수익성을 인증하지는 않습니다.

0/8 개 항목

자주 묻는 질문

돌출도는 일반 피벗보다 나은가요?

진폭과 양쪽 기준을 고려하는 조건을 추가합니다. 유용성은 검출기의 목적과 그 기준점을 사용하는 전략의 표본 외 성과에 달려 있습니다.

Prominence는 RSI 피크를 감지할 수 있습니까?

네, RSI는 숫자 시리즈이기 때문입니다. 결과 단위는 RSI 포인트이므로, 가격 ATR는 유효한 직접 분모가 아닙니다.

연구 출처

각 출처는 옆에 설명된 정의나 근거를 뒷받침합니다. 의사코드, 가상 예시와 제안된 매개변수는 별도로 검증해야 합니다.

  1. scipy.signal.peak_prominencesSciPy. 양쪽 기준점, wlen 및 알고리즘 정의를 검토했습니다. 수치 처리 문서이며 금융 연구가 아닙니다. 확인일: .
  2. scipy.signal.peak_widthsSciPy. 상대 돌출도에 따른 너비 측정과 보간 동작을 검토했습니다. 확인일: .
  3. scipy.signal.find_peaksSciPy. 필터 정의와 거리 처리 방식을 검토했습니다. 확인일: .

관련 기법

위험 안내

이 내용은 학습과 연구 설계를 위한 것이며 금융 조언이 아닙니다. Backtest는 과거 데이터 시뮬레이션으로, 미래 성과를 보장하지 않으며 실제 거래를 주문하지 않습니다. 이 라이브러리의 기법이 모두 앱에 구현된 기능은 아닙니다. 관련 정보: 검증 방법 및 학습 센터.

실제 자금을 투입하기 전에 규칙을 검증하세요

앱 지원 범위, 데이터와 개별 모의 거래를 확인하세요. 고급 탐지 기법은 별도 구현이 필요할 수 있습니다.

App Store에서 Backtest 다운로드