Trading Sistematico

Come Calcolare il Bounce Number per Strategie Grid e Martingale su MetaTrader 4
MetaTrader4
Come Calcolare il Bounce Number per Strategie Grid e Martingale su MetaTrader 4

La dimensione dei lotti e il numero di operazioni per strategie come Grid e Martingale sono fondamentali per il successo nel trading. Ci poniamo sempre domande su cosa sia successo nella storia di un simbolo durante le zone di range, e Quante volte il prezzo ha rimbalzato tra due livelli di una zona di range?! Questo è ciò che definisco come Bounce Number. Può essere calcolato attraverso un'analisi statistica della storia di qualsiasi simbolo sul mercato. Per chiarire meglio, diamo un'occhiata all'immagine n. 1. Immagine n. 1: Definizione di Bounce Number, obiettivi e applicazioni L'immagine illustra come il movimento del prezzo genera statistiche per lo strumento del Bounce Number. Per evitare ritardi, ho generato questo strumento come un Expert Advisor utilizzando la funzione Sleep. Questa funzione in qualche modo impedisce il crash del grafico a causa dell'alto numero di candele impostate negli input dello strumento. L'altra immagine (Immagine n. 2) mostra una struttura grafica molto semplice dello strumento e il significato dei suoi oggetti. Immagine n. 2: Statistiche del Bounce Number. Utilizzo dello strumento: Dall'immagine n. 2, considerando di impostare l'Altezza Mezza del Canale di Rimbalzo a 600 punti: ci sono 6 numeri di rimbalzo diversi, da 1 a 6 per questo simbolo. Il numero di rimbalzo 2 significa che il prezzo parte dal centro del canale di rimbalzo (altezza 2 * 600 = 1200 punti) e si muove su e giù colpendo una volta la linea rossa e una volta la linea blu prima di raggiungere il TP=1200 punti. Per il rimbalzo n. 5, il prezzo parte dal punto centrale del canale e colpisce 2 volte la linea rossa e 3 volte la linea blu, oppure 3 volte la linea rossa e 2 volte la linea blu, per poi raggiungere il TP=1200 punti. Lo stesso vale per gli altri numeri di rimbalzo. Non abbiamo il numero di rimbalzo 7, il che significa che non ci sono 7 rimbalzi tra le linee rossa e blu (con una distanza di 1200 punti) nella storia selezionata negli input dello strumento. Tieni presente che se selezioni più dati storici (Numero massimo di candele da analizzare), le possibilità di trovare 7 rimbalzi aumenteranno. Ma come vediamo, anche la possibilità di 6 rimbalzi è 22 su 9020 elementi totali di prezzo che hanno colpito i TP. Cosa c'è negli input dello strumento: Numero massimo di candele da analizzare: Come per altri strumenti di scansione, fai attenzione al numero che imposti in questa cella. Non aumentarlo drasticamente per evitare crash della memoria. Time-Frame: Il Time-Frame delle candele che vogliamo usare per trovare i rimbalzi dai limiti del canale e il contatto con le linee TP. Usa un time-frame più basso per canali sottili. Se non sai cosa impostare, è meglio usare il Time-Frame M1. Altezza Mezza del Canale di Rimbalzo: Questa è la distanza della linea verde dalle linee rossa e blu, espressa in punti. Colore di Sfondo del Grafico Colore del Grafico a Barre 1/Colore del Grafico a Barre 2: per rendere le barre statistiche un po' più accattivanti. Colore delle Celle di Conto Colore delle Celle dei Numeri di Rimbalzo Colore della Barra di Caricamento: Durante il calcolo, questa barra di caricamento aiuterà l'utente a sapere se lo strumento sta funzionando o meno e la velocità dei calcoli. - È stato aggiunto un pulsante per avviare e inserire il numero di candele storiche dallo schermo.

2024.01.12
Allerta Sonora per Connessione e Disconnessione su MetaTrader 5
MetaTrader5
Allerta Sonora per Connessione e Disconnessione su MetaTrader 5

