Ordermagicnumber Mt4 Forex
MetaTrader 4 - Esempi MagicNumber: quotMagicquot identificativo dell'ordine 1. Preambolo In 3, la gestione delle posizioni aperte era piuttosto tempo di assunzione. I commercianti avevano a disposizione un set di strumenti piuttosto limitato a lavorare con l'elenco delle posizioni aperte e chiuse. Il problema di distinguere tra loro e qualcuno posizioni elses è stato risolto in modi piuttosto complicati. In 4, la situazione è cardinally cambiata. Ora, operatore può usare una grande varietà di funzioni e di gestire completamente tutte le posizioni aperte e gli ordini effettuati e ottenere l'accesso alle informazioni su eventuali posizioni chiuse. Un parametro speciale chiamato MagicNumber è stato aggiunto per identificare gli ordini. Questo è il parametro nostro articolo si occuperà di. 2. Qual è MagicNumber int OrderSend (simbolo stringa, int cmd, doppio volume, prezzo doppio, int slittamento, doppio stoploss, doppia TakeProfit, stringa commentNULL, int magic0 datetime expiration0, colore arrowcolorCLRNONE.) Magic - Order numero magico. Può essere utilizzato come definito dall'utente identificatore vale a dire quando un ordine di essere immessi (posizione viene aperto), si può assegnare un numero univoco ad esso. Questo numero sarà pertanto utilizzato per distinguere l'ordine di cui sopra da parte degli altri. Non serve a nulla (o anche la possibilità) applicare questa funzione quando le negoziazioni manualmente, ma in realtà è unexpendable quando trading con un esperto (trading automatico). Esempio 1: Un operatore umano e un esperto sono commerciali nel terminale del cliente, allo stesso tempo. Compito: L'esperto deve operare secondo il suo algoritmo e non può fare nulla con posizioni aperte manualmente. Soluzione: L'esperto deve assegnare una, MagicNumber diverso da zero unica per la posizione che si apre. In futuro, deve gestire solo posizioni, la MagicNumber di che è uguale a quella preimpostata. Esempio 2: Due esperti con diversi algoritmi sono commerciali nel terminale del cliente, allo stesso tempo. Compito: L'esperto deve solo gestire i loro ordini. Soluzione: Ogni esperto deve utilizzare la sua unica MagicNumber diverso da zero quando si aprono le posizioni. In futuro, si devono gestire solo posizioni, la MagicNumber di che è uguale a quella preimpostata. Esempio 3: Diversi esperti, un commerciante umano e un esperto di assistere la realizzazione di un arresto non standard trascinamento operano nel terminale del cliente contemporaneamente. Compito: esperti di trading devono lavorare secondo i loro algoritmi e non possono fare nulla con posizioni aperte manualmente. L'esperto che assiste che realizza Trailing Stop può modificare solo posizioni aperto manualmente, ma non quelli aperti da altri esperti. Soluzione: Gli esperti di trading devono utilizzare MagicNumber unici e gestire solo le loro posizioni. L'esperto che assiste deve modificare solo quelle posizioni che hanno MagicNumber uguale a 0. Tutti e tre gli esempi sono abbastanza realistico, e gli utenti potrebbero probabilmente hanno creato questi problemi da soli. In tutti e tre i casi, il MagicNumber viene utilizzato per risolverlo. In questo modo non è l'unico, ma il più semplice. 3. Realizzazione Ora lascia a risolvere lo specifico compito: creare un esperto che potrebbe funzionare solo con le proprie posizioni, senza prestare attenzione alle posizioni aperte manualmente o da altri esperti. Vediamo prima di scrivere un semplice esperto, per cui il segnale per aprire una posizione sarà quando l'indicatore MACD incontra linea dello zero. L'esperto sarà simile a questo: Cerchiamo di allegarlo al grafico e vediamo come funziona: Tutto ok, ma c'è un problema qui. Se apriamo una posizione durante l'operazione di esperti, considererà questa posizione come propri e agire di conseguenza. Questo non è quello che vogliamo. Noi modificare nostro esperto in modo tale che gestisce solo le proprie posizioni: Aggiungere la variabile esterno denominato ExpertID essere utilizzato per modificare i valori MagicNumber per le posizioni aperte dagli esperti Dopo la posizione è stata selezionata dal OrderSelect funzione (), aggiungere controllando se il MagicNumber dell'ordine selezionato è conforme a quello della variabile ExpertID scriveremo il valore della ExpertID invece di 0 nel campo MagicNumber in apertura posizione Considerando le modifiche di cui sopra, il codice apparirà come segue: Ora, quando l'esperto sta funzionando, l'utente può aprire posizioni manualmente. L'esperto non li toccherà. 4. Più esperti identico su diversi grafici di un simbolo Ci sono casi in cui la stessa EA deve commerciare nelle classifiche dello stesso simbolo, ma con tempi diversi, per esempio. Se cerchiamo di collegare il nostro esperto per la coppia EURUSD grafico, H1, e per la coppia EURUSD, M30, allo stesso tempo, essi interferiscono tra di loro: ogni prenderà in considerazione la posizione aperta di essere la sua posizione e modificare a sua discrezione. Questo problema può essere risolto assegnando un'altra ExpertID all'altro esperto. Ma questo non è molto conveniente. Se ci sono molti esperti utilizzati, si può solo rimanere impigliato tra i loro ID. Siamo in grado di soddisfare questo problema utilizzando il periodo di grafico come MagicNumber. Come possiamo farlo se basta aggiungere il periodo grafico per la ExpertID, è possibile che 2 diversi esperti su 2 grafici differenti generano lo stesso MagicNumber. Così noi meglio moltiplicare ExpertID da 10 e mettere il periodo del grafico (il suo codice da 1 a 9, per l'esattezza) alla fine. Essa sarà simile a questo: Ora aggiungere questo codice per gli init esperti funzione () e sostituirlo con ExpertID MagicNumber ovunque. La versione finale della EA si presenta così: In questo aspetto, l'esperto può essere utilizzato su diversi grafici con diversi periodi. Il valore della variabile ExpertID sarà quello di cambiare solo se vi è la necessità di lanciare due esperti sui grafici dello stesso simbolo e il periodo (per esempio, EURUSD H1 e H4 EURUSD), ma questo accade molto raramente. Allo stesso modo, utilizzando il codice di cui sopra, l'utente può migliorare la sua EA e insegnare loro a distinguere le loro posizioni da quelle estere. Attenzione: Tutti i diritti di questi materiali sono riservati a MQL5 Ltd. La copia o ristampa di questi materiali in tutto o in parte è prohibited. MetaTrader numero magico Un numero magico è utilizzato per identificare un mestiere. Quando un commercio è aperto da un consulente esperto, un numero magico può essere associato con il commercio. OrderSend ha molti parametri, uno dei quali si chiama magia. Quando il tuo Expert Advisor utilizza la funzione OrderSend per aprire un ordine, si imposta il parametro magia di un numero unico che può essere utilizzato in seguito per identificare il commercio. Ecco la definizione stessa di OrderSend direttamente dal file MetaEditor aiuto: simbolo stringa, int cmd, doppio volume, doppio prezzo, int slittamento, doppio stoploss, doppia TakeProfit, stringa commentNULL, int magia 0, datetime expiration0, arrowcolorCLRNONE colore) Colore di la freccia apertura sul grafico. Se il parametro è mancante o ha CLRNONE freccia apertura valore non viene disegnato sulla carta. Nota: Vedere la 8220magic08221 nella definizione della funzione Questo significa che il parametro di magia è facoltativo: non ha bisogno di essere definito. Inoltre, quando non è definito, si otterrà il valore 0. A proposito, commercio aperto manualmente (non da un EA) hanno sempre un valore numero magico di 0. Questo è bene sapere gallina si scrive il Expert Advisor. What8217s allo scopo di identificare uno scambio con un numero magico Lo scopo principale di codifica vostro commercio con un numero magico è così si può gestire il commercio sulla base delle circostanze in cui è stato aperto. Ad esempio, si supponga di avere questa situazione: Si esegue 2 Expert Advisors: uno su una EURUSD grafico a 1 ora e l'altro su un EURUSD grafico a 15 minuti. Uno EA è un EA scalping e l'altro è un EA trend-following. Ognuno di questi EA ha 1 commercio aperto. You8217ll probabilmente vuole gestire l'uscita di questi traffici in modo diverso. A parte il stoploss standard ed uscita TakeProfit, si consiglia di eseguire un trailing-stop su uno scambio e un canale-stop dall'altro. In questo caso, it8217s non è sufficiente per identificare il commercio con la sua coppia di valute, dal momento che entrambi i mestieri sono EURUSD dalle compravendite. Questo è dove il numero magico entra. Se è stato utilizzato un numero magico unico quando questi traffici sono stati aperti, ora può essere utilizzato per identificare ciò che EA ha aperto il commercio. Ad esempio, l'EA scalping potrebbe utilizzare un numero magico di 100, e la EA trend-following può utilizzare un numero magico di 200. Come ottenere il numero magico di un Open Trade C'è una funzione MQL denominata OrderMagicNumber che otterrà la magia numero di un mestiere. Ma don8217t troppo eccitato, non it8217s così semplice. Il OrderMagicNumber funzione deve essere eseguito in un ciclo di selezione ordine. La funzione OrderSelect MQL viene utilizzato per selezionare un mestiere. Dopo aver selezionato un mestiere, la funzione OrderMagicNumber è usato per ottenere il numero magico. In genere la funzione OrdersTotal MQL è usato per scorrere tutte le posizioni aperte per l'account. Ecco un esempio di codice MQL: int totalOrdersTotal () int mymagic for (int pos0poslttotalpos) se (OrderSelect (pos, SELECTBYPOS) false) continuare OrderMagicNumber mymagic () (Don8217t preoccupazione, questo codice get8217s più facile lavorare con dopo you8217ve fatto di migliaia volte inciso, questa stessa tecnica è utilizzata per ottenere quasi tutte le informazioni su un mestiere: stoploss, TakeProfit, tempo aperto, prezzo di apertura, ecc (Inoltre, la storia commercio di un account può essere interrogato nello stesso modo si può ottenere. . tutte le stesse informazioni sulle compravendite chiuse) quindi, ora che è possibile ottenere un numero magico trade8217s, è possibile eseguire una uscita commercio specifica in base al numero magico è possibile farlo usando base if-then logica:. se mymagic è pari a 100 eseguire un trailing stop se mymagic è pari a 200 eseguire un arresto del canale Utilizzando Magic Numbers in VTS in VTS, una variabile di ingresso denominata MagicNumber viene creato con ogni sistema. la variabile MagicNumber è definita e configurata nel VTS Input manager. la variabile MagicNumber appare sulla scheda di ingresso quando si avvia il EA, quindi può essere impostato ogni volta che l'EA viene eseguito. Il valore predefinito del parametro magia per tutte le funzioni OrderSend di VTS è la variabile MagicNumber Si noti che la funzione OrderSend in VTS viene chiamata dalla funzione VTS fnOpenOrder user-friendly. Così, quando si crea un semplice EA in VTS che utilizza la funzione fnOpenOrder, e si utilizzano i valori predefiniti, you8217ll avere un EA che apre i commerci con il numero magico che viene mostrato sulla finestra di immissione quando si avvia l'EA. Vedere questo link per un esempio di finestra di immissione EA e la finestra di ingresso VTS Manager. Ecco un'immagine del parametro magia sulla configurazione della funzione VTS fnOpenOrder. Nota, è sulla scheda Avanzate: Magico Numero parametro su fnOpenOrder (OrderSened) Dal momento che è possibile impostare il parametro magia sulla funzione VTS fnOpenOrder a qualsiasi valore, non solo la variabile MagicNumber, la possibilità di utilizzare un numero magico all'interno VTS è molto flessibile. Avrete notato il parametro commento. Il parametro commento del OrderSend viene utilizzato per aggiungere un commento di testo a un mestiere. (Nota: bisogna stare attenti se si desidera utilizzare il valore commento per identificare un commercio perché il valore può essere cambiamento dal broker In realtà, è cambiato in qualsiasi momento il commercio viene modificato.). In ogni caso, può essere estremamente utile per vedere il numero magico di un commercio nella piattaforma MetaTrader. Così per impostazione predefinita, VTS imposta il nome della EA e il numero magico nel parametro commento. In questo modo, è possibile vedere visivamente come i tuoi scambi sono stati aperti nella piattaforma MT. Ecco l'immagine di un commercio aperto nella scheda commerciale: Il nome della EA che ha aperto questo commercio EURUSD è 8220system38221, e il numero magico è 123456. Ecco l'immagine di un commercio chiuso nella scheda Cronologia Account: Si noti che il campo di commento è stato modificato dal broker: hanno aggiunto il testo 8220tp8221. A proposito, se si don8217t vedere il campo Commento nella vostra piattaforma MetaTrader, è possibile fare clic del mouse sulle colonne e aggiungerlo. Come ottenere il numero magico di un mestiere utilizzando VTS Il fnGetOrderInfo genera tutto il codice MQL per il ciclo di selezione ordine e restituisce il valore richiesto.
Comments
Post a Comment