Student Wyckoff · Elliott Wave

Blog e pratica

Laboratorio Elliott: MT4, MT5, Pine e Python

Tre esempi didattici su OHLC chiusi, pivot confermati e sei punti di prezzo.

Redazione Student Wyckoff

Pubblicato: (UTC+3)

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

Definisci input, ordine delle barre e disponibilità prima di programmare il conteggio. Questi esempi originali svolgono operazioni parziali, non una rilevazione Elliott completa. Non dimostrano integrazione con Pro/Light e non inviano ordini.

MT4, MT5 e MQL5: contratto OHLC

In MQL4/MQL5, CopyRates con start_pos=0 include la barra corrente incompleta. L’esempio chiede tre barre D1 dalla posizione 1. Esigi esattamente 3 risultati; errori o storico ancora in download richiedono arresto e nuova verifica. ArraySetAsSeries(false) legge prima le più vecchie; CopyRates le mette all’inizio fisico indipendentemente dal flag serie.

Registra simbolo, fuso del broker, sessione, rettifiche, OHLC e unità del volume. Volume tick e volume effettivamente scambiato in borsa non sono intercambiabili. MqlRates non rileva onde e non dimostra compatibilità CSV con Pro. Verifica separatamente il formato reale d’importazione; non si rivendica un test eseguito nel terminale.

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: pivot e disponibilità

ta.pivothigh(high,2,2) richiede due barre a destra. Il massimo della 10 diventa noto alla chiusura della 12. offset=-2 sposta il disegno alla 10, non la conoscenza nel passato. L’etichetta nasce alla conferma e conserva entrambi gli indici.

Crea l’avviso nell’interfaccia dopo aver aggiunto lo script e verifica la chiusura. Il frammento non valida sottoonde, gradi o correzioni. Separa gli strumenti nativi e questo esempio Pine da ExtraLight: la pagina attuale annuncia una versione futura e l’accesso a pagamento non è aperto.

//@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 e controllo dei prezzi

csv.DictReader restituisce stringhe; Decimal usa la stringa originale senza float intermedio. Per i file usa open(path,newline="",encoding="utf-8"). I sei punti inventati verificano solo parte dei vincoli di prezzo di un impulso rialzista ordinario.

100→120→110→145→125→150 dà lunghezze motrici 20,35,25: la 3 non è la più corta e la 4 resta sopra 120. Sostituire 125 con 119 viola il mancato overlap. True non prova sottoonde, grado, scelta dei pivot o redditività; le diagonali richiedono regole diverse.

Il controllo f>d limita inoltre l’esempio a una quinta non troncata. Una quinta troncata può non superare il massimo della terza; il rifiuto della funzione da solo non esclude un altro impulso valido.

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 e MT5: contratto dei buffer

MQL4 iCustom restituisce un valore di buffer con mode e shift. MQL5 iCustom restituisce un handle; CopyBuffer legge i valori. Le interfacce non dimostrano riconoscimento Elliott di un indicatore senza identità. Registra file, versione, input, significato buffer, valori mancanti e confine delle barre chiuse.

Usa la stessa serie del broker salvata per entrambi i test. Estremo ZigZag, etichetta d’onda e segnale richiedono verifiche diverse. Esamina ritardo e revisioni storiche; mantieni irrisolto ciò che non sai. Il precedente CopyRates ottiene solo dati. Non dimostra un particolare binario gratuito, integrazione con Pro o ordini automatici.

InterfacciaRisultato
MT4 / iCustomdouble: mode + shift
MT5 / iCustomhandle → CopyBuffer
P4=119 / P1=120No. Fallisce il mancato overlap; gli altri controlli strutturali restano separati.

TradingView: pattern formati, impostazioni e avvisi

La documentazione dell’Elliott Waves di TradingView descrive la ricerca di impulsi e zigzag sulle ultime 600 barre. I due livelli di etichette indicano annidamento, non gradi storici Elliott stabiliti automaticamente. I pivot selezionati privilegiano ampi movimenti e non rappresentano tutti i conteggi. Documentazione controllata il 25 ottobre 2026; non si dichiara un test installato nell’account utente.

Prima di cambiare, salvate simbolo con sede, intervallo, scala, ultima barra chiusa, tutti i parametri e schermata. Nel dialogo degli avvisi scegliete l’indicatore come condizione e uno dei tre eventi documentati. Una parte segnalata come formata non conferma l’intero pattern Elliott. L’accesso dipende dall’account; non si garantisce uno specifico piano gratuito.

Impostazione o eventoSignificato e verifica riproducibile
Invert patternInverte la ricerca: impulso ribassista e zigzag rialzista. Mantenete la stessa finestra salvata.
In progressInclude strutture incomplete. Disattivate per confrontare solo pattern riconosciuti come completi; i dati successivi possono comunque rivederli.
Length type: Absolute / PercentAbsolute misura differenze di prezzo, Percent variazioni relative. Fissate la scelta: ordine delle lunghezze e prove possono cambiare.
Show projectionsMostra possibili onde future secondo riferimenti Fibonacci in modalità In progress. Una proiezione disegnata non è prezzo osservato.
Pivots / ultima ondaI punti seguono pivot adatti; l’ultima onda in corso usa un estremo locale. Registrate disponibilità e spostamenti successivi.
New patternNuovo pattern o ricostruzione che muove insieme almeno due punti; il cambiamento del primissimo punto è escluso.
New potential waveSi aggiunge un’onda in formazione, oppure l’ultima già formata cambia punto e torna a formarsi.
Wave formedUn’onda prima in corso si è formata. Salvate ora, evento e stato; non garantisce rendimento.
RicalcoloNuovi dati aggiornano i pattern precedenti; ogni parametro modificato avvia un ricalcolo completo. Confrontate con lo stesso ingresso conservato.

Fonti e limiti