Ciao trader! Oggi voglio parlarvi di un'utilità molto utile per chi utilizza MetaTrader 5: l'allerta sonora per le connessioni e disconnessioni. È un modo semplice per rimanere informati su ciò che accade nel terminale senza doverlo controllare continuamente. Per iniziare, dovete aggiungere i file audio .wav nella cartella MQL5\Files\Sounds. Potete utilizzare suoni personalizzati per le notifiche, rendendo l'esperienza di trading ancora più piacevole. Una volta che avete i suoni pronti, è sufficiente copiare il codice fornito qui sotto e compilarlo come un Utility EA. Nel file allegato troverete delle righe commentate che spiegano come utilizzare la direttiva #resource, la quale potrebbe rendere impossibile il caricamento dei file audio. //+------------------------------------------------------------------+ //|                               Connect_Disconnect_Sound_Alert.mq5 | //|                                Copyright 2024, Rajesh Kumar Nait | //|                  https://www.mql5.com/en/users/rajeshnait/seller | //+------------------------------------------------------------------+ #property copyright "Copyright 2024, Rajesh Kumar Nait" #property link      "https://www.mql5.com/en/users/rajeshnait/seller" #property version   "1.00" #include <Trade/TerminalInfo.mqh> bool     first             = true; bool     Now_IsConnected   = false; bool     Pre_IsConnected   = true; datetime Connect_Start = 0, Connect_Stop = 0; CTerminalInfo terminalInfo; //--- File audio #resource "\Files\Sounds\CONNECTED.wav" #resource "\Files\Sounds\DISCONNECTED.wav" //+------------------------------------------------------------------+ //| Funzione di inizializzazione dell'Expert                                   | //+------------------------------------------------------------------+ int OnInit()   { //---       ResetLastError();       while ( !IsStopped() ) {          Pre_IsConnected = Now_IsConnected;          Now_IsConnected = terminalInfo.IsConnected();          if ( first ) {             Pre_IsConnected = !Now_IsConnected;          }          if ( Now_IsConnected != Pre_IsConnected ) {             if ( Now_IsConnected ) {                Connect_Start = TimeLocal();                if ( !first ) {                   if(!PlaySound("::Files\Sounds\DISCONNECTED.wav"))                      Print("Errore: ",GetLastError());                }                if ( IsStopped() ) {                   break;                }                if(!PlaySound("::Files\Sounds\CONNECTED.wav"))                   Print("Errore: ",GetLastError());             } else {                Connect_Stop = TimeLocal();                if ( !first ) {                   if(!PlaySound("::Files\Sounds\CONNECTED.wav"))                      Print("Errore: ",GetLastError());                }                if ( IsStopped() ) {                   break;                }                if(!PlaySound("::Files\Sounds\DISCONNECTED.wav"))                   Print("Errore: ",GetLastError());             }          }          first = false;          Sleep(1000);       } //---    return(INIT_SUCCEEDED);   } //+------------------------------------------------------------------+

2024.01.08
Strumenti Avanzati di MQL5 per Trader: Sviluppa il Tuo Trading con MetaTrader 5
MetaTrader5
Strumenti Avanzati di MQL5 per Trader: Sviluppa il Tuo Trading con MetaTrader 5

Parte 7. Strumenti Avanzati di MQL5 "Parte 7. Strumenti Avanzati di MQL5" del libro "Programmazione MQL5 per Trader" esplora le capacità avanzate dell'API MQL5, fondamentali per sviluppare programmi per MetaTrader 5. Tra queste troviamo simboli finanziari personalizzati, eventi del calendario economico integrati e tecnologie generali come networking, database e crittografia. Questa sezione si concentra sulle librerie, un tipo speciale di programma che fornisce API già pronte per connettersi ad altri programmi MQL. Viene anche trattata la possibilità di sviluppare pacchetti software e di combinare programmi logicamente interconnessi in progetti. Infine, parleremo delle integrazioni con altri ambienti software, inclusi Python. Iniziamo studiando le risorse, che sono file di qualsiasi tipo che possono essere incorporati nel codice del programma. Le risorse possono contenere: Elementi multimediali Impostazioni "hard" provenienti da programmi esterni Altri programmi MQL5 in forma compilata L'ambiente di sviluppo MQL5 consente di includere array di dati applicativi, immagini, suoni e font nel file sorgente, rendendo il programma un prodotto autonomo e conveniente per l'utente finale. Un'attenzione particolare sarà dedicata alle risorse grafiche con immagini raster in formato BMP: imparerai a creare, modificare e visualizzare queste immagini dinamicamente sul grafico. Concluderemo questa parte finale del libro studiando l'integrazione di OpenCL in MQL5. OpenCL è uno standard aperto per la programmazione parallela in sistemi multiprocessore, inclusi i processori grafici (GPU) e le unità di elaborazione centrale (CPU). Permette l'accelerazione di compiti computazionalmente intensivi, a patto che gli algoritmi possano essere parallelizzati. Questi possono includere l'addestramento di reti neurali, la trasformata di Fourier e la risoluzione di sistemi di equazioni. L'uso di OpenCL nei programmi MQL richiede la presenza di driver speciali del produttore e supporto per OpenCL versione 1.1 e superiori. La presenza di una scheda grafica non è obbligatoria, poiché anche il processore centrale può essere utilizzato per il calcolo parallelo.

