Automazione e screening nell’analisi tecnica: strumenti, flusso di lavoro e insidie
Uno screener dovrebbe applicare la stessa regola all’intero elenco registrato degli strumenti. La domanda chiave dopo una scansione è quindi: un risultato vuoto significa che manca una configurazione o che mancano i dati? Questo capitolo accompagna dalla definizione di una configurazione operativa a uno pseudocodice completo, un registro degli avvisi e un test fuori dal campione usato per scegliere i parametri. Separiamo l’individuazione di un candidato dall’invio di un ordine. L’automazione può risparmiare lavoro, ma anche ripetere un errore rapidamente e con coerenza.

- Uno screener seleziona candidati. Il suo valore può consistere in una revisione più breve mantenendo la copertura dell’elenco. Per valutarne l’effetto sui risultati finanziari serve anche una regola fissata in anticipo per ingresso, uscita e costi.
- Un avviso ha un ambito definito. Non sostituisce il controllo delle condizioni esterne a tale ambito. La riduzione del tempo davanti allo schermo è misurabile; non presumiamo che disciplina o risultati migliorino automaticamente.
- Un backtest è un modello. Un tester può incorporare spread storici, commissioni e slippage ipotizzato. Non può riprodurre ogni prezzo disponibile o la futura risposta del broker, compresa una ricotazione. L’adattamento del modello alla storia non dimostra un futuro vantaggio operativo.
- I livelli di automazione sono una convenzione descrittiva. Un avviso, un filtro e un sistema che esegue ordini hanno responsabilità diverse. L’esecuzione completa richiede anche gestione di errori, duplicati e stato del conto; il solo segnale non basta.
1. Perché automatizzare e che cosa si automatizza esattamente
Le otto valute USD, EUR, GBP, JPY, CHF, AUD, NZD e CAD formano 8 × 7 / 2 = 28 coppie non ordinate. È un universo selezionato, non l’intero Forex né una misurazione degli strumenti «più seguiti». Un broker può offrire un elenco diverso. Registrare simboli, direzione della quotazione e versione dell’elenco prima della scansione. Valutiamo filtri di medie mobili, oscillatori e zone di supporto/resistenza con lo stesso contratto dei dati.
Uno screener applica una condizione registrata a un elenco. Produce un insieme di candidate e un rapporto sulla copertura. Una decisione successiva, manuale o automatica, può scartare una candidata; conserva separatamente quell'esito.
Uno screener effettua una revisione ripetibile senza scegliere grafici preferiti, ma solo entro la propria configurazione. Un elenco di 28 coppie nelle impostazioni non dimostra che tutte abbiano ricevuto dati aggiornati. Il rapporto deve includere anche un record per una coppia senza segnale e per una non valutabile.
RSI sotto 30 è l’esito di una condizione, non un ordine di acquisto. Se un’ulteriore analisi di price action o del contesto determina l’ingresso, registrare anche gli scarti. Altrimenti il test dello screener coprirà solo operazioni selezionate opportunisticamente.
2. Lo spettro dell’automazione: dall’avviso all’algoritmo
I cinque livelli seguenti organizzano l’ambito delle funzioni. Sono una convenzione del corso, non una classifica del percorso ottimale per la maggior parte dei trader. Un livello superiore richiede controlli aggiuntivi, ma non è necessariamente migliore per un compito specifico.
| Livello | Cosa fa la macchina | Cosa fa il trader | Esempi |
|---|---|---|---|
| 1. Avviso di prezzo | Notifica il raggiungimento di un livello | Analizza, decide, esegue | Avviso su EUR/USD = 1,0700 |
| 2. Avviso di indicatore | Notifica che un indicatore soddisfa una condizione | Analizza il contesto, decide | RSI(14) < 30 su D1 |
| 3. Screener | Filtra l’elenco degli strumenti secondo criteri | Esamina i risultati, analizza, decide | TradingView Screener |
| 4. Sistema semiautomatico | Genera un segnale e parametri proposti | Approva o scarta, gestisce la posizione | Indicatore personalizzato e avviso Pine Script |
| 5. Automazione completa | Analizza, apre, gestisce, chiude | Monitora, interviene nelle emergenze | Expert Advisor (EA) in MT4/MT5 |
Un filtro o avviso già pronto non richiede sempre programmazione. Richiede comunque configurazione, fonte dati e prova operativa. L’esecuzione semiautomatica e automatica introduce un problema distinto: una condizione identificata correttamente può ricevere un’esecuzione diversa o nessuna esecuzione.
L’articolo si concentra sui livelli da 1 a 4. L’automazione completa con EA compare soprattutto tra le insidie, perché è lì che si arriva quando si ricorre troppo presto a un robot.
3. Criteri di screening nella pratica
Parti dall'osservazione che vuoi trovare, poi traducila in condizioni. Un filtro selettivo è utile solo se trova i casi previsti e segnala ciò che non ha potuto valutare. Il solo numero dei risultati non dice se sia valido.
Lista di controllo per rendere oggettiva una regola
Prima di entrare nello scanner, una condizione deve passare dal linguaggio dell’intuizione a quello della macchina. Ogni elemento seguente non stabilito esplicitamente verrà deciso dallo scanner, di solito diversamente da quanto si presume:
| Elemento | Domanda di controllo |
|---|---|
| Universo | Quali strumenti scansiono: un elenco chiuso, non «tutto»? |
| Fonte dati | Di chi è il feed e quali prezzi contiene: bid, ask, mid? Sono gli stessi su cui opero? |
| Intervallo e momento della valutazione | Quali candele: solo chiuse? Quando viene calcolata esattamente la condizione? |
| Indicatore con implementazione | Quali parametri e quale implementazione: RSI di Wilder ≠ RSI su una SMA? |
| Operatore e soglia | Attraversamento della soglia o stato sotto/sopra? Con quale tolleranza? |
| Frequenza di scansione | Una volta per candela chiusa, ogni giorno a un’ora fissa o continuamente? |
| Dati mancanti | Come gestisce la regola una candela mancante, un vuoto o un cambio di simbolo? |
| Deduplicazione | Quanti avvisi se la condizione resta vera per sei candele consecutive: sei o uno? |
| Condizione di riarmo | Cosa invalida il segnale e permette alla regola di attivarsi di nuovo? |
Tre misure separate. Durata della scansione e copertura dei dati misurano comodità e affidabilità. L’accordo con un modello di riferimento etichettato indipendentemente misura il rilevamento della condizione. I risultati finanziari richiedono l’intera strategia, compresi candidati scartati, prezzi di risposta e costi. Raggiungere il TP non definisce di per sé un risultato «corretto» dello screener e la mancata crescita del tasso di successo non annulla il risparmio di tempo. Confrontare con la variante non filtrata sullo stesso campione riservato in anticipo.
Filtri di tendenza
- Prezzo rispetto a EMA/SMA. Il prezzo sopra una EMA a 200 crescente su D1 può definire un filtro direzionale. Scarta candidati che non soddisfano la condizione, non tutte le operazioni «controtrend» secondo ogni definizione del mercato. Il prezzo uguale alla media o una pendenza piatta richiedono una decisione esplicita.
- Incrocio di medie mobili. La condizione EMA 50 prima ≤ EMA 200 e ora > EMA 200 rileva una transizione. Non è un cambio incrociato né la prova di una variazione futura della direzione del prezzo. Entrambi i valori devono provenire da candele complete della stessa serie.
- ADX sopra una soglia. Soglie esemplificative della convenzione consolidata: ADX(14) > 25 è trattato come mercato in tendenza, < 20 come consolidamento, ricordando che ADX misura la forza del movimento, non la direzione. Utile soprattutto come filtro negativo: sotto soglia una regola di tendenza scarta lo strumento secondo il parametro scelto.
Filtri di momentum e oscillatori
- RSI in zone estreme. Le soglie esemplificative di RSI(14) sono 30 e 70. La frequenza dipende da strumento, intervallo, periodo e metodo di inizializzazione. Ipervenduto non è un segnale autonomo di acquisto, né ipercomprato di vendita. Senza ricerca non attribuiamo agli estremi D1 più informazione che a quelli H1.
- Divergenza. Occorre definire gli swing, l’abbinamento degli estremi di prezzo e oscillatore e il momento di conferma. Con tali definizioni si può calcolare anche uno schema complesso. Valutare manualmente divergenze «a più onde» senza regole lascia una selezione discrezionale difficile da riprodurre equamente in un test.
- Istogramma MACD: cambio di segno. L’istogramma attraversa lo zero dal basso: in questa implementazione cambia il rapporto fra linea MACD e linea del segnale, non si dimostra un cambio della direzione del prezzo. Facile da programmare e spesso usato come filtro preliminare per ulteriori analisi.
Filtri di prezzo e struttura
- Vicinanza a supporto/resistenza. Definire zona e tolleranza nella stessa unità del prezzo. Un avviso su una zona tracciata manualmente può semplificare la revisione, ma la sua efficacia va verificata; non deriva dalla facilità di configurazione.
- Rottura dell’intervallo di N candele. Per esempio, chiusura di una candela completata > massimo più alto delle 20 candele complete precedenti. La candela esaminata è esclusa dalla finestra del massimo; nella variante rigorosa l’uguaglianza non è rottura. È una convenzione di Donchian, non una promessa automatica di profitto.
- Fibonacci. Definire estremi di swing confermati e tolleranza attorno a un ritracciamento. La conferma ritardata è descritta nell’articolo 5.11. Calcolare un livello non dimostra che il prezzo vi reagirà.
Analizza una candela prima di leggere il contratto completo
Usa supporto S=1,1000 e ATR fissato A=0,0040. La zona è [1,0992;1,1008]; l'invalidazione richiede C < 1,0980; il riarmo richiede C ≥ 1,1040 e L > 1,1008. Supponi soddisfatte le condizioni EMA dichiarate quando viene verificato un segnale.
- Dati mancanti o non validi: registra quello stato e sospendi i nuovi avvisi.
- Una chiusura sotto il confine di invalidazione ritira questo contesto.
- Se disarmato, verifica il riarmo per la candela successiva. Non emettere avvisi su questa candela.
- Se armato, un'intersezione del range con la zona e C > S possono produrre una candidata se il filtro EMA è soddisfatto.
La traccia seguente fornisce i numeri. Sono input di un modello, non storia di mercato ricostruita. Il contratto successivo aggiunge controlli che conservano questo significato quando dati o richieste si ripetono.
Ripercorri lo stato degli avvisi senza vedere la candela successiva
Mantieni gli stessi S, A fissato, ordine delle diramazioni e contesto. Le prime sei decisioni usano la traccia pubblicata, incluso il ritentativo. L'interruzione finale è separata. Scegli prima di rivelare la verifica; le risposte restano accessibili senza inserire note.
Passaggio 1. Armato. L=1,1007,H=1,1015,C=1,1010.
Nota facoltativa. Conservane una copia se il salvataggio nel browser non è disponibile.
Verifica il passaggio e rivela il successivo
SIGNAL. Il range interseca la zona, C > S e il filtro EMA ipotizzato è soddisfatto. Disarma questo contesto.
Passaggio 1 — ritentativo. Arrivano di nuovo la stessa chiave e lo stesso hash degli input.
Nota facoltativa. Conservane una copia se il salvataggio nel browser non è disponibile.
Verifica il passaggio e rivela il successivo
Restituisci il SIGNAL esistente. Non valutarlo rispetto allo stato ora disarmato e non inviare un'altra notifica.
Passaggio 2. Disarmato. L=1,1010,H=1,1042,C=1,1040.
Nota facoltativa. Conservane una copia se il salvataggio nel browser non è disponibile.
Verifica il passaggio e rivela il successivo
REARM per la candela successiva. C è uguale alla soglia consentita e L è sopra 1,1008. Nessun avviso adesso.
Passaggio 3. Armato. L=1,1007,H=1,1025,C=1,1010; il filtro EMA è soddisfatto.
Nota facoltativa. Conservane una copia se il salvataggio nel browser non è disponibile.
Verifica il passaggio e rivela il successivo
SIGNAL su questa nuova chiave della candela, poi disarma.
Passaggio 4. Disarmato. L=1,0975,H=1,1014,C=1,0980.
Nota facoltativa. Conservane una copia se il salvataggio nel browser non è disponibile.
Verifica il passaggio e rivela il successivo
DISARMED. L'uguaglianza non soddisfa C < 1,0980. Non si soddisfa neppure il riarmo.
Passaggio 5. Disarmato. L=1,0974,H=1,0982,C=1,0979.
Nota facoltativa. Conservane una copia se il salvataggio nel browser non è disponibile.
Verifica il passaggio e rivela il successivo
INVALIDATED. Ritira il vecchio centro; serve un nuovo frattale confermato.
Passaggio con interruzione separata. Al posto di un record completo, un errore nei dati impedisce la valutazione.
Nota facoltativa. Conservane una copia se il salvataggio nel browser non è disponibile.
Verifica il passaggio e rivela il successivo
NO_DATA. Non inventare NO_SIGNAL e non dedurre riarmo o invalidazione all'interno dell'interruzione. Sospendi gli avvisi finché il contesto non viene ricostruito.
Leggi la traccia completa dell'esempio
Lo stesso livello, stati successivi dell’avviso
Percorriamo la regola senza cambiare soglie dopo aver visto l’esito. Il supporto S = 1,1000 proviene da un frattale confermato prima del primo giorno esaminato. ATR A = 0,0040, ossia 40 pip, fissato allora, definisce zona [1,0992; 1,1008], invalidazione a C < 1,0980 e riarmo a C ≥ 1,1040 e L > 1,1008. Sono parametri del modello, non valori raccomandati per EUR/USD. Centro del frattale e A restano uguali nell’intero esempio.
| Passo | L / H / C | Stato precedente | Esito |
|---|---|---|---|
| 1 | 1,1007 / 1,1015 / 1,1010 | Armato | L’intervallo interseca la zona, C > S: avviso e disarmo |
| 1: nuovo tentativo | Stessa chiave e hash degli input di 1 | Record SIGNAL esistente | Restituire l’esito precedente; nessuna nuova valutazione, variazione di stato o notifica |
| 2 | 1,1010 / 1,1042 / 1,1040 | Disarmato | C uguale alla soglia di riarmo, L sopra la zona: armare per il passo successivo, nessun avviso |
| 3 | 1,1007 / 1,1025 / 1,1010 | Armato | Nuovo test: secondo avviso, diversa fine candela e chiave |
| 4 | 1,0975 / 1,1014 / 1,0980 | Disarmato | L’uguaglianza non invalida nella regola rigorosa; nessun riarmo né avviso |
| 5 | 1,0974 / 1,0982 / 1,0979 | Disarmato | C < 1,0980: contesto invalidato |
Nei passi 1 e 3 il filtro EMA dichiarato è soddisfatto: la chiusura è sopra l’EMA e l’EMA corrente supera il proprio valore di 20 candele prima. La tabella non ricostruisce 500 candele di riscaldamento; queste due condizioni sono input di un modello logico, non letture di mercato documentate. Ripetere il passo 1 deve restituire lo stesso SIGNAL; non va ricalcolato usando lo stato ormai disarmato e sovrascritto come DISARMED. In revisione ricostruiamo separatamente lo stato prima di quella candela e gli stati dipendenti successivi, conservando l’esecuzione originale. Il passo 2 non può armare ed emettere un avviso insieme, perché all’inizio della valutazione era disarmato. L’ordine dei rami è parte della definizione, non un dettaglio tecnico.
Dopo il passo 5, il vecchio frattale rimane archiviato come invalidato. La scansione del giorno seguente non può rinominarlo «ultimo supporto» e creare un altro avviso dallo stesso centro. Serve un nuovo frattale confermato. La scadenza dopo 60 candele è uno stato separato: avviene anche senza oltrepassare il livello di invalidazione. Se mancano dati fra passi, non sappiamo se nel vuoto sia avvenuto riarmo o invalidazione; segnalare l’interruzione e sospendere nuovi avvisi fino a ricostruire il contesto.
Una revisione del massimo/minimo può cambiare la qualificazione del frattale. Conservare istantanea originale, esito disponibile allora e correzione successiva collegata. Valutare «come funzionava la regola sui dati finali» e «cosa avrebbe potuto inviare davvero allora» sono due esperimenti diversi. Si possono fare entrambi, ma senza mescolarne i record. Il CSV degli stati allegato consente di verificare un’implementazione senza inviare ordini.
Dall’intuizione alla condizione: la regola completa e ciò che si perde nella traduzione
Intuizione: «comprare rimbalzi sul supporto in un trend rialzista su D1». Lo stesso pensiero scritto in modo eseguibile da uno scanner:
La versione completa ha quattro responsabilità: ottenere un'istantanea versionata, fissare il contesto, valutare la candela dal suo stato originale, confermare l'esito e consegnare una notifica senza duplicati. Leggi le diramazioni in ordine. Un ritentativo non è una nuova candela e una correzione non è un avviso originale.
Leggi il contratto completo di dati, stato e consegna
PSEUDOCODICE: CANDIDATO A «TEST DEL SUPPORTO», NON UN ORDINE
Configurazione fissata: versione, 28 coppie, feed BID, D1, calendario,
EMA: α=2/201, inizializzata con la SMA dei primi 200 C; ATR(14) di Wilder:
seme = media dei primi 14 TR con C precedente, poi α=1/14;
almeno 500 candele complete di riscaldamento sono una scelta del modello, non garanzia di convergenza.
Stato del simbolo: livello S, ATR A, intervallo di identificazione, armato/disarmato.
All’inizio di t, registrare un’istantanea immutabile del contesto con dati noti prima di start_t:
registra gli input per t senza modificare lo stato operativo di armamento; un nuovo tentativo usa questa istantanea.
Lo stato prima di t e l’archivio dei centri provengono dall’ultima candela elaborata in precedenza.
selezionare l’ultimo frattale inferiore rigoroso con 2 candele per lato,
confermato e ricevuto prima di start_t, vecchio non più di 60 candele;
minimi uguali non formano un frattale rigoroso; nessuno = NO_LEVEL.
Identificare nuovo contesto tramite feed e centro del frattale. Conservare i centri invalidati
nel registro; non ricreare contesto dallo stesso centro.
Per il nuovo contesto A := ATR noto prima di start_t; mantenerlo invariato
fino a scadenza, invalidazione o nuovo centro confermato.
Dopo 60 candele dal centro, registrare EXPIRED; non emettere avvisi.
Se A ≤ 0 o il valore manca: NO_VALUE, senza segnale.
Registrare zona [S − 0.2A; S + 0.2A] e invalidazione C < S − 0.5A.
Un nuovo frattale confermato crea nuovo contesto, armato prima del test.
Dopo la fine di t, per OGNI simbolo dell’universo completo:
Key := (version, feed, symbol, D1, end_UTC).
Recuperare OHLC completi di t e known_at, e l’istantanea di contesto salvata prima di start_t.
L’hash degli input comprende OHLC, storia degli indicatori, contesto, configurazione e versioni dei dati.
Se esistono questa chiave e questo hash: restituire il risultato precedente senza valutazione né variazioni di stato.
Se la chiave esiste con hash diverso: aggiungere una revisione ed eseguire una riproduzione separata
dallo stato fissato prima di t; non valutare t con lo stato già modificato da t.
Correggere la storia prima di t richiede una riproduzione dal primo input modificato.
Conservare risultato originale/known_at; marcare il risultato riprodotto come correzione successiva.
Non inviare la correzione come nuovo avviso originale; terminare il simbolo.
Alla prima valutazione, usare una copia dello stato prima di t e l’istantanea del contesto;
validare L ≤ min(O,C) ≤ max(O,C) ≤ H.
Controllare continuità delle sessioni, feed, componente, incrementi di prezzo e riscaldamento.
Errore dati: registrare NO_DATA; conservare lo stato; non emettere avvisi.
Se C_t < S − 0.5A: registrare INVALIDATED, rimuovere il contesto; terminare il simbolo.
Se lo stato era disarmato:
se C_t ≥ S + A AND L_t > S + 0.2A: armare per la candela SUCCESSIVA;
registrare REARM o DISARMED; non emettere avvisi nella stessa candela.
Se lo stato era armato:
trend := C_t > EMA200_t AND EMA200_t > EMA200_(t−20).
test := H_t ≥ S − 0.2A AND L_t ≤ S + 0.2A AND C_t > S.
signal := trend AND test.
Registrare SIGNAL o NO_SIGNAL con tutti gli operandi.
A un segnale, disarmare il contesto; nuovo avviso solo dopo un REARM futuro.
Ogni ramo terminale registra risultato, input e stato prima e dopo t.
Confermare record e stato una volta in una transazione con chiave univoca;
in caso di conflitto da ripetizione, restituire il record esistente senza seconda modifica.
Identificare la notifica con questa chiave, anche alla ripresa della consegna.
Elaborare le chiusure delle candele cronologicamente; un vuoto dati blocca gli avvisi successivi
fino alla ricostruzione del contesto; non può essere convertito in NO_SIGNAL.
Dopo la scansione, riportare expected/evaluated/missing/candidates, anche se candidates = 0.
L’avviso include end_t, known_at, version, S, A e condizioni; nessuna funzione di esecuzione.
La traduzione in condizioni rende visibili le scelte. Supporto significa un frattale confermato, la zona è ±0,2 × ATR fissato e un test richiede l'intersezione del range e la chiusura registrate. Il contesto W1 e la qualità discrezionale della candela sono fuori da questa regola. Riarmare un avviso e invalidare il supporto restano eventi distinti. Un'altra definizione richiede un'altra versione.
Contesto macro e filtri dei costi: cosa nessuno screener mostra da solo
Un filtro di calendario, spread o rollover è una regola separata. Qui non si stabilisce l’ottimalità di una finestra di 30 o 60 minuti. Registrare eventi coperti, provenienza delle date e se blocca nuovi candidati, nuovi ordini o modifica anche la gestione delle posizioni esistenti.
- Filtro di calendario. Una procedura esemplificativa può scartare nuovi candidati due ore prima di un evento selezionato. È un parametro da testare, non un requisito universale. Verificare la data presso l’editore e distinguere orario programmato da pubblicazione effettiva; «High impact» è la classificazione del fornitore del calendario.
- Filtro di spread. La soglia è esplicita, con unità e base di confronto. Il doppio di un livello misurato prima per coppia e ora del giorno può bloccare una nuova istruzione. Non spiega perché lo spread si sia ampliato né protegge una posizione esistente.
- Filtro ATR. ATR > 1,2 × media dei precedenti N valori descrive il superamento di una soglia scelta. Un valore inferiore non significa automaticamente «mercato poco liquido». Modificare SL, TP e volume richiede una regola registrata; non deriva necessariamente dal solo ATR.
Mantieni le valutazioni successive di figure, contesto e rischio come regole separate. Se una cambia la decisione di agire, conserva input e motivo di scarto.
I filtri possono restituire quantità diverse di risultati nei diversi regimi. Se si alternano insiemi per trend e intervalli laterali, la regola di cambio va registrata prima del test e deve usare dati allora disponibili. Scegliere retrospettivamente il miglior filtro per ogni segmento storico è un’altra ottimizzazione. Una settimana vuota con dati completi è un risultato valido, non un motivo per allentare le soglie al momento.
node reproduce-real-examples.cjs in quella cartella. Leggi le istruzioni oppure esamina i valori attesi. Il programma verifica 50 asserzioni e scrive i controlli in ./reproduced. Tutte le dipendenze delle fonti sono incluse; gli esempi collegati H1/H4 e sui tre simboli condividono il programma di verifica.Scansione H1 reale: un'ombra scartata e una nuova candidata
Un esperimento separato, più semplice, copre EURUSD, GBPUSD e USDJPY dalla stessa esportazione ICMarketsSC-Demo. Ogni H1 completa viene valutata dopo la fine, usando il Bid. Gli orari restano quelli originali MT5, senza scarto verificato. La soglia R è l'High dell'ultimo punto di svolta rigoroso con due High inferiori a sinistra e due a destra; l'uguaglianza non crea un punto di svolta. Il centro i diventa noto solo dopo la chiusura di i+2 ed è usato soltanto dalla barra successiva. La tolleranza è zero.
Una candidata richiede entrambe le condizioni Ct > R e Ct−1 ≤ R. Ogni punto di svolta produce al massimo una candidata e la chiave include versione della regola, flusso, simbolo, H1 e inizio della barra valutata. Un ritentativo restituisce l'esito registrato. Dopo 24 barre successive al centro il livello scade; ogni interruzione non oraria azzera il contesto e richiede un nuovo punto di svolta contiguo. Non deduciamo la causa dell'interruzione. È un filtro di candidate, non una strategia d'ingresso e uscita.
EUR/USD: il punto di svolta del 13 ottobre alle 21:00 ha High = 1,12037. Le sue due barre H1 a destra terminano il 14 ottobre alle 00:00, quindi R non può essere nota prima. H1 [03:00, 04:00) ha H = 1,12044 ma C = 1,12034: il superamento della sola ombra viene scartato, senza inventare una storia di «trappola». Solo H1 [04:00, 05:00) chiude a 1,12064, mentre C precedente resta ≤ R. Una candidata nasce dopo la ricezione di quella chiusura, non prima delle 05:00.
| Simbolo | R | C | Esito della scansione |
|---|---|---|---|
| EURUSD | 1,12037 | 1,12064 | Nuova candidata |
| GBPUSD | 1,32593 | 1,32669 | Punto di svolta già segnalato — nessuna ripetizione |
| USDJPY | 158,466 | 158,392 | Scartata: C ≤ R |
Sono stati valutati tutti e 3 i simboli su 3; una nuova candidata non significa un'operazione. Sono registrati anche gli scarti e tutti gli esiti precedenti dal 1º ottobre. Abbiamo scelto la prima candidata EURUSD dopo quella data con un precedente superamento scartato della stessa R nelle 12 barre H1 precedenti, non in base a un profitto successivo. L'esportazione non contiene tempi di ricezione in diretta, Ask, eseguiti o una storia completa delle revisioni. Mostriamo l'ordine causale sui dati fissati, non le notifiche effettivamente inviate allora.
Per la verifica: barre H1 di origine del grafico, stati successivi dell'esempio, il registro completo dei tre simboli, metadati e SHA-256e lo script di riproduzione. Le verifiche dei prefissi confrontano un esito calcolato usando solo la storia fino a quel punto con la stessa parte del replay completo. Aggiungere barre future non deve modificare un esito precedente.
4. TradingView: screener, avvisi e Pine Script
Screener integrato
TradingView offre filtri valutari e avvisi, ma l’ambito preciso dipende da strumento e piano attuali. Verificare colonne, intervallo e fonte. Il «volume» nello spot FX non è un registro centralizzato delle transazioni: può indicare gli aggiornamenti di un feed specifico. Due fonti possono produrre risultati diversi; il confronto resta possibile, ma richiede dati identificati e un metodo.
Per una prima implementazione usa un solo obiettivo: trovare candidate ipervendute all'interno di questo filtro ribassista D1. Valuta candele complete e disponibili dell'universo e del flusso registrati. La regola è C < EMA(200) AND RSI(14) < 35 AND ADX(14) > 20. L'uguaglianza non soddisfa nessuno dei confronti rigorosi. Implementazioni degli indicatori e inizializzazione seguono il contratto dati dichiarato. Restituisce candidate da esaminare, senza prescrivere una posizione corta o lunga.
| Riga del modello | Close / EMA200 | RSI14 / ADX14 | Esito |
|---|---|---|---|
| A | 1,0900 / 1,1000 | 32 / 24 | Candidata: tutti e tre i confronti sono soddisfatti |
| B | 1,1100 / 1,1000 | 32 / 24 | Scartata: la chiusura non è sotto l'EMA |
| C | 1,0900 / 1,1000 | 68 / 24 | Scartata: l'RSI non è sotto 35 |
Questi input verificano la logica senza ricostruire la storia degli indicatori. Un rendimento su cinque sessioni sarebbe una condizione distinta: 100 × (C_t / C_(t−5) − 1) ha segno; il suo valore assoluto no. Specifica segno, soglia e serie prima di aggiungerlo. Riporta numero atteso, valutato, mancante e candidate invece di promettere un conteggio giornaliero tipico.
Avvisi in TradingView
Un avviso segnala una condizione, che può richiedere chiusura o risposta intrabar. In entrambi i casi registrare tempo dei dati, rilevamento e ricezione del messaggio. Non presumiamo che tutti gli altri algoritmi abbiano già operato o che ogni notifica abbia lo stesso ritardo.
I limiti degli avvisi dipendono dall'attuale piano TradingView, dal tipo di avviso e dalla durata. Controllali prima di scegliere un universo. I limiti sugli avvisi attivi e sui simboli valutati sono vincoli distinti.
Pine Script: indicatori e strategie personalizzati
Pine Script supporta indicatori, avvisi e strategie simulate. Parti da una piccola condizione che sai verificare a mano, poi controllane il comportamento su barre complete e in formazione. La documentazione ufficiale definisce il modello di esecuzione.
- Un indicatore personalizzato può combinare RSI, una zona Fibonacci confermata e un rapporto fra EMA. Ogni input richiede calcolo, fonte e momento di disponibilità; una freccia disegnata non fornisce queste definizioni.
- Un avviso basato sull’indicatore personalizzato: lo script genera automaticamente l’avviso quando le condizioni coincidono. Arriva una notifica sul telefono e si apre un grafico pronto per l’analisi.
- Un backtest di strategia: Pine Script include un modulo
strategy()per testare la logica sui dati storici. I risultati sono nella scheda «Strategy Tester»: curva del patrimonio, drawdown, percentuale di successo e profit factor.
Pine Script calcola indicatori, avvisi e ordini simulati nell’emulatore di TradingView. L’integrazione nativa del broker per gestire ordini non significa che uno script di strategia invii proprie operazioni al broker. Eseguire automaticamente dopo un webhook richiede uno strato distinto e correttamente configurato, che identifichi duplicati, conferme ed errori. L’ambiente dipende da dati e requisiti; senza misurazione non presentiamo piattaforme come garanzia di minore slippage.
Un evento RSI in pseudocodice. Descrive logica, non codice pronto da incollare o un sistema che invia ordini. L’implementazione deve mantenere contratto di completezza e tempi e regola di inizializzazione specificati nell’articolo 5.8.
PSEUDOCODICE: SOLO AVVISI, NESSUN ORDINE
Configurazione: versione della regola, universo, feed BID, intervallo D1,
confini giornalieri, implementazioni RSI(14) ed EMA(200), almeno 500 candele storiche.
Dopo ogni fine D1 attesa, per OGNI simbolo:
Controllare completezza, OHLC, continuità del calendario e tempo di disponibilità.
Se mancano dati: registrare NO_DATA; conservare lo stato della soglia; terminare il simbolo.
Calcolare RSI ed EMA con lo stesso metodo dichiarato su due candele D1 complete consecutive.
Se il risultato è indefinito: registrare NO_VALUE; terminare il simbolo.
Event := RSI precedente ≥ 30 AND nuovo RSI < 30 AND nuovo C < nuova EMA.
Key := (version, feed, symbol, D1, end_UTC).
Registrare l’esito anche se event = FALSE, con tempo dei dati e hash.
Se event e key non ancora inviati: registrare un avviso, inviare la notifica.
Ripetere con la stessa chiave non invia un nuovo avviso.
Correzione storica: aggiungere una versione corretta; non sostituire la decisione originale.
Se esiste un vuoto dati fra candele: non fingere un attraversamento continuo.
Il prossimo evento richiede una nuova coppia di candele complete consecutive.
RSI = 30 sulla candela precedente consente la transizione, mentre l’uguaglianza su quella corrente non la soddisfa. È una scelta esplicita di operatori. Un’altra candela ancora sotto 30 non è una nuova transizione. Separatamente deduplichiamo un esito identico dopo una nuova scansione. Un vuoto dati non autorizza a inventare l’RSI mancante o accettare un incrocio non osservato.
Rilevamento e risposta. La chiusura è disponibile quando la candela è completata e ricevuta. Seguono avviso, decisione ed eventuale tentativo di esecuzione. L’emulatore predefinito di TradingView esegue un nuovo ordine non prima del tick successivo; offre anche opzioni per modellare l’esecuzione alla chiusura. Quell’opzione non dimostra che il prezzo fosse ottenibile dopo aver ricevuto l’avviso. Usare una chiusura HTF futura prima della fine del suo intervallo è anticipazione dei dati, qualunque sia il nome dell’impostazione. La sequenza temporale è mostrata nell’articolo 5.11.
5. MT4/MT5: scanner, indicatori ed EA
MetaTrader supporta indicatori locali ed Expert Advisor scritti in MQL4/MQL5. Un EA può inviare e gestire ordini se piattaforma, conto e fornitore lo consentono. Uno scanner che segnala soltanto condizioni ha una responsabilità più circoscritta.
Indicatori e scanner personalizzati
Un pannello può mostrare stato della tendenza, RSI e distanza da una media mobile per i simboli dell'Osservazione del mercato. Verifica regola, versione, copertura e gestione dei dati dello strumento. Il nome di un prodotto o una recensione non risolve queste domande.
Uno scanner locale MT4/MT5 richiede che il processo della piattaforma resti in esecuzione su un computer o VPS. Gli avvisi TradingView usano la sua infrastruttura server. Verifica aggiornamento dei dati, errori del servizio e ricezione dei messaggi in entrambi gli ambienti; la notifica è distinta dal rilevamento.
Expert Advisor: automazione completa
Gli EA sono programmi in grado di operare autonomamente. Si va da «compra quando EMA 50 incrocia sopra EMA 200» a sistemi complessi con gestione dinamica, trailing stop e analisi su più intervalli.
Valutare un EA pronto richiede regole documentate, storia delle modifiche, dati, costi e risultati comprendenti fasi deboli. Una curva regolare da sola non prova frode né adattamento, ma senza tali informazioni non può escluderli. Il resto del capitolo mostra cosa controllare.
MT5 rispetto a MT4
MT5 ha un tester multisimbolo, mentre quello standard di MT4 lavora su un simbolo selezionato. Conta per strategie di portafoglio, ma non determina qualità dei dati o del modello di esecuzione. Verificare strumenti, modalità di test e condizioni del broker: il nome della piattaforma non è una valutazione dell’esecuzione.
6. Flusso di lavoro: dalla scansione alla lista di osservazione
Il processo seguente separa scansione, verifica e risposta. È un esempio organizzativo per lo swing trading, non il risultato di uno studio di efficacia. Ogni fase lascia un record, anche lo scarto.
- W1 dopo la fine della settimana. Rivedere contesto e zone confermate in precedenza di supporto/resistenza. La valutazione può essere manuale o automatizzata se definita formalmente. Registrare tempo di identificazione e confini delle zone; non spostarli poi per adattarli all’esito.
- Scansione D1 dopo la chiusura specificata. Valuta ogni simbolo secondo la regola fissata. Esamina le candidate rispetto al contesto settimanale registrato; conserva gli scarti manuali e gli stati di dati mancanti.
- Lista di osservazione ed esposizione. Il numero di coppie dipende dalla capacità di revisione, non da un intervallo «ideale» di 2–5. Long EUR/USD, long GBP/USD e short USD/CHF condividono un lato short USD e hanno altre valute diverse; non sono una posizione identica. Misurare la correlazione su rendimenti allineati, specificando periodo e finestra. DXY duplica in parte questi cambi. COT ha date separate per posizioni e pubblicazione. Il dimensionamento della posizione appartiene solo al piano operativo.
- Avvisi e attesa. Sulle coppie osservate si impostano avvisi di prezzo al raggiungimento di una zona, di indicatore quando RSI entra in una zona estrema o su oggetti disegnati, come il tocco di una linea di tendenza. Non si resta a fissare il grafico: si attende la notifica.
- Avviso → esame → decisione. Esamina la candidata registrata e le condizioni separate di attivazione, rischio ed esecuzione. Una notifica non autorizza di per sé un ordine. Registra perché non si agisce.
Registrare durata reale della revisione e copertura. Un avviso non garantisce valutazione corretta del contesto o elenco completo. Una modifica dei dati dopo intervento o annuncio può cambiare l’esito della regola; verificarla richiede un nuovo record, non sostituire la lettura precedente.
Il numero dei candidati deve adattarsi alla capacità di revisione. Interpretare un risultato vuoto come assenza di configurazioni solo dopo aver verificato copertura dell’universo e attualità dei dati. Guasto, candela incompleta e storia insufficiente hanno stati separati. «Oggi no» è un’interpretazione, non un messaggio diagnostico.
7. Lunedì mattina: come si svolge lo screening di 28 coppie
Revisione illustrativa del lunedì: la fonte usa giornate che terminano alle 17:00 America/New_York e cinque candele D1 complete in una settimana normale. La valutazione usa l’ultima D1 completa ricevuta. Con UTC, entro lunedì può già esistere una breve candela domenicale; non presumiamo quindi universalmente che nel fine settimana non si formi una nuova D1.
8:15. Nello screener TradingView, filtri D1 con dati della chiusura di venerdì: RSI(14) < 35, prezzo sotto EMA 200, ADX(14) > 20. Obiettivo: coppie ipervendute in un trend ribassista.
Il filtro del modello restituisce quattro coppie con dati completi per tutte le 28. La revisione usa stessa fonte, fine D1 e inizializzazione degli indicatori:
- AUD/USD. Un RSI ipotetico di 28 e prezzo sotto EMA 200 soddisfano il filtro. Con una zona W1 già registrata, il candidato passa all’analisi successiva; la sola vicinanza al supporto non è un ordine di acquisto.
- NZD/USD. Il filtro è soddisfatto, ma una regola aggiuntiva richiede vicinanza a una zona W1, qui assente. Registrazione: scartato in validazione, non «falso segnale» etichettato dopo una perdita.
- EUR/GBP. Nel modello lo scanner riporta ADX 21 e un secondo feed 18 rispetto alla soglia > 20. Non è una misurazione unica coerente. Registrare le fonti e sospendere il confronto finché non si controllano OHLC, confini giornalieri e inizializzazione. Non attribuire l’intera differenza di tre punti ADX al solo feed senza ricalcolo.
- GBP/CHF. RSI 31 e ADX 27 ipotetici soddisfano il filtro. La vicinanza a un ritracciamento del 61,8% richiede uno swing noto in precedenza e una tolleranza specificata; avviso di prezzo e RSI restano condizioni distinte.
Modello: 4/28 = 14,2857% degli strumenti supera il filtro e 2/28 = 7,1429% resta nella lista. Il tempo di lavoro non è stato misurato. Con due insiemi di dati mancanti il rapporto corretto sarebbe «4 candidati su 26 valutati, copertura 26/28 = 92,8571%», non «4 su 28»; gli esiti dei due mancanti sono ignoti.
8. Avvisi: non perdere eventi senza restare a guardare
Un avviso separa l’attesa di una condizione dalla revisione del grafico. L’effetto sul tempo di lavoro si può calcolare. Non è una garanzia di meno operazioni impulsive: anche dopo una notifica occorre seguire il piano.
Ordine a mercato o limite: una regola breve
Un ordine a mercato non garantisce prezzo né esecuzione in ogni condizione. Un limite vincola il prezzo secondo le regole del prodotto, ma può restare ineseguito. Senza dati non presumiamo che un limite «vinca di solito» su D1. Scelta del tipo d’ordine e attivazione bid/ask sono trattate nell’articolo 2.7.
Tipi di avvisi
- Prezzo. «Avvisami quando EUR/USD raggiunge 1,0700». Si impostano su livelli di supporto/resistenza, ritracciamenti Fibonacci e zone d’interesse. Nessuna programmazione.
- Indicatore. «RSI(14) < 30 su D1» o «l’istogramma MACD ha cambiato segno». In TradingView: clic sull’indicatore → Crea avviso. In MT4/MT5: indicatore personalizzato con funzione di avviso. Attenzione: un avviso MT4 richiede piattaforma aperta o VPS, perché gira localmente.
- Su un oggetto disegnato. TradingView consente avvisi su linee e zone disegnate: il prezzo tocca la linea settimanale e arriva una notifica sul telefono. Unisce analisi tracciata manualmente e notifica automatica.
- Condizione composta. Un avviso con più condizioni: «prezzo sotto EMA 200 E RSI < 35 E ADX > 25». Richiede Pine Script o MQL, ma si configura una volta sola.
Come combinare gli avvisi nella pratica
Basati su zone e su indicatori. Nel fine settimana si tracciano zone su W1/D1 e vi si impostano avvisi di prezzo. In parallelo si impostano avvisi di indicatore, RSI < 30, sulle coppie osservate. Se scattano quasi contemporaneamente si ha una condizione più selettiva, non necessariamente una conferma indipendente: entrambi i criteri derivano dallo stesso prezzo. L’approccio per zone si abbina all’analisi di supporti e resistenze, quello per indicatori alle strategie basate su oscillatori.
Ridurre ripetizioni inutili e condizioni scadute. Il numero di avvisi attivi dipende dal processo di revisione: si può scansionare tutto l’universo e inviare solo eventi nuovi deduplicati. Non serve omettere strumenti per ridurre le notifiche.
Uno stato come RSI < 30 può restare vero per più candele. RSI precedente ≥ 30 e RSI attuale < 30 è un evento di transizione. Valuta la condizione scelta una sola volta per ogni candela completa specificata, poi elimina l'elaborazione ripetuta della stessa candela. Sono controlli distinti.
Allinea fonte, lato del prezzo, confini giornalieri e inizializzazione degli indicatori prima di confrontare gli scanner. OHLC diversi possono cambiare gli esiti delle soglie. Le sole etichette del fuso del server non stabiliscono entità o direzione della differenza. La lezione 5.11 illustra la mappatura temporale.
Nel modello ipotetico la zona W1 [1,0680; 1,0720] è definita prima del test. Separatamente si definisce un attraversamento di RSI(14) sotto 30 su D1 completa. La condizione congiunta richiede una finestra precisa, per esempio entrambi gli eventi nello stesso giorno, non un qualsiasi «momento simile» scelto a posteriori. Quando si verifica, si esamina una H4 completa secondo la regola della figura. È un filtro più selettivo, ma entrambi i segnali derivano dal prezzo e non sono automaticamente indipendenti.
9. Backtesting: cosa verificare e come interpretare i risultati
Un backtest applica un modello a input storici. Può rivelare regole incoerenti e stimare esiti secondo ipotesi dichiarate. Non può stabilire i prezzi esatti disponibili dopo una decisione in diretta o garantire risultati su nuove osservazioni.
Cosa vale la pena verificare
Un test storico richiede regole riproducibili e dati disponibili in ciascun momento. Anche una disuguaglianza semplice è incompleta senza fonte, intervallo, inizializzazione e prezzo di risposta.
- Condizioni degli indicatori. RSI(14) < 30 diventa riproducibile solo dopo aver fissato fonte, confini, calcolo e momento di valutazione.
- Regole d’uscita e SL/TP. SL fisso di 50 pip, TP di 100 pip, oppure trailing stop di 2× ATR. Misurabile e confrontabile.
- Confronto di varianti. Misura la stessa procedura con una soglia o una regola di stop diversa. Registra tutte le varianti esaminate e conserva dati non usati per sceglierle.
Si presta male al backtesting tutto ciò che richiede giudizio umano:
- Price action. Geometria delle candele, zona e tempo di conferma possono essere definiti numericamente. Un discrezionale «sembra convincente» richiede un protocollo di valutazione separato e registrato; non presumiamo che l’occhio aggiunga un vantaggio dimostrato rispetto alla regola.
- Contesto strutturale. Etichettare manualmente l’onda 2 richiede regole, versione dell’etichettatura e tempo di creazione. Rietichettare più tardi non può migliorare un precedente risultato del test.
- Decisioni discrezionali. Gli scarti possono essere registrati prospetticamente. Senza tale traccia non sappiamo se la discrezionalità abbia migliorato il risultato o se siano stati selezionati solo casi riusciti. Non c’è base per sostenere che il solo contesto invisibile all’algoritmo spieghi la redditività.
Qualità dei dati: un tema poco discusso
Un backtest è affidabile quanto i dati su cui viene eseguito. Nel Forex è un problema serio. Il mercato è decentralizzato: i dati di un broker possono differire da quelli di un altro, per spread e piccoli scarti OHLC. OHLC perde il movimento interno alla candela: con SL e TP stretti non permette di sapere quale sia stato toccato prima.
La modalità MT5 «Every tick based on real ticks» usa i tick disponibili, ma non ne garantisce la presenza ovunque. MetaQuotes descrive la generazione di tick dove mancano dati e il rifiuto di quelli incoerenti con i dati al minuto. Controllare il rapporto. Lo spread storico è distinto dal ritardo di esecuzione. Uno spread «corrente» fisso in un’altra modalità è uno scenario, non sempre una stima più bassa: può essere alto o basso rispetto alla storia testata.
Bid/ask, mid e prezzi del fornitore. Non dedurre il tipo di prezzo dalla gratuità di un’API. I metadati devono specificare bid, ask, mid, transazione o altra serie. Per un long calcolato rispetto al mid, il costo spread in pip è (spread d’ingresso + spread d’uscita)/2. Con entrambi a 1 pip e 200 cicli completi, la differenza è 200 pip prima di altri costi. Con ingresso ask e uscita bid effettivi è già nei prezzi. Dukascopy e TrueFX sono esempi di fonti da verificare; il nome del fornitore non elimina il controllo di colonne, copertura e vuoti.
Chiusura e intrabar sono regole diverse. Un contatto può verificarsi e scomparire prima della fine della candela. Un evento basato sulla chiusura attende completamento e ricezione. Gli OHLC non ricostruiscono tutto l'ordine dei movimenti nell'intervallo, quindi non dimostrano un vantaggio percentuale affermato per nessuna delle due regole.
Il finanziamento ha segno e unità. Lo swap può essere negativo o positivo secondo prodotto e lato della posizione; non ne deduciamo il segno per short USD/MXN o long USD/TRY dai soli nomi valutari. Il test richiede specifiche storiche e moltiplicatori giornalieri, non solo la tabella attuale. Per esempio, risultato di prezzo +80 USD, commissioni −7 USD e finanziamento −18 USD danno +55 USD; con finanziamento +18 USD il risultato è +91 USD. Lo spread incluso nei prezzi reali non va addebitato di nuovo. Unità e conversioni sono descritte nell’articolo 2.8.
Una candela, due esiti possibili
Il modello long è già aperto a un’esecuzione di 1,1000. La candela successiva ha questi OHLC bid: O = 1,1000, H = 1,1030, L = 1,0980, C = 1,1010. TP = 1,1020, SL ordinario = 1,0990; si assume esecuzione senza vuoti esattamente al livello, senza costi aggiuntivi. O→H→L→C raggiunge prima TP: +20 pip. O→L→H→C raggiunge prima SL: −10 pip. Entrambi hanno OHLC identici.
Con nozionale di 10.000 EUR, i risultati sono +20 o −10 USD. Non sono due esiti possibili della stessa operazione reale, ma due percorsi compatibili con dati incompleti. I prezzi eseguiti d’ingresso e uscita includono già il lato di mercato: non aggiungiamo di nuovo lo spread. Un tester che assume un ordine da OHLC sceglie una convenzione, da dichiarare nel rapporto. Un intervallo inferiore o i tick risolvono più casi, ma i dati mancanti restano mancanti.
Mid ed esecuzione: due calcoli dello stesso ciclo completo
Modello EUR/USD: mid d’ingresso 1,1000, spread iniziale 2 pip, quindi ask 1,1001; esecuzione long 1,1002. Mid d’uscita 1,1020, spread finale 4 pip, quindi bid 1,1018; esecuzione di vendita 1,1017. Nozionale 10.000 EUR. Profitto mid 20 USD. Le metà degli spread costano 1 + 2 = 3 USD; slippage rispetto ad ask/bid 1 + 1 = 2 USD. Il risultato sui prezzi eseguiti è (1,1017 − 1,1002) × 10.000 = 15 USD, coerente con 20 − 3 − 2.
Commissione di 2 USD per ciclo e finanziamento con segno di −1 USD danno 12 USD netti. Con conversione comune ipotizzata di 4,00 PLN/USD, sono 48 PLN; un registro reale dovrebbe usare cambi e tempi contabili dei singoli importi. Non calcoliamo di nuovo 15 − 3 − 2. Il CSV separa il riferimento dai prezzi effettivi.
Come interpretare i risultati
Le principali metriche del backtesting:
| Metrica | Cosa indica | A cosa prestare attenzione |
|---|---|---|
| Profit factor (PF) | Somma dei risultati NETTI positivi / valore assoluto della somma dei negativi | Lo zero non entra in nessuna somma. Senza perdite il rapporto è indefinito, non prova un vantaggio infinito. PF 1,5 non è una soglia universale. |
| Drawdown massimo | Massima caduta del patrimonio da un precedente picco | In valuta o percentuale del picco; dipende dalla frequenza di campionamento. I soli risultati delle operazioni chiuse possono omettere il rischio delle posizioni aperte. |
| Tasso di successo | Quota di risultati positivi in un campione definito | Il 30% degli esiti a +3R e il 70% a −1R danno +0,2R lordi per operazione. Un costo di 0,25R per ciclo completo porta il valore atteso a −0,05R. Rapporto rendimento/rischio e successo non provano da soli redditività futura. |
| Numero di operazioni | Dimensione del campione e diversità effettiva | 100 operazioni nello stesso movimento USD ≠ 100 osservazioni indipendenti. Esaminare raggruppamenti, regimi e incertezza; non esiste un minimo magico. |
| Indice di Sharpe | Rendimento medio in eccesso sul riferimento / deviazione standard dei rendimenti | Contano frequenza, riferimento, annualizzazione e dipendenza temporale. > 1 o > 2 non è un test qualitativo né prova di sovraottimizzazione. |
Esempio: un backtest mal eseguito e come correggerlo
Modello di ottimizzazione: soglia RSI da 10 a 30 a passi di 1, SL da 30 a 80 pip a passi di 1 e TP da 80 a 200 pip a passi di 1. La griglia contiene 21 × 51 × 121 = 129.591 combinazioni, non poche decine. Contare anche tentativi abbandonati e modifiche manuali delle regole. Un miglior PF esemplificativo di 2,8 sui dati 2020–2025 è un risultato di selezione su quel dataset, non dimostra un vantaggio della combinazione RSI 22 / SL 43 / TP 167.
Un picco netto attorno a una combinazione segnala la necessità di analizzare la sensibilità. Non prova da solo sovraottimizzazione: possono contare costi, campione piccolo e cambio di regime. Riportare tutta la griglia e la regola di selezione, non solo il punto migliore.
Dopo aver scelto parametri sull’intero 2020–2025, non si può rinominare 2024–2025 come campione riservato. Servono nuove osservazioni future o un altro piano definito prima. Addestramento, validazione e test hanno funzioni separate; dopo aver usato il test, non ottimizzarvi di nuovo.
Le differenze fra test e operatività possono derivare da modello dei costi, dati, esecuzione o condizioni mutate. Non ogni prova reale più debole dimostra sovraottimizzazione, né ogni backtest è ottimista per definizione. Il confronto richiede stesse regole e un diario di segnali, ordini ed esecuzioni reali.
Un forward test verifica il funzionamento su nuove osservazioni. La durata non dimostra rappresentatività: pochi mesi possono coprire pochi eventi e un solo regime. La demo verifica logica e disponibilità, ma l’esecuzione può differire dal conto reale. Scomporre un risultato peggiore in differenze di dati, esecuzione, costi e distribuzione degli eventi.
Rimescolare esiti chiusi, per esempio 1.000 permutazioni di 150 operazioni, mostra percorsi patrimoniali condizionati allo stesso campione e a regole fisse di dimensionamento. Non crea nuovi shock o cambi di distribuzione e può eliminare dipendenza temporale. Con rischio percentuale o posizioni simultanee occorre preservarne la struttura. Il 95º percentile non garantisce un limite al drawdown futuro. Uno strumento per l’esercizio è il simulatore Monte Carlo.
10. Python per screening e backtesting
Python può supportare un proprio registro dati e test. Costo e difficoltà dipendono da qualità della fonte, ambito e manutenzione. Uno scanner personalizzato richiede gestione degli errori, versioni delle dipendenze e monitoraggio: l’articolo presenta un contratto logico, non codice di produzione o la promessa di un sistema economico pronto all’uso.
Un ambiente personalizzato offre controllo su più parti del processo:
- Integrazione delle fonti. API dei broker e librerie di dati espongono strumenti e metadati diversi. Verifica accesso, copertura e revisioni prima di combinare le serie.
- Analisi statistica. Le librerie calcolano test e distribuzioni. Domanda, distribuzione di riferimento, ipotesi sulla dipendenza e famiglia dei tentativi richiedono comunque scelte corrette.
- Flessibilità del backtesting. Le librerie backtrader e vectorbt consentono strategie di portafoglio con molte coppie insieme, allocazione dinamica e correlazioni fra strumenti. Pine Script e MQL hanno limiti in quest’ambito.
- Un flusso di lavoro collegato. Acquisizione, scansione e notifiche possono condividere un registro. L'esecuzione richiede uno strato distinto di istruzioni e conferme di ricezione, con una propria gestione dei ritentativi.
- Analisi del sentiment. Alcuni trader sperimentano l’analisi automatica del sentiment di notizie e rapporti economici, inserendone il segnale nello screening. Esistono strumenti, da semplici script alle API di modelli linguistici, ma nella pratica retail resta più un esperimento che una soluzione finita.
Una catena in pseudocodice: dati, scansione e archivio. Non contiene token API né funzioni di esecuzione ordini. La stessa logica è implementabile in qualsiasi ambiente.
PSEUDOCODICE DELLA CATENA: NESSUNA FUNZIONE DI INVIO ORDINI
Caricare configurazione fissata ed elenco completo e versionato dei simboli.
Determinare le chiusure attese dal calendario della fonte, non dall’orologio del computer.
Per ogni simbolo recuperare dati con component, start, end, complete,
received_at, revision e identificatore della fonte.
Conservare un’istantanea immutabile dei dati e la somma di controllo.
Validare OHLC, unità di prezzo, continuità delle sessioni e riscaldamento degli indicatori.
In caso di errore registrare NO_DATA con la causa; non creare NO_SIGNAL.
Su un’istantanea valida calcolare la regola completa dei criteri.
Registrare un esito per ogni simbolo, compresi quelli che non soddisfano la condizione.
Deduplicare avvisi tramite version, feed, symbol, timeframe ed end_UTC.
In caso di correzione aggiungere un record collegato all’istantanea precedente.
Riepilogare expected, evaluated, missing, candidates e durata della scansione.
Archiviare separatamente decisione manuale e relativo tempo, senza sovrascrivere l’esito del filtro.
Segnalare fallimento del processo e simboli mancanti anche con zero candidati.
Prima di scegliere una fonte verificare licenza, strumenti coperti, lato del prezzo, timestamp, completezza, revisioni e bid/ask disponibili. Non attribuiamo un’etichetta unica a tutti i dati Yahoo o API gratuite. Una libreria di lettura non migliora automaticamente la qualità né fornisce prezzi eseguibili.
Ripetere una richiesta dati è diverso dal ripetere l’invio di un ordine. Una scansione può ricreare in sicurezza la stessa chiave e restituire il risultato precedente. Lo strato esecutivo richiede identificatore separato dell’istruzione e controllo dello stato prima di riprovare; è fuori dallo screener qui mostrato.
11. Insidie dell’automazione
L'automazione ripete un processo specificato. Misura se riduce il tempo di esame, conserva la copertura o cambia gli errori operativi. Può anche ripetere un errore con costanza; le verifiche seguenti rendono gli errori più facili da individuare.
| Insidia | Meccanismo | Come limitarla |
|---|---|---|
| Modello mid | Per due esecuzioni, la differenza è metà spread d’ingresso più metà spread d’uscita | Verificare il tipo di prezzo; non aggiungere ancora spread a esecuzioni ask/bid reali |
| Spread fisso | Scenario ipotizzato che può essere troppo basso o alto | Storico bid/ask e rapporto sui dati mancanti; la sola modalità tick reali non garantisce completezza |
| Slippage e commissioni omessi | Risultato netto inferiore al lordo, soprattutto su intervalli brevi | Modellare prudentemente lo slippage; includere commissione in R |
| Anticipazione dei dati | Il segnale usa dati indisponibili alla decisione: chiusura di una candela in formazione o swing futuro | Input disponibili alla decisione, inclusi ritardi di conferma e consegna; risposta a una quotazione disponibile successiva |
| Sovraottimizzazione | Parametri adattati al rumore di una storia specifica | Pochi parametri; fuori campione; walk-forward |
| Tentativi multipli | Selezionare la variante migliore aumenta il rischio di falsa scoperta | Registrare tutti i tentativi, usare una correzione appropriata e un test mai utilizzato |
| Distorsione da sopravvivenza | Si vedono solo i sistemi sopravvissuti | Valutare il processo, non risultati preselezionati |
| Ridisegno retroattivo | L’indicatore ridisegna la storia chiusa | Provare l’indicatore in avanti; evitare strumenti simili a ZigZag nelle regole |
| Swap omesso | Il costo di mantenimento riduce i risultati swing | Includere punti swap; testare con dati comprensivi dei costi |
Sovraottimizzazione: adattamento al passato
Sovraottimizzare significa adattare scelte a proprietà di un campione che non persistono fuori da esso. Non è sinonimo di ogni perdita il primo giorno. Sensibilità dei parametri, numero di tentativi e nuove osservazioni aiutano a valutarla.
Segnali d’allarme della sovraottimizzazione:[5]
- La strategia ha molti parametri liberi rispetto al numero di operazioni e alla storia disponibile.
- Una piccola modifica, RSI 14 → RSI 15, cambia drasticamente i risultati: la cosiddetta fragilità.
- Un backtest su un periodo dà risultati eccellenti, su un altro una perdita.
- Un PF o Sharpe alto richiede valutare incertezza, numero di varianti esaminate e dipendenza fra esiti. Né un campione sotto 100 né sopra 500 operazioni determina da solo l’esistenza di un vantaggio. Controllare anche durata, grandi perdite rare e risultati su dati non usati per scegliere la regola.
Un test fuori campione è significativo solo se il campione non ha partecipato alla selezione della regola. Nel walk-forward, all’adattamento su una finestra precedente segue la valutazione su una successiva; soglie, aggiornamenti e aggregazione dei risultati sono registrati prima. Richiedere un risultato positivo in ogni finestra non è una regola statistica universale.
Esplorazione opportunistica dei dati
Con 50 test indipendenti di ipotesi nulle vere al livello del 5%, la probabilità di almeno un rifiuto falso è 1 − 0,95^50 = 92,3055%, e il numero atteso è 2,5. È un rischio alto, non certezza. Varianti sugli stessi dati sono solitamente dipendenti: il calcolo d’indipendenza non è la loro probabilità misurata.
Registrare la famiglia dei tentativi prima di scegliere il vincitore. Con 50 test e livello familiare del 5%, Bonferroni dà soglia 0,05/50 = 0,001 per ogni p-value valido. Controlla il rischio di almeno un rifiuto falso senza richiedere indipendenza. FDR risponde a un’altra domanda; l’esempio distingue i due. Nessuna correzione dei p-value stabilisce la redditività di una strategia.
Bonferroni, FDR e limite dell’inferenza
Modello di cinque test validi in una famiglia definita prima: p-value ordinati 0,0004; 0,008; 0,019; 0,021; 0,070. Bonferroni con α = 0,05 dà 0,01 e rifiuta i primi due. Benjamini–Hochberg con q = 0,05 confronta con i × q / 5: 0,01; 0,02; 0,03; 0,04; 0,05. Il massimo indice soddisfacente è 4: rifiuta i primi quattro.
FWER controlla la probabilità di almeno un rifiuto falso; FDR la proporzione attesa di falsi fra tutti i rifiuti, posta a zero quando non ce ne sono. BH classico richiede ipotesi appropriate sulla dipendenza, come indipendenza o dipendenza positiva specificata; non lo applichiamo a varianti FX arbitrariamente correlate senza verifica. q = 5% non significa che ogni strategia scelta abbia probabilità del 95% di funzionare. L’articolo degli autori (1995) e la documentazione del metodo descrivono l’ambito delle procedure. Un test valido richiede domanda, dati, distribuzione di riferimento e statistica definiti prima; qui i p-value sono input ipotetici.
La separazione del campione include il tempo dell’etichetta
In un piano ipotetico fissato prima dell’analisi, l’addestramento copre 2018–2022, la validazione 2023 e il test mai visto 2024–2025. Se un’etichetta ha orizzonte fino a cinque sessioni, un’osservazione di fine dicembre 2022 con esito determinato nel gennaio 2023 non appartiene all’addestramento concluso il 31 dicembre. Rimuovere etichette che attraversano il confine o spostare il taglio secondo i loro tempi finali reali. Separare soltanto date d’ingresso non basta.
I prezzi storici precedenti al confine possono riscaldare un indicatore all’inizio del test se erano già noti. Uno scaler, le soglie o la selezione di strumenti non devono essere adattati ai dati futuri. La validazione serve a scegliere e il test a valutare una volta; cambiare la regola in base al test lo consuma. Walk-forward richiede gli stessi principi in ogni finestra e un aggiornamento registrato prima. Anche la calibrazione delle probabilità richiede un segmento separato: otto eventi fra dieci previsioni di 0,8 in un piccolo gruppo non dimostrano calibrazione universale o redditività.
Precisione, richiamo e costi delle omissioni
Un modello con 100 casi etichettati indipendentemente: il riferimento è positivo in 20 e negativo in 80. Lo screener emette 15 avvisi: 12 corrispondono al riferimento e 3 sono falsi; non rileva 8 positivi. Precisione = 12/15 = 80%, richiamo = 12/20 = 60%, specificità = 77/80 = 96,25%. Da queste tre misure non deriva un risultato finanziario. Le etichette devono essere indipendenti dal filtro; non si marca positivo ogni successivo profitto scelto manualmente.
Se il riferimento usa un esito futuro, l’etichetta è disponibile solo alla fine dell’orizzonte. Non può influenzare un segnale precedente o entrare prematuramente nell’addestramento. Scaricare i modelli ricalcolati; tutti i numeri di questo blocco sono ipotetici.
Distorsione da sopravvivenza negli EA pronti
Guardare solo sistemi ancora venduti e pubblicati omette tentativi ritirati. Il confronto richiede una popolazione nota e un registro anche delle versioni fallite. Non conosciamo il numero di «migliaia» di EA ritirati o i risultati esemplificativi degli influencer: non usiamo tali numeri come prove.
L’illusione del controllo
L’automazione richiede monitorare stato del processo, attualità dei dati ed errori non gestiti. L’operatività notturna non determina da sola slippage o numero di perdite. Gli avvisi devono segnalare anche dati mancanti o scansioni interrotte, non solo configurazioni soddisfatte.
La scatola nera
L’assenza di documentazione rende difficile capire se risultati mutati derivino da dati, regola o esecuzione. Un sistema può smettere di funzionare come previsto: servono condizione d’arresto e procedura di valutazione. «Finora ha funzionato» non basta.
Indicatori che ridisegnano il passato
Distinguere lettura variabile su candela aperta, conferma tardiva dello swing, correzione dati e riscrittura di un segnale precedente. Conservare istantanea del valore con tempo di valutazione e confrontarla con la storia successiva. Il nome ZigZag non determina ogni uso; il problema è usare un punto prima della conferma o nascondere modifiche.
Prop firm e automazione
Le regole prop sono contrattuali e variano per programma e fase. Non affermiamo che molte società vietino ogni automazione. Per esempio FTMO descrive il permesso di algoritmi ed EA soggetti ai vincoli del programma. Verificare regole attuali, natura del conto, compresi quelli simulati, limiti e pratiche vietate: accettare uno screener non significa accettare ogni metodo di esecuzione.
12. Cosa non automatizzare all’inizio
Prima di automatizzare l’esecuzione occorre descrivere anche attività oltre il segnale. L’elenco indica compiti che richiedono regola e test separati; non presumiamo che eseguire manualmente sia sempre più efficace.
- Gestione della posizione. Definisci dimensionamento, modifiche degli stop e chiusure parziali prima di automatizzarli. La pratica può far emergere decisioni poco chiare, ma l'esecuzione manuale non dimostra la superiorità di una regola.
- Calendario macro. Uno screener può considerare gli NFP se riceve un calendario corretto e una regola di blocco. Non può prevedere spread o contenuto di un annuncio non pubblicato. L’assenza di calendario è un limite esplicito, non una proprietà di ogni sistema automatico.
- Selezione dell’universo. Definire e versionare l’elenco prima dei test. Escludere coppie deboli dopo averne esaminato i risultati è un altro tentativo di selezione. Misurare le caratteristiche su dati specificati invece di attribuire proprietà fisse.
- Fine settimana e pause. Un filtro di spread può sospendere nuovi ordini, ma non limita la perdita da vuoto di una posizione esistente. Ridurre il nozionale riduce la sensibilità al prezzo; uno stop ordinario non garantisce il prezzo. Una copertura con opzioni richiede accordo e conto separati, non solo l’etichetta «copertura». Il rischio delle pause è trattato nell’articolo 4.4.
- Stato del conto. Verificare prodotto, modalità hedging/netting, margine della nuova istruzione e regole di chiusura per garanzie insufficienti. L’ordine di liquidazione dipende dal fornitore: non presumiamo universale chiudere la perdita maggiore. Margine e tutele sono discussi separatamente nell’articolo 2.6. Poter accettare un ordine in un momento non garantisce il mantenimento della posizione in seguito.
Automatizzare attività definite e ripetibili e conservarne la traccia. Scansione, avvisi, decisioni ed esecuzione sono fasi successive con errori e limiti distinti. Ripetere più rapidamente una regola non ne migliora la qualità: permette solo implementazione e verifica coerenti.
13. Strumenti a confronto
| Strumento | Linguaggio | Screening | Avvisi | Backtesting | Esecuzione automatica | Costo indicativo |
|---|---|---|---|---|---|---|
| TradingView: piano base | Pine Script | Filtri della piattaforma | Secondo il piano attuale | Emulatore di strategie | Lo script non invia da solo ordini nativi al broker | Verificare piano e dati |
| TradingView: piani a pagamento | Pine Script | Ambito dipendente dallo strumento | Secondo il piano attuale | Emulatore di strategie | Un webhook richiede uno strato esecutivo separato; l’integrazione broker non trasforma automaticamente uno script in EA | Prezzi attuali |
| MT4 | MQL4 | Indicatori personalizzati | Sì: finestra, notifica push, email | Strategy Tester (1 simbolo) | Expert Advisor | 0 USD, dal broker |
| MT5 | MQL5 | Indicatori personalizzati | Sì: finestra, notifica push, email | Strategy Tester multivaluta | Expert Advisor | 0 USD, dal broker |
| cTrader | C# / strumenti della piattaforma | Secondo la configurazione | Secondo la configurazione | Test dei cBot | cBot: logica esecutiva separata | Condizioni di piattaforma e fornitore |
| Ambiente personalizzato | Per esempio Python | Regola definita dall’autore | Infrastruttura propria | Modello dell’autore / librerie | Strato API separato | Dati, manutenzione e infrastruttura |
La tabella descrive le funzioni, non classifica la qualità. Licenze, accesso dati, VPS e costi di transazione sono voci separate. Verificare limiti e prezzi nella documentazione aggiornata.
- Intervallo principale: D1, su cui effettuare screening e analisi. Il contesto viene da W1.
- Lista di osservazione: scegli un universo versionato che sai esaminare e monitorare. Il numero di simboli che raggiunge l'elenco attivo è un risultato della regola, non un obiettivo da forzare.
- Due filtri. Per esempio EMA 200 e RSI 14 come trasformazioni del prezzo definite esplicitamente. Le soglie sono convenzioni da valutare, non rimozione dimostrata della maggior parte del rumore.
- 1 tipo di avviso iniziale: avvisi di prezzo sulle zone di supporto/resistenza del settimanale. Quelli di indicatore si aggiungono dopo.
- Inizia da un processo verificabile. Uno scanner e una regola di avviso possono essere un primo esercizio gestibile. Aggiungi l'esecuzione dopo aver specificato le sue regole sullo stato del conto e sulla gestione degli errori.
- Pratica del processo e forward test. Due o tre mesi in demo possono essere un periodo ipotizzato per esercitare funzionamento, registrazione e rispetto delle regole, non un minimo sufficiente di validazione. Numero e periodo delle osservazioni dipendono da frequenza degli eventi, dipendenza degli esiti e variabilità. La demo non riproduce automaticamente l’esecuzione reale e il passare di un tempo scelto non garantisce rappresentatività o redditività.
Dimensione della posizione: fuori dall’ambito dell’articolo
Scegliere una configurazione senza dimensione adeguata è metà del lavoro, ma formule, trattamento dei costi nel budget di rischio ed esempi numerici appartengono alla sezione 9. Il calcolatore della dimensione della posizione interattivo e il simulatore Monte Carlo sono nella sezione Strumenti.
Una regola fissa su dati reali: chiusura oltre il range o sola ombra?
Una candela può superare un massimo precedente e terminare sopra di esso, oppure tornare dentro il range. Questa distinzione descrive variazioni successive del prezzo diverse in questi record? Abbiamo fissato un confronto prima di calcolarne il riepilogo. È una descrizione retrospettiva della storia di un fornitore. Alcuni periodi erano già comparsi nei nostri esempi didattici; né la marca temporale del piano né la divisione per date crea un campione di verifica mai visto.
L'input è costituito da 6.000 record Bid H1 invariati per ciascuna coppia EUR/USD, GBP/USD e USD/JPY di ICMarketsSC-Demo / MT5. Nelle date delle candidate il registro contiene 17.995 record e 3.140 candidate su un solo lato. La pausa fra selezioni ne sceglie 1.086; 1.039 hanno un esito continuo di sei record e 47 attraversano un'interruzione temporale futura. Queste 47 restano conteggiate anziché essere scartate tacitamente.
| Direzione · categoria | Disponibili / selezionati | Media | Mediana | Quota > 0 |
|---|---|---|---|---|
| UP · chiusura | 271 / 280 | -0,0689 | -0,1433 | 0,4613 |
| UP · ombra | 258 / 273 | 0,2077 | 0,0577 | 0,5078 |
| DOWN · chiusura | 226 / 236 | 0,0934 | -0,1256 | 0,4823 |
| DOWN · ombra | 284 / 297 | -0,0152 | -0,2569 | 0,4472 |
Una variazione con segno positiva segue la direzione del superamento; una negativa si muove contro di essa. Media, mediana e quota sopra zero rispondono a domande diverse. Per DOWN · chiusura, la media è positiva mentre la mediana è negativa e meno di metà delle osservazioni è positiva. Nessuna di queste cifre è una percentuale di operazioni vincenti al netto dei costi.
Regola esatta e limiti del confronto
Per la candidata t fissa l'High più alto e il Low più basso dei 20 record H1 completi precedenti. Richiedi continuità oraria da t−21 a t; il record più vecchio fornisce il Close precedente per il True Range. Escludi prima un superamento di entrambi i confini. Altrimenti classifica come CLOSE un Close strettamente esterno, oppure come WICK un superamento High/Low con Close interno, inclusa l'uguaglianza. La sola uguaglianza dell'estremo non è un superamento.
Prendi la prima candidata per simbolo, poi sopprimi i sei indici successivi indipendentemente dalla disponibilità del suo esito successivo. Solo dopo la selezione verifica che i sei record successivi abbiano passi orari esatti. Misura direzione × (C a t+6 − C a t), in pip e diviso per la media aritmetica TR dei 20 record precedenti. La candidata non contribuisce né al range di riferimento né a quel denominatore.
La figura aggrega gli eventi, quindi i simboli con più eventi disponibili pesano di più. Le finestre degli esiti non si sovrappongono all'interno di un simbolo, ma 808 coppie di eventi adiacenti condividono storia precedente e le finestre disponibili fra coppie valutarie si sovrappongono nel tempo 950 volte. I gruppi di luglio usano la data della candidata; un esito attraversa quel confine. Queste dipendenze e le interruzioni strutturate nel tempo impediscono un'interpretazione di indipendenza o causalità. Qui non ci sono eseguiti, ipotesi di spread, rendimenti del conto o affermazioni di vantaggio statistico.
Tutte le 48 righe di riepilogo (CSV) · Registro completo delle classificazioni (CSV) · Eventi selezionati ed esiti mancanti (CSV) · Metodo e istruzioni di riproduzione · Fonti, piano fissato, codice e risultati (ZIP).
Esercizio finale: separa la decisione dalle sei candele successive
È il primo UP_CLOSE EUR/USD selezionato dal 1º settembre 2026 con esito disponibile: la barra H1 aperta il 3 settembre alle 19:00. Le candidate UP_CLOSE precedenti del 2 settembre alle 16:00 e del 3 settembre alle 15:00 erano state scartate dalla pausa fra selezioni esistente. Il caso è stato scelto in base a cronologia e disponibilità, non al segno o all'ampiezza del movimento successivo. Chiama P la candela H1 che si qualifica.
Alla decisione, il range dei 20 record precedenti è 1,15826–1,16302 e il loro True Range medio è 9,325 pip. P chiude a 1,16368, sopra il bordo superiore fissato. L'ultima barra H4 ammissibile apre alle 16:00 e termina alle 20:00, insieme alla chiusura H1 di P. Offre una vista più ampia della stessa storia Bid, non un voto di conferma indipendente. Entrambi i record definitivi richiedono comunque la ricezione dopo la fine dei rispettivi intervalli.
Prima di rivelare un'altra barra: registra che cosa si qualifica, il primo momento possibile di valutazione e ciò che resta ignoto. Per questo esercizio smetti di monitorare al primo Close H1 successivo pari o inferiore a 1,16302. Mantieni fisso quel confine. È una condizione analitica di arresto; non specifica ordine, esecuzione di stop loss o dimensione della posizione.
Schermata 0: fino alla barra H1 del 2026-09-03 alle 19:00
P si qualifica come UP_CLOSE solo dopo l'arrivo del record definitivo, non prima delle 20:00. Il percorso successivo resta nascosto. La sola qualificazione non fornisce un Ask eseguibile o un costo.
EUR/USD Bid H1/H4. Orari MT5 originali; è visibile solo questo tratto di dati già disponibili. Il contesto H4 resta fisso. Rivela il record 1 di 6
Schermata 1: fino alla barra H1 del 2026-09-03 alle 20:00
Il Close rivelato è 1,16328, sopra 1,16302. La condizione di arresto del monitoraggio non si è verificata; ciò non prevede il Close successivo.
EUR/USD Bid H1/H4. Orari MT5 originali; è visibile solo questo tratto di dati già disponibili. Il contesto H4 resta fisso. Rivela il record 2 di 6
Schermata 2: fino alla barra H1 del 2026-09-03 alle 21:00
Il Close rivelato è 1,16346, sopra 1,16302. La condizione di arresto del monitoraggio non si è verificata; ciò non prevede il Close successivo.
EUR/USD Bid H1/H4. Orari MT5 originali; è visibile solo questo tratto di dati già disponibili. Il contesto H4 resta fisso. Rivela il record 3 di 6
Schermata 3: fino alla barra H1 del 2026-09-03 alle 22:00
Il Close 1,16286 è pari o inferiore a 1,16302. Il monitoraggio termina dopo la chiusura di questa barra delle 22:00, non prima delle 23:00. La precedente classificazione UP_CLOSE resta corretta.
EUR/USD Bid H1/H4. Orari MT5 originali; è visibile solo questo tratto di dati già disponibili. Il contesto H4 resta fisso. Rivela il record 4 di 6
Schermata 4: fino alla barra H1 del 2026-09-03 alle 23:00
Il Close è ora 1,16257. Il monitoraggio era già terminato sulla barra delle 22:00; il nuovo record non cambia il momento in cui quella condizione è diventata nota.
EUR/USD Bid H1/H4. Orari MT5 originali; è visibile solo questo tratto di dati già disponibili. Il contesto H4 resta fisso. Rivela il record 5 di 6
Schermata 5: fino alla barra H1 del 2026-09-04 alle 00:00
Il Close è ora 1,16229. Il monitoraggio era già terminato sulla barra delle 22:00; il nuovo record non cambia il momento in cui quella condizione è diventata nota.
EUR/USD Bid H1/H4. Orari MT5 originali; è visibile solo questo tratto di dati già disponibili. Il contesto H4 resta fisso. Rivela il record 6 di 6
Schermata 6: fino alla barra H1 del 2026-09-04 alle 01:00
Il sesto Close è 1,16232: −13,6 pip da P, ossia −544/373 (circa −1,4584) unità della TR media20 precedente. È una variazione del prezzo Bid osservata, non la perdita ricostruita di un'operazione.
EUR/USD Bid H1/H4. Orari MT5 originali; è visibile solo questo tratto di dati già disponibili. Il contesto H4 resta fisso.
Ogni schermata adatta la scala ai soli prezzi visibili; nessun estremo futuro determina gli assi iniziali. H4 resta fissata alla decisione. Conserviamo le etichette originali MT5 di apertura delle barre; lo scarto orario del broker non è verificato e i tempi effettivi di ricezione non sono stati misurati. Per modellizzare una risposta eseguibile servirebbe comunque una quotazione successiva.
Dati dell'esercizio finale e note temporali · Tutti i 28 record H1, incluso il percorso rivelato (CSV). Il registro completo e lo ZIP precedenti conservano esclusioni e traccia dei calcoli.
Domande frequenti: automazione e screening nell’analisi tecnica
Devo saper programmare per usare lo screening?
No. Screener TradingView integrati e pannelli MT4/MT5 seguono il principio «scegli i filtri, imposta le soglie, ottieni un elenco». Pine Script e MQL aggiungono capacità, come condizioni proprie e avvisi composti, ma lo screening base non richiede scrivere codice.
Conviene acquistare un Expert Advisor (EA) pronto?
La valutazione richiede regole documentate, storia completa di tentativi e modifiche, modello dei costi e nuove osservazioni. Nemmeno uno storico verificato garantisce rappresentatività o risultati futuri. Un backtest attraente o una recensione non sostituiscono questi controlli.
Quanti avvisi dovrei impostare insieme?
Non esiste un numero universale. Registrare capacità di revisione e scadenza delle condizioni, riducendo ripetizioni con la deduplicazione. Si può scansionare tutto l’universo senza notificare dopo ogni candela ancora nello stesso stato.
Quanto è affidabile un backtest Forex?
Dipende da dati, regole e modello esecutivo. OHLC non stabilisce l’ordine SL/TP nella stessa candela. La modalità tick reali può riempire vuoti con dati generati. Un backtest non prevede risultati; un forward test verifica nuove osservazioni nei limiti di durata e diversità del campione.
TradingView o MT4/MT5 per lo screening?
Confrontare fonte, confini delle candele, filtri, funzionamento degli avvisi e ambito del tester. Gli avvisi TradingView girano sul server; un indicatore MT locale richiede piattaforma o VPS attivi. Uno script di strategia TradingView da solo non è un sistema nativo di trading con il broker.
Python è migliore di Pine Script per il backtesting?
Un ambiente proprio dà controllo su dati e modello, ma trasferisce all’autore la responsabilità della correttezza. Un tester di piattaforma ha convenzioni e limiti definiti. La scelta non elimina anticipazione dei dati, errori di unità o costi omessi.
Devo eseguire lo screener ogni giorno?
Se la regola valuta ogni chiusura D1, la scansione deve coprirle tutte. Rivedere solo lunedì e giovedì perde nuove condizioni degli altri giorni, salvo registrazione automatica continua. Separare frequenza della revisione manuale e della scansione completa.
Fonti
Fonti primarie
- Robert Pardo, The Evaluation and Optimization of Trading Strategies, 2ª ed., Wiley, 2008: metodologia dei backtest, analisi walk-forward e riconoscimento della sovraottimizzazione; opera fondamentale per validare strategie automatizzate.
- Ernest P. Chan, Quantitative Trading: How to Build Your Own Algorithmic Trading Business, 2ª ed., Wiley, 2021: guida pratica alla costruzione di strategie quantitative, dallo screening all’esecuzione algoritmica.
- Perry J. Kaufman, Trading Systems and Methods, 6ª ed., Wiley, 2020: rassegna enciclopedica dei sistemi, con filtri di tendenza, screening, test e ottimizzazione.
- Andreas F. Clenow, Following the Trend, Wiley, 2013: approccio sistematico al trend trading, screening degli strumenti, backtest di portafoglio, gestione delle posizioni e aspetti pratici dell’automazione.
Altre letture
- David Aronson, Evidence-Based Technical Analysis, Wiley, 2007: validazione statistica dell’AT, distorsione da data mining, test di significatività e confronti multipli —data snooping—; lettura essenziale per chi verifica strategie.
- Marcos Lopez de Prado, Advances in Financial Machine Learning, Wiley, 2018: altra lettura; capitoli non letti non sono citati come prove delle regole.
- Alexander Elder, The New Trading for a Living, Wiley, 2014: altra lettura; capitoli non letti non sono citati come prove delle regole.
- Kathy Lien, Day Trading and Swing Trading the Currency Market, 3ª ed., Wiley, 2016: altra lettura; capitoli non letti non sono citati come prove delle regole.
- Lukas Menkhoff, Mark P. Taylor, «The Obstinate Passion of Foreign Exchange Professionals: Technical Analysis», Journal of Economic Literature, vol. 45, n. 4, 2007: rassegna dell’uso dell’AT nel Forex e contesto sul ruolo dell’automazione fra professionisti valutari.
- Andrew W. Lo, Adaptive Markets: Financial Evolution at the Speed of Thought, Princeton University Press, 2017: ipotesi dei mercati adattivi, perché strategie prima efficaci possono smettere di funzionare e implicazioni per automazione e backtesting.
Fonti istituzionali e documentazione
- Banca nazionale svizzera (2015), «La Banca nazionale svizzera abolisce il cambio minimo e abbassa il tasso a −0,75%», comunicato, 15 gennaio 2015.
- FCA (2015), «Informazioni per i clienti di Alpari (UK) Limited» : ingresso di Alpari (UK) in amministrazione speciale.
- Comitato dei mercati della BRI (2017), «L’evento improvviso della sterlina del 7 ottobre 2016», gennaio 2017: analisi di scarsa liquidità, ordini, risposte algoritmiche e divergenze fra piattaforme.
- TradingView, Documentazione Pine Script : documentazione ufficiale su comportamento nella candela corrente e chiusa (barstate), avvisi e strategy().
- MetaQuotes, Riferimento MQL5 : documentazione ufficiale MQL5 su indicatori, Expert Advisor e Strategy Tester.
- ESMA (2018), «ESMA concorda il divieto delle opzioni binarie e restrizioni sui CFD per proteggere gli investitori retail», 27 marzo 2018: intervento sui prodotti con limiti di leva, protezione dal saldo negativo e avvertenze; le analisi di vigilanza indicavano perdite nel 74–89% dei conti CFD retail.