Laboratorio Elliott: datos de MT4, MT5, Pine y Python
Tres ejemplos didácticos sobre OHLC cerrado, pivotes confirmados y seis puntos de precio.
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 onlyMT4 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.
| Interfaz | Valor devuelto |
|---|---|
| MT4 / iCustom | double: mode + shift |
| MT5 / iCustom | handle → CopyBuffer |
| P4=119 / P1=120 | No. 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 evento | Significado y comprobación reproducible |
|---|---|
| Invert pattern | Invierte la búsqueda: impulso bajista y zigzag alcista. Mantenga la misma ventana guardada. |
| In progress | Incluye estructuras incompletas. Desactive para comparar solo patrones reconocidos como completos; datos posteriores también pueden revisarlos. |
| Length type: Absolute / Percent | Absolute mide diferencias de precio; Percent, cambios relativos. Fije la opción: puede variar el orden de longitudes y la comprobación. |
| Show projections | Muestra posibles ondas futuras por relaciones Fibonacci en In progress. Una proyección no es precio observado. |
| Pivots / última onda | Las referencias se atan a pivotes apropiados y la última onda en curso a un extremo local. Registre disponibilidad y cada traslado posterior. |
| New pattern | Patrón nuevo o reconstrucción que mueve al menos dos puntos a la vez; no cuenta el cambio del primer punto. |
| New potential wave | Se añade una onda en formación o la última formada cambia de punto y vuelve a formarse. |
| Wave formed | Una onda antes en formación se ha formado. Guarde hora, evento y estado; no garantiza rentabilidad. |
| Recálculo | Datos nuevos revisan patrones anteriores; cualquier parámetro cambiado provoca recálculo completo. Compare con la misma entrada guardada. |