2023.12.16
Automazione del Trading con MQL5: Guida Pratica per Trader
MetaTrader5
Automazione del Trading con MQL5: Guida Pratica per Trader

Parte 6. Automazione del Trading In "Parte 6. Automazione del Trading" del libro "Programmazione MQL5 per Trader", approfondiremo un componente fondamentale del linguaggio MQL5. Inizieremo con una descrizione delle entità principali, come le specifiche degli strumenti finanziari e le impostazioni del conto di trading. Questi sono requisiti indispensabili per la creazione di Expert Advisor (EA) che funzionano correttamente. Successivamente, ci concentreremo sulle funzioni integrate e sulle strutture dati, sugli eventi specifici dei robot e sugli aspetti chiave delle operazioni degli Expert Advisor nel tester strategico. Il Tester Strategico di MetaTrader 5 è uno strumento cruciale nello sviluppo di robot di trading, poiché consente di valutare le performance finanziarie e ottimizzare le strategie di trading. Il tester offre strumenti indispensabili per il debug in varie modalità, compresa la prova visiva utilizzando barre o tick, con tick modellati o reali. Permette anche la riproduzione visiva del flusso di quotazioni e test semplici senza finestra visiva. Abbiamo già visto come testare gli indicatori in modalità visiva, ma per questi ultimi è consentito solo un insieme limitato di impostazioni. Sviluppando Expert Advisor, avremo accesso all'intera gamma di funzionalità del tester. Esamineremo anche una rappresentazione diversa dei dati di mercato: la Profondità di Mercato e la sua interfaccia software. MetaTrader 5 offre la possibilità di analizzare e negoziare strumenti finanziari (simboli), che formano la base di tutti i sottosistemi del terminale. Gli utenti possono selezionare i simboli dall'elenco fornito dal broker e monitorarli nella Market Watch. Con l'API MQL5, è possibile visualizzare e analizzare le caratteristiche di tutti i simboli, aggiungendoli o rimuovendoli dalla Market Watch. Oltre ai simboli standard forniti dai broker, MetaTrader 5 supporta la creazione di simboli personalizzati, caricando le loro proprietà e la storia delle quotazioni da fonti di dati arbitrari o calcolandoli utilizzando formule e programmi MQL5.

2023.12.16
Programmazione MQL5 per Trader: Creazione di Applicazioni per MetaTrader 5
MetaTrader5
Programmazione MQL5 per Trader: Creazione di Applicazioni per MetaTrader 5

Parte 5. Creazione di programmi applicativi in MQL5In "Parte 5. Creazione di programmi applicativi" del libro Programmazione MQL5 per Trader, ci immergeremo nel mondo delle API legate al trading algoritmico, esplorando l'analisi e l'elaborazione dei dati finanziari, la visualizzazione dei grafici, l'automazione e le interazioni con l'utente.Inizieremo con i principi generali per la creazione di programmi MQL e analizzeremo i tipi di eventi, le funzionalità e i modelli disponibili nel terminale. Successivamente, esploreremo l'accesso alle serie temporali, le operazioni con i grafici e gli oggetti grafici, oltre ai principi di creazione e applicazione di ciascun tipo di programma MQL separatamente.Il terminale MetaTrader 5 supporta cinque tipi di programmi: indicatori tecnici, Sistemi Trading (EAs) per il trading automatico o semi-automatico, script per eseguire compiti una tantum, servizi per operazioni in background e librerie per moduli funzionali individuali.Ci concentreremo sul lavoro con indicatori e grafici e apprenderemo tecniche che possono essere applicate anche ai Sistemi Trading. Lo sviluppo dei Sistemi Trading sarà trattato nella prossima parte del libro, dove esploreremo l'esecuzione automatica degli ordini, la formalizzazione delle strategie di trading e i loro test e ottimizzazioni utilizzando dati storici.Impareremo a utilizzare gli indicatori standard già integrati e come creare le nostre applicazioni personalizzate da zero o basate su altri indicatori. Tutti i programmi compilati sono visualizzati nel Navigator di MetaTrader 5, ad eccezione delle librerie EX5, che sono utilizzate da altri programmi ma non hanno una rappresentazione separata nel Navigator.In definitiva, acquisiremo una comprensione più approfondita delle potenzialità del linguaggio MQL5 e della sua applicazione nel trading algoritmico. Questo ci permetterà di lavorare in modo efficace con i dati finanziari e di creare indicatori di trading e Sistemi Trading.

2023.12.16
Guida all'Utilizzo delle API MQL5 per il Trading Automatizzato
MetaTrader5
Guida all'Utilizzo delle API MQL5 per il Trading Automatizzato

Parte 4. API MQL5 Comuni Nelle sezioni precedenti del libro, abbiamo esplorato le basi del linguaggio di programmazione MQL5, analizzando la sua sintassi, le regole d'uso e i concetti chiave. Tuttavia, per scrivere programmi reali che utilizzano l'elaborazione dei dati e il trading automatizzato, è fondamentale sfruttare molte funzioni integrate per interagire con il terminale MetaTrader 5. In "Parte 4. API MQL5 Comuni", ci concentreremo sul padroneggiare le funzioni integrate (API MQL5) e ci addentreremo gradualmente in sottosistemi specializzati. Ogni programma MQL5 può utilizzare una miriade di tecnologie e funzionalità. Pertanto, ha senso iniziare con le funzioni più semplici e utili, che possono essere utilizzate nella maggior parte dei programmi. Tra i temi principali, studieremo le operazioni sugli array, l'elaborazione delle stringhe, le interazioni con i file, la conversione dei dati e le funzioni di interazione con l'utente. Esploreremo anche le funzioni matematiche e la gestione dell'ambiente di programmazione. Contrariamente ad altri linguaggi di programmazione, l'utilizzo delle funzioni integrate dell'API MQL5 non richiede direttive di preprocessore aggiuntive. I nomi di tutte le funzioni API MQL5 sono disponibili nel contesto globale (namespace) e possono sempre essere accessibili incondizionatamente. Discuteremo anche la possibilità di utilizzare nomi simili in diversi contesti di programma, come nomi di metodi di classe o namespace personalizzati. In questi casi, è necessario utilizzare l'operatore di risoluzione del contesto per richiamare la funzione globale, di cui abbiamo parlato nella sezione sui tipi annidati, i namespace e l'operatore di contesto '::'. La programmazione richiede spesso operazioni con vari tipi di dati. Nelle sezioni precedenti, abbiamo già visto i meccanismi per la conversione esplicita e implicita dei tipi di dati integrati. Tuttavia, queste conversioni potrebbero non essere sempre adatte per vari motivi. Per fornire una conversione dei dati più precisa tra diversi tipi, l'API MQL5 include un insieme di funzioni di conversione. Particolare attenzione è riservata alle funzioni per le conversioni tra stringhe e altri tipi, come numeri, date e orari, colori, strutture ed enumerazioni.

2023.12.15
Programmazione OOP in MQL5 per Trader: Scopri il Potere degli Oggetti
MetaTrader5
Programmazione OOP in MQL5 per Trader: Scopri il Potere degli Oggetti

Parte 3. Programmazione Orientata agli Oggetti in MQL5 "Parte 3. Programmazione Orientata agli Oggetti in MQL5" ti porta a scoprire il mondo della programmazione orientata agli oggetti (OOP) nel linguaggio MQL5. Sviluppare software comporta spesso la gestione di più entità, e la tecnologia OOP è fondamentale per migliorare la facilità di programmazione, la produttività e la qualità. La tecnologia OOP si basa sul concetto di oggetti, che sono variabili di un tipo personalizzato definite dal programmatore utilizzando gli strumenti MQL5. Creare tipi personalizzati consente di modellare oggetti e semplifica la scrittura e la manutenzione dei programmi. Questa sezione esamina diversi modi per definire nuovi tipi, tra cui classi, strutture e unioni. Questi tipi personalizzati possono combinare dati e algoritmi per descrivere lo stato e il comportamento degli oggetti applicativi. L'autore approfondisce il principio del "dividi e conquista", dimostrando che gli oggetti sono mini-programmi, ognuno responsabile della risoluzione di un compito piccolo ma logicamente completo. Puoi combinare oggetti in un unico sistema per creare prodotti e servizi di complessità arbitraria. Per aiutarti a esplorare le potenzialità di MQL5, la Parte "Programmazione Orientata agli Oggetti in MQL5" introduce i principi dell'OOP insieme a esempi pratici di implementazione. Il libro tratta anche di template, interfacce e namespace, rivelando la flessibilità e la potenza della OOP nello sviluppo di programmi in MQL5.

