Student Wyckoff · Elliott Wave

블로그와 실습

엘리엇 데이터 실습: MT4·MT5·Pine·Python

완료된 OHLC, 피벗 확인 지연, 여섯 가격점의 세 가지 교육 예제.

Student Wyckoff 편집팀

게시일: (UTC+3)

Русский · English · Deutsch · Español · Français · Italiano · 繁體中文 · 日本語 · 한국어

카운트를 구현하기 전에 입력, 봉 순서, 결과를 알 수 있는 시점을 정합니다. 아래 자체 예제는 일부 연산이며 완전한 파동 탐지기가 아닙니다. Pro/Light 연동을 입증하거나 주문을 전송하지 않습니다.

MT4·MT5·MQL5의 OHLC 계약

MQL4/MQL5 CopyRates의 start_pos=0은 진행 중 봉을 포함합니다. 예제는 위치1에서 D1 세 개를 요청하고 반환값이 정확히3인지 확인합니다. 오류나 미완료 이력이면 중단하고 재확인합니다. ArraySetAsSeries(false)는 오래된 순으로 읽게 하며 CopyRates는 플래그와 관계없이 오래된 값을 물리 메모리 앞에 둡니다.

종목, 브로커 시간대, 세션, 조정, OHLC, 거래량 단위를 저장합니다. 틱 수와 거래소 실제 거래량은 서로 대체되지 않습니다. MqlRates 취득은 파동 탐지나 Pro 호환 CSV의 증거가 아니므로 실제 가져오기 형식은 별도로 확인합니다. 터미널 실행 실측을 주장하는 예제가 아닙니다.

void OnStart() {
  MqlRates rates[];
  ArraySetAsSeries(rates, false);
  int n = CopyRates(_Symbol, PERIOD_D1, 1, 3, rates);
  if(n != 3) { Print("Need 3 completed bars; received ", n); return; }
  for(int i=0; i<n; i++)
    Print(rates[i].time, " ", rates[i].open, " ", rates[i].high,
          " ", rates[i].low, " ", rates[i].close);
}

Pine Script: 피벗과 확인 시점

ta.pivothigh(high,2,2)는 오른쪽 봉 두 개가 필요합니다.10번 고점은12번 마감 때 알려집니다. offset=-2는 그림을10으로 옮길 뿐 지식을 과거로 옮기지 않습니다. 라벨은 확인 시 생성하며 두 인덱스를 기록합니다.

스크립트를 추가한 뒤 화면에서 알림을 만들고 마감 동작을 확인합니다. 내부 파동·등급·조정 모델은 검사하지 않습니다. 기본 도구와 이 Pine 예제를 ExtraLight와 구분합니다. 현재 ExtraLight 페이지는 향후 출시 예정이며 유료 접근은 아직 열리지 않았습니다.

//@version=6
indicator("Confirmed pivot record", overlay=true, max_labels_count=100)
p = ta.pivothigh(high, 2, 2)
confirmed = barstate.isconfirmed and not na(p)
plot(confirmed ? p : na, style=plot.style_cross, offset=-2)
if confirmed
    label.new(bar_index, high, str.format("pivot {0}; available {1}", bar_index-2, bar_index))
    alert("Confirmed high pivot", alert.freq_once_per_bar_close)

Python: CSV와 가격 조건 검사

csv.DictReader는 문자열을 반환합니다. Decimal에는 float를 거치지 않은 원문 문자열을 전달합니다. 파일은open(path,newline="",encoding="utf-8")로 읽습니다. 여섯 가상 점은 일반 상승 충격파의 일부 가격 제약만 검사합니다.

100→120→110→145→125→150이면 추진 길이20·35·25로3파가 최단이 아니며4파는120 위입니다.125를119로 바꾸면 비중첩 조건을 위반합니다. True는 하위파동, 등급, 피벗 선택, 수익성의 증명이 아니며 다이아고날에는 다른 규칙이 필요합니다.

f>d 검사는 이 예제를 절단되지 않은5파로 추가 제한합니다. 절단5파는3파 고점을 넘지 않을 수 있으므로 함수의 거절만으로 다른 유효 충격파를 배제할 수 없습니다.

import csv, io
from decimal import Decimal as D

csv_text = "point,price\n0,100\n1,120\n2,110\n3,145\n4,125\n5,150\n"
with io.StringIO(csv_text, newline="") as stream:
    p = [D(row["price"]) for row in csv.DictReader(stream)]

