Student Wyckoff · Elliott Wave

Blog y práctica

Laboratorio Elliott: datos de MT4, MT5, Pine y Python

Tres ejemplos didácticos sobre OHLC cerrado, pivotes confirmados y seis puntos de precio.

Equipo editorial Student Wyckoff

Publicado: (UTC+3)

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

Antes de programar un conteo, defina entradas, orden de barras y disponibilidad. Estos ejemplos propios muestran operaciones parciales, no un detector Elliott completo. No acreditan integración con Pro/Light ni envían órdenes.

MT4, MT5 y MQL5: contrato OHLC

En MQL4/MQL5, CopyRates con start_pos=0 incluye la barra actual abierta. El ejemplo solicita tres barras D1 desde posición 1. Exija exactamente 3 resultados; errores o historial pendiente requieren parar y comprobar otra vez. ArraySetAsSeries(false) permite leer primero la más antigua; CopyRates la coloca primero físicamente cualquiera que sea la bandera de serie.

Registre símbolo, zona horaria del bróker, sesión, ajustes, OHLC y unidades de volumen. El volumen de ticks no equivale al volumen negociado de bolsa. Obtener MqlRates no detecta ondas ni acredita un CSV compatible con Pro. Verifique aparte el formato real de importación; no se afirma una prueba ejecutada en terminal.

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: pivote y disponibilidad

ta.pivothigh(high,2,2) necesita dos barras a la derecha. Un máximo en 10 se conoce al cierre de 12. offset=-2 mueve el dibujo a 10, pero no el conocimiento. La etiqueta nace en la confirmación y conserva ambos índices.

Cree la alerta en la interfaz tras añadir el script y compruebe el cierre. El fragmento no valida subdivisiones, grados ni correcciones. Separe las herramientas nativas y este ejemplo Pine de ExtraLight: su página actual anuncia una futura versión y el acceso de pago aún no está abierto.

//@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 y comprobaciones de precio

csv.DictReader devuelve cadenas; Decimal utiliza la cadena original sin pasar por float. Para archivos use open(path,newline="",encoding="utf-8"). Los seis puntos inventados comprueban solo parte de las restricciones de precio de un impulso alcista ordinario.

100→120→110→145→125→150 da longitudes motrices 20,35,25: la 3 no es la menor y la 4 queda sobre 120. Cambiar 125 por 119 infringe el no solapamiento. True no acredita subondas, grado, selección de pivotes ni rentabilidad; las diagonales necesitan otras reglas.

La prueba f>d limita además el ejemplo a una quinta no truncada. Una quinta truncada puede no superar el máximo de la tercera; el rechazo de esta función no excluye por sí solo otro impulso válido.

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 y MT5: contrato de búferes

MQL4 iCustom devuelve un valor de búfer mediante mode y shift. MQL5 iCustom devuelve un handle; CopyBuffer obtiene valores. Esas interfaces no prueban detección Elliott de un indicador sin identificar. Guarde archivo, versión, entradas, significado del búfer, regla de ausencias y corte de barras cerradas.

Use la misma serie del bróker guardada para ambas pruebas. Extremo ZigZag, etiqueta de onda y señal necesitan verificaciones distintas. Revise retrasos y cambios históricos; deje pendiente lo desconocido. El ejemplo anterior CopyRates solo obtiene datos. No demuestra una versión gratuita concreta, integración con Pro ni órdenes automáticas.

InterfazValor devuelto
MT4 / iCustomdouble: mode + shift
MT5 / iCustomhandle → CopyBuffer
P4=119 / P1=120No. Falla el no solapamiento; las demás comprobaciones estructurales siguen pendientes.

TradingView: patrones formados, ajustes y alertas

La documentación del Elliott Waves de TradingView describe búsquedas de impulsos y zigzags en las últimas 600 barras. Dos niveles de etiquetas representan anidamiento, no grados históricos de Elliott identificados automáticamente. Los pivotes seleccionados favorecen movimientos amplios, sin representar todos los recuentos. Documentación comprobada el 25 de octubre de 2026; no se afirma una prueba instalada en la cuenta del usuario.

Antes de cambiar algo guarde símbolo con plaza, intervalo, escala, última barra cerrada, todos los parámetros y captura. En el diálogo de alertas elija el indicador como condición y uno de sus tres eventos documentados. Una parte marcada como formada no confirma todo el patrón Elliott. La disponibilidad depende de la cuenta; no se promete acceso en un plan gratuito específico.

Ajuste o eventoSignificado y comprobación reproducible
Invert patternInvierte la búsqueda: impulso bajista y zigzag alcista. Mantenga la misma ventana guardada.
In progressIncluye estructuras incompletas. Desactive para comparar solo patrones reconocidos como completos; datos posteriores también pueden revisarlos.
Length type: Absolute / PercentAbsolute mide diferencias de precio; Percent, cambios relativos. Fije la opción: puede variar el orden de longitudes y la comprobación.
Show projectionsMuestra posibles ondas futuras por relaciones Fibonacci en In progress. Una proyección no es precio observado.
Pivots / última ondaLas referencias se atan a pivotes apropiados y la última onda en curso a un extremo local. Registre disponibilidad y cada traslado posterior.
New patternPatrón nuevo o reconstrucción que mueve al menos dos puntos a la vez; no cuenta el cambio del primer punto.
New potential waveSe añade una onda en formación o la última formada cambia de punto y vuelve a formarse.
Wave formedUna onda antes en formación se ha formado. Guarde hora, evento y estado; no garantiza rentabilidad.
RecálculoDatos nuevos revisan patrones anteriores; cualquier parámetro cambiado provoca recálculo completo. Compare con la misma entrada guardada.

Fuentes y límites