2023.12.15
Introduzione a MQL5: Ambienti di Sviluppo e Programmazione per Trader
MetaTrader5
Introduzione a MQL5: Ambienti di Sviluppo e Programmazione per Trader

Parte 1. Introduzione a MQL5 e all'ambiente di sviluppo In questa prima parte del libro, intitolata "Introduzione a MQL5 e all'ambiente di sviluppo", andremo a scoprire le basi del linguaggio MQL5 e del suo ambiente di sviluppo. Una delle novità principali che MQL5 porta rispetto a MQL4 (il linguaggio di MetaTrader 4) è il supporto per la programmazione orientata agli oggetti (OOP), rendendolo simile a C++. Anche se alcune funzioni OOP sono state già trasferite in MQL4, molti trader che non hanno esperienza di programmazione potrebbero trovare l'OOP piuttosto complesso. L'obiettivo di questo libro è rendere questo approccio comprensibile e accessibile a tutti. Si tratta di un valido supplemento al riferimento MQL5, coprendo tutti gli aspetti della programmazione in MQL5 e spiegando dettagliatamente ogni processo. Gli sviluppatori possono scegliere tra uno stile di programmazione orientato agli oggetti e uno procedurale, oppure combinarli. Coloro che hanno già esperienza di programmazione possono saltare le basi. I programmatori C++ troveranno più facile padroneggiare MQL5, ma è importante prestare attenzione alle differenze tra i due linguaggi per evitare errori. Con MQL5, puoi creare vari tipi di programmi, come indicatori per la visualizzazione grafica dei dati, Expert Advisor per l'automazione del trading, script per azioni una tantum e servizi per compiti in background. Una caratteristica distintiva di MetaTrader 5 è la gestione dell'intero sistema di trading direttamente dal terminale client, dove i programmi MQL5 vengono eseguiti e inviano comandi di trading al server. Le applicazioni MQL5 non vengono installate sul server. In questa prima parte, spiegheremo come modificare, compilare ed eseguire programmi, oltre a trattare vari tipi di dati, variabili, espressioni, array, debugging e output.

2023.12.15
Utilizzare un Modello ONNX per Riconoscere le Cifre Scritte a Mano in MetaTrader 5
MetaTrader5
Utilizzare un Modello ONNX per Riconoscere le Cifre Scritte a Mano in MetaTrader 5

Un Expert Advisor per il Riconoscimento delle Cifre Scritte a Mano Il database MNIST è composto da 60.000 immagini utilizzate per l'addestramento e 10.000 per il test. Queste immagini sono state create "ri-mixando" un set originale NIST di campioni in bianco e nero di 20x20 pixel, ottenuti dal Bureau del Censimento degli Stati Uniti e arricchiti con campioni di test prelevati da studenti delle scuole superiori americane. I campioni sono stati normalizzati a una dimensione di 28x28 pixel e sono stati applicati filtri per migliorare la qualità, introducendo livelli di scala di grigi. Il modello di riconoscimento delle cifre scritte a mano mnist.onnx è stato scaricato da Github dal Model Zoo (opset 8). Chi è interessato può scaricare e provare altri modelli, escludendo quelli con opset 1, che non è più supportato dall'ultima runtime di ONNX. Sorprendentemente, il vettore di output non è stato elaborato con la funzione di attivazione Softmax, come è comune nei modelli di classificazione. Ma non preoccupatevi, possiamo implementarlo facilmente noi stessi. int PredictNumber(void)   {    static matrixf image(28,28);    static vectorf result(10);    PrepareMatrix(image);    if(!OnnxRun(ExtModel,ONNX_DEFAULT,image,result))      {       Print("OnnxRun errore ",GetLastError());       return(-1);      }    result.Activation(result,AF_SOFTMAX);    int predict=int(result.ArgMax());    if(result[predict]<0.8)       Print(result);       Print("valore ",predict," previsto con probabilità ",result[predict]);    return(predict);   } Disegna le cifre in una griglia speciale utilizzando il mouse, tenendo premuto il pulsante sinistro. Per riconoscere la cifra disegnata, premi il pulsante CLASSIFICA. Se la probabilità ottenuta per la cifra riconosciuta è inferiore a 0.8, il vettore risultante con le probabilità per ciascuna classe viene stampato nel log. Ad esempio, prova a classificare un campo di input vuoto non compilato. [0.095331445,0.10048489,0.10673151,0.10274081,0.087865397,0.11471312,0.094342403,0.094900772,0.10847695,0.09441267] valore 5 previsto con probabilità 0.11471312493085861 Per qualche motivo, l'accuratezza del riconoscimento è notevolmente inferiore per il numero nove (9). Le cifre inclinate a sinistra vengono riconosciute con maggiore precisione.

