Laboratorio Elliott: MT4, MT5, Pine e Python
Tre esempi didattici su OHLC chiusi, pivot confermati e sei punti di prezzo.
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 onlyMT4 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.
| Interfaccia | Risultato |
|---|---|
| MT4 / iCustom | double: mode + shift |
| MT5 / iCustom | handle → CopyBuffer |
| P4=119 / P1=120 | No. 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 evento | Significato e verifica riproducibile |
|---|---|
| Invert pattern | Inverte la ricerca: impulso ribassista e zigzag rialzista. Mantenete la stessa finestra salvata. |
| In progress | Include strutture incomplete. Disattivate per confrontare solo pattern riconosciuti come completi; i dati successivi possono comunque rivederli. |
| Length type: Absolute / Percent | Absolute misura differenze di prezzo, Percent variazioni relative. Fissate la scelta: ordine delle lunghezze e prove possono cambiare. |
| Show projections | Mostra possibili onde future secondo riferimenti Fibonacci in modalità In progress. Una proiezione disegnata non è prezzo osservato. |
| Pivots / ultima onda | I punti seguono pivot adatti; l’ultima onda in corso usa un estremo locale. Registrate disponibilità e spostamenti successivi. |
| New pattern | Nuovo pattern o ricostruzione che muove insieme almeno due punti; il cambiamento del primissimo punto è escluso. |
| New potential wave | Si aggiunge un’onda in formazione, oppure l’ultima già formata cambia punto e torna a formarsi. |
| Wave formed | Un’onda prima in corso si è formata. Salvate ora, evento e stato; non garantisce rendimento. |
| Ricalcolo | Nuovi dati aggiornano i pattern precedenti; ogni parametro modificato avvia un ricalcolo completo. Confrontate con lo stesso ingresso conservato. |