def upward_price_subset(p):
    if len(p) != 6: return False
    a,b,c,d,e,f = p
    l1,l3,l5 = b-a,d-c,f-e
    return (b>a and a<c<b and d>b and b<e<d and f>d
            and l3 >= min(l1,l5))

assert upward_price_subset(p)
assert not upward_price_subset(p[:4]+[D("119"),p[5]])
print(upward_price_subset(p))  # True: price subset only

MT4와 MT5 지표: 버퍼 명세 식별하기

MQL4 iCustom은 mode와 shift로 선택한 지표 버퍼 값을 반환합니다. MQL5 iCustom은 handle을 반환하고 CopyBuffer가 값을 가져옵니다. 이 인터페이스는 이름 없는 사용자 지표가 엘리엇 파동을 탐지한다는 증거가 아닙니다. 수치 해석 전에 지표 파일 식별 정보, 입력, 버퍼 의미, 결측값 정책, 완료 봉 마감을 저장합니다.

두 실행에 같은 브로커 계열과 저장 봉을 씁니다. ZigZag 극값, 엘리엇 표식과 매매 신호는 각각 다른 검증이 필요합니다. 지연 피벗과 과거 변경을 확인하고 미해결 결과는 미해결로 둡니다. 앞선 CopyRates 예는 자료만 얻습니다. 이 인터페이스 예는 특정 사용자 바이너리, 무료 라이선스, Pro와 MT4/MT5의 통합 또는 자동 주문 동작을 주장하지 않습니다.

인터페이스반환 객체
MT4 / iCustomdouble: mode + shift
MT5 / iCustomhandle → CopyBuffer
P4=119 / P1=120아닙니다. 비중첩 검증에 실패하며 다른 구조 검증은 별도로 필요합니다.

TradingView: 형성된 패턴·설정·알림

TradingView 자체 Elliott Waves 문서는 최근 600개 봉에서 충격파와 지그재그를 탐색한다고 설명합니다. 두 표식 단계는 중첩을 나타내며 역사적 엘리엇 등급을 자동 확정한 것이 아닙니다. 적합한 피벗으로 큰 움직임을 우선하며 모든 가능한 카운트를 나타내지는 않습니다. 문서 확인일은 2026년 10월 25일로, 사용자 계정에 설치해 시험했다고 주장하지 않습니다.

변경 전 거래소를 포함한 종목, 시간봉, 축척, 마지막 마감 봉, 모든 입력과 화면을 보존합니다. 알림 창에서 조건으로 해당 지표를 고르고 문서의 세 이벤트 중 하나를 선택합니다. 한 부분이 형성되었다는 알림은 전체 엘리엇 패턴의 확인이 아닙니다. 이용 가능 여부는 계정에 따라 다르며 특정 무료 플랜의 접근은 보장하지 않습니다.

설정 또는 이벤트의미와 재현 검증
Invert pattern탐색을 뒤집어 하락 충격파와 상승 지그재그를 찾습니다. 같은 저장 구간을 유지합니다.
In progress미완성 구조를 포함합니다. 완성으로 인식한 패턴만 비교하려면 끄되 후속 자료가 이들도 수정할 수 있습니다.
Length type: Absolute / PercentAbsolute는 가격차, Percent는 상대 변화를 씁니다. 길이 순서와 규칙 검사가 바뀔 수 있으므로 선택을 먼저 고정합니다.
Show projectionsIn progress에서 피보나치 관계로 가능한 다음 파를 표시합니다. 투영값은 관측 가격이 아닙니다.
Pivots / 마지막 파점은 적합한 피벗에 연결되고 진행 중 마지막 파는 국소 고저점을 씁니다. 가용 시점과 이후 이동을 기록합니다.
New pattern새 패턴 또는 두 점 이상을 함께 바꾸는 재구성입니다. 맨 처음 점의 이동은 세지 않습니다.
New potential wave새 형성 중 파를 더하거나 마지막 형성 파가 다른 점으로 옮겨 다시 형성됩니다.
Wave formed이전에 진행 중인 파가 형성됩니다. 시간·이벤트·상태를 저장하며 수익 보장으로 보지 않습니다.
재계산새 자료는 과거 패턴을 수정하고 입력 하나만 바꿔도 전체를 재계산합니다. 같은 저장 입력으로 결과를 비교합니다.

출처와 한계