2023.11.23
Gestire il Take Profit in Base al Profitto Corrente su MetaTrader 4
MetaTrader4
Gestire il Take Profit in Base al Profitto Corrente su MetaTrader 4

Introduzione Molti Expert Advisor (EA) tendono a chiudere gli ordini in take profit basandosi sulla distanza in pips dal prezzo di acquisto. Tuttavia, il codice utilizzato da EA Perceptron si basa principalmente sul profitto corrente. Questo approccio ti permette di gestire facilmente il take profit con più posizioni aperte, monitorando il profitto totale attuale in base al magic number, nel caso tu utilizzi più istanze di bot o diversi EA contemporaneamente. Seguimi e aggiungimi tra gli amici per rimanere aggiornato sulle novità! Utilizzare questo codice può anche avere un impatto positivo su alcuni problemi che possono verificarsi quando si usa un take profit basato sui pips. Ad esempio, un take profit basato sui pips potrebbe variare a seconda dello slippage del tuo broker, limitando i profitti. Con un codice basato sul profitto corrente, puoi evitare questo problema e avere maggiore controllo sulle tue operazioni. Se vuoi approfondire su come impostare un take profit basato sul profitto corrente, puoi utilizzare il codice di EA SwingBot come riferimento. … Totale Ordini Iniziamo con il codice che calcola il numero totale di ordini aperti con lo stesso magic number. Il magic number è un identificatore unico assegnato a un ordine dal trader o da un EA (Expert Advisor). Il codice inizializza una variabile total_orders a zero. Poi, utilizza un ciclo for per scorrere tutti gli ordini aperti e seleziona ogni ordine usando la funzione OrderSelect(). Se un ordine viene selezionato con successo, incrementa la variabile total_orders di uno. //-----------------    int total_orders = 0;    for(int i = 0; i < OrdersTotal(); i++)      {       if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))         {          if(OrderMagicNumber() == MagicNumber)          {          total_orders++;         }         }      } … Calcolo del Profitto Corrente Il codice inizializza due variabili: ProfittoMinimo e Profit. La variabile ProfittoMinimo è utilizzata per attivare il take profit a questo livello, il valore è espresso nella valuta del conto. La variabile Profit è utilizzata per accumulare il profitto corrente di tutte le posizioni aperte che hanno lo stesso magic number. La variabile StopLoss è utilizzata per lo stop loss. Il codice utilizza un ciclo for per iterare attraverso tutte le posizioni aperte usando la funzione OrdersTotal(). Per ogni posizione aperta, l'ordine corrispondente viene selezionato usando la funzione OrderSelect(). Se l'ordine viene selezionato con successo e ha lo stesso magic number, il profitto dell'ordine viene aggiunto alla variabile Profit.       double ProfittoMinimo = 3; // profitto obiettivo       double Profit = 0; // profitto corrente              for(int i=0; i<OrdersTotal(); i++)         {          if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))            {             if(OrderMagicNumber() == MagicNumber) // In caso di più EA, puoi rimuovere il filtro del MagicNumber per mantenere la funzione sul totale degli ordini               {                Profit += OrderProfit();               }         } Il profitto minimo può essere impostato come una variabile esterna e configurato nelle opzioni dell'EA: … Chiusura delle Posizioni se il Profitto è Raggiunto Il codice utilizza un ciclo for per iterare attraverso tutti gli ordini aperti usando la funzione OrdersTotal(). Il ciclo inizia dall'ultimo ordine e va fino al primo ordine. Per ogni ordine, il corrispondente trade viene selezionato usando la funzione OrderSelect(). Se il trade selezionato ha lo stesso simbolo del grafico corrente, è di tipo OP_BUY, e ha lo stesso magic number specificato nel codice, verifica se il Profit del trade è maggiore o uguale a ProfittoMinimo. Se sì, chiude il trade al prezzo di bid utilizzando la funzione OrderClose() e stampa un messaggio che indica che l'ordine di acquisto è stato chiuso. In modo simile, se il trade selezionato ha lo stesso simbolo del grafico corrente, è di tipo OP_SELL, e ha lo stesso magic number specificato nel codice, verifica se il Profit del trade è maggiore o uguale a ProfittoMinimo. Se sì, chiude il trade al prezzo di ask utilizzando la funzione OrderClose() e stampa un messaggio che indica che l'ordine di vendita è stato chiuso.       for(int e = OrdersTotal() - 1; e >= 0; e--)         {          if(OrderSelect(e, SELECT_BY_POS, MODE_TRADES))            {             if(OrderSymbol() == Symbol() && OrderType() == OP_BUY && OrderMagicNumber() == MagicNumber) // l’ordine viene modificato solo se il MagicNumber corrisponde a quello dell’ordine in corso.               {                if(Profit >= ProfittoMinimo)                  {                   OrderClose(OrderTicket(), OrderLots(), ND(OrderClosePrice()), 3); // Prezzo Bid                   Print("Ordine di acquisto chiuso", Profit, " - Stoploss minimo: ",MarketInfo(Symbol(), MODE_STOPLEVEL));                  }           }             if(OrderSymbol() == Symbol() && OrderType() == OP_SELL && OrderMagicNumber() == MagicNumber)               {                if(Profit >= ProfittoMinimo)                  {                   OrderClose(OrderTicket(), OrderLots(), ND(OrderClosePrice()), 3); // Prezzo Ask                   Print("Ordine di vendita chiuso", Profit, " - Stoploss minimo: ",MarketInfo(Symbol(), MODE_STOPLEVEL));                  }           }         }         } … Conclusione Questo codice potrebbe essere utile per tutte le strategie di chiusura delle posizioni basate sul take profit, ma potrebbe anche essere combinato con uno stop loss dinamico basato sull'aumento del profitto corrente. Il sistema è anche utile in caso di più Expert Advisors. Se escludi la condizione if sul MagicNumber, puoi impostare livelli di take profit generali per controllare simultaneamente tutte le posizioni aperte da tutti gli EA attivi.

2023.10.27
Strategia delle Doppie Bande di Bollinger su MT4: Guida per Trader
MetaTrader4
Strategia delle Doppie Bande di Bollinger su MT4: Guida per Trader

1. PanoramicaLa strategia delle Doppie Bande di Bollinger utilizza due bande di Bollinger per filtrare le entrate e le uscite nel mercato forex. L'obiettivo è entrare in operazioni di acquisto (Buy) quando il prezzo supera la banda superiore a 3σ e in operazioni di vendita (Sell) quando il prezzo scende sotto la banda inferiore a 3σ. Questa strategia considera anche il livello a 2σ delle bande di Bollinger per prendere decisioni di trading.Parametri predefiniti:2σ Bande di Bollinger (20,2): media mobile semplice (20) e numero di deviazioni standard (2).3σ Bande di Bollinger (20,3): media mobile semplice (20) e numero di deviazioni standard (3).Parametri di input2. Entrata LongApri un ordine di acquisto quando si verificano queste 2 condizioni:Condizione 1: Il prezzo Ask supera la banda superiore a 3σ (BB3UP).Condizione 2: Se la Condizione 1 è soddisfatta, verifica se il prezzo attuale è compreso tra la banda superiore a 2σ (BB2UP) e la banda inferiore a 2σ (BB2LO).3. Entrata SellApri un ordine di vendita quando si verificano queste 2 condizioni:Condizione 1: Il prezzo Bid scende sotto la banda inferiore a 3σ (BB3LO).Condizione 2: Se la Condizione 1 è soddisfatta, verifica se il prezzo attuale è compreso tra la banda inferiore a 2σ (BB2LO) e la banda superiore a 2σ (BB2UP).4. Uscita dagli ordiniUtilizzando ordini in formato OCO, sia lo stop-loss che il take-profit vengono impostati a N pips.※N: Imposta i parametri di input.

2023.10.02
Strategia Martin Gale Breakout: Un Expert Advisor per MetaTrader 4
MetaTrader4
Strategia Martin Gale Breakout: Un Expert Advisor per MetaTrader 4

La strategia "Martin Gale Breakout" è un Expert Advisor (EA) pensato per il trading nel mercato Forex. Questo EA combina un approccio di breakout con gli elementi del sistema di gestione del denaro Martin Gale, per ottimizzare le performance di trading. Parametri di Input: TakeProfPoints: Questo parametro ti permette di impostare il livello di Take Profit in punti per ogni operazione. BalancePercentageAvailable: Specifica la percentuale del tuo saldo disponibile che verrà utilizzata per il trading. TP_Percentage_of_Balance: Determina la percentuale del saldo del tuo conto da utilizzare come Take Profit per ciascuna operazione. SL_Percentage_of_Balance: Imposta la percentuale del tuo saldo da destinare come Stop Loss per le operazioni. Start_The_Recovery: Questo parametro svolge un ruolo cruciale nel processo di recupero, controllando quando e come attivare le misure di recupero. TP_Points_Multiplier: Un moltiplicatore per i punti di Take Profit, che consente strategie di profitto flessibili. MagicNumber: Un identificatore unico per questo EA, che garantisce che possa gestire le proprie operazioni in modo indipendente. Punti Salienti della Strategia: Trading di Breakout: L'EA è specializzato nell'identificare opportunità di breakout nel mercato, dove i movimenti dei prezzi superano livelli chiave. Dimensionamento Dinamico dei Lotti: Le dimensioni dei lotti vengono regolate dinamicamente in base al tuo saldo e alle tue preferenze di rischio, seguendo i principi di gestione del denaro Martin Gale. Recupero delle Perdite: L'EA include un potente meccanismo di recupero progettato per recuperare le perdite modificando in modo adattivo i parametri di trading quando necessario. La funzione principale utilizzata in questo EA è la CalcLotWithTP(), che ha 3 parametri di input: Takeprofit, Startprice, Endprice. Questa funzione calcola il volume necessario per l'operazione in modo da raggiungere l'obiettivo di profitto quando entra in una operazione al prezzo di partenza e esce al prezzo finale. Tutto nel codice è commentato per facilitare la comprensione. Ho realizzato un video su YouTube a riguardo:

2023.09.26
Strategia Breakout Martin Gale: EA per MetaTrader 5
MetaTrader5
Strategia Breakout Martin Gale: EA per MetaTrader 5

La strategia "Martin Gale Breakout" è un Expert Advisor (EA) progettato specificamente per il trading nel mercato Forex. Questo EA combina un approccio al breakout con elementi del sistema di gestione del denaro Martin Gale, ottimizzando così le performance di trading. Parametri di Input: TakeProfPoints: Questo parametro consente di impostare il livello di Take Profit in punti per ogni operazione. BalancePercentageAvailable: Specifica la percentuale del saldo del tuo conto che verrà utilizzata per il trading. TP_Percentage_of_Balance: Determina la percentuale del saldo del tuo conto da utilizzare come Take Profit per ogni operazione. SL_Percentage_of_Balance: Imposta la percentuale del tuo saldo da allocare come Stop Loss per le operazioni. Start_The_Recovery: Questo parametro gioca un ruolo cruciale nel processo di recupero, controllando quando e come attivare le misure di recupero. TP_Points_Multiplier: Un moltiplicatore per i punti di Take Profit, che consente strategie di presa di profitto flessibili. MagicNumber: Un identificatore unico per questo EA, assicurando che possa gestire le proprie operazioni in autonomia. Punti Salienti della Strategia: Trading di Breakout: L'EA si specializza nell'individuare opportunità di breakout nel mercato, quando i movimenti dei prezzi superano livelli chiave. Dimensionamento Dinamico dei Lotti: Le dimensioni dei lotti vengono regolate dinamicamente in base al saldo del tuo conto e alle tue preferenze di rischio, seguendo i principi della gestione del denaro Martin Gale. Recupero delle Perdite: L'EA include un potente meccanismo di recupero progettato per riprendersi dalle perdite modificando in modo adattivo i parametri di trading quando necessario. La funzione principale utilizzata in questo EA è CalcLotWithTP(), che ha 3 parametri di input: Takeprofit, Startprice, Endprice. Questa funzione calcola il volume necessario per l'operazione in modo da raggiungere l'obiettivo di profitto quando si entra in una operazione al Startprice e si esce al Endprice. Tutto nel codice è commentato per facilitarne la comprensione.

2023.09.26
Primo Precedente 3 4 5 6 7 8 9 10 11 12 13 Successivo Ultimo