Caratteristiche del linguaggio mql5, sottigliezze e tecniche - pagina 18
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
E posso chiedere perché statico?
Perché preso fuori contesto - vedi post originale.
una caratteristica non documentata della funzione OnInit(), questa funzione può essere eseguita in qualsiasi parte del programma. Codice di prova.
Risultato
...
caratteristica non documentata della funzione OnInit(), questa funzione può essere eseguita in qualsiasi parte del programma. Codice di prova.
Tutte le funzioni On sono funzioni normali e quindi possono essere chiamate quando volete. OnCalculate o OnTradeTransaction.
Tutte le funzioni On sono funzioni normali e, di conseguenza, possono essere chiamate quando si vuole. O OnCalculate o OnTradeTransaction.
Ma non è scritto nella documentazione
OnInit
La funzione OnInit() è il gestore dell'evento OnInit. Può essere di tipovoid oint e non ha parametri:
voidOnInit();
L'evento Init viene generato immediatamente dopo il caricamento di un Expert Advisor o di un indicatore, questo evento non viene generato per gli script. La funzione OnInit() è usata per l'inizializzazione. Se OnInit() ha il valore di ritorno int, il codice di ritorno non nullo significa inizializzazione non riuscita, e genera l'eventoDeinit con il motivo di deinizializzazione codeREASON_INITFAILED.
Per ottimizzare i parametri di ingresso di un esperto, si raccomanda di utilizzare i valori dell'enumerazioneENUM_INIT_RETCODE come codici di ritorno. Questi valori sono utilizzati per controllare il corso dell'ottimizzazione, compresa la selezione degli agenti diprova più appropriati. Durante l'inizializzazione di un Expert Advisor prima dell'inizio dei test è possibile richiedere informazioni sulla configurazione e le risorse di un agente (il numero di core, la quantità di memoria libera, ecc.) utilizzando la funzioneTerminalInfoInteger(). In base alle informazioni ottenute, potete permettere l'uso di questo agente di test o rifiutarne l'uso durante l'ottimizzazione di questo Expert Advisor.
ENUM_INIT_RETCODE
Identificatore
Descrizione
INIT_SUCCEED
Se l'inizializzazione è riuscita, si può continuare a testare l'Expert Advisor.
Questo codice ha lo stesso significato di zero - l'inizializzazione dell'Expert Advisor nel tester ha avuto successo.
INIT_FAILED
Inizializzazione fallita, i test non hanno senso a causa di errori irrecuperabili. Per esempio, non è riuscito a creare un indicatore che è necessario per il lavoro dell'Expert Advisor.
Il ritorno di questo valore significa lo stesso che il ritorno di un valore diverso da zero - l'inizializzazione dell'Expert Advisor nel tester è fallita.
INIT_PARAMETERS_INCORRECT
Progettato per indicare al programmatore un insieme errato di parametri di input. La stringa di risultato che contiene questo codice di ritorno sarà evidenziata in rosso nella tabella di ottimizzazione generale.
I test per questa serie di parametri dell'Expert Advisor non saranno eseguiti e l'agente è libero di ricevere un nuovo compito.
Al ricevimento di questo valore, il tester della strategia è garantito per non passare questo lavoro ad altri agenti per un'esecuzione ripetuta.
INIT_AGENT_NOT_SUITABLE
Nessun errore durante l'inizializzazione, ma per qualche motivo l'agente dato non è adatto ai test. Per esempio, RAM insufficiente, supportoOpenCL e così via.
Dopo il ritorno di questo codice, l'agente non riceverà compiti fino alla fine di questaottimizzazione.
La funzione OnInit() di tipo void significa sempre inizializzazione riuscita.
Ma non è scritto nella documentazione
OnInit
Lafunzione OnInit() è il gestore dell'evento OnInit. Può essere di tipovoid oint e non ha parametri:
voidOnInit();
L'evento Init viene generato immediatamente dopo il caricamento di un Expert Advisor o di un indicatore
Dice che è una funzione.
Prima di OnInit e dopo OnDeinit ci sono chiamate di costruttori/distruttori di oggetti globali (imprecisione nella Guida). Ecco perché, per esempio negli indicatori si possono dichiarare i buffer degli indicatori senza OnInit. I rudimenti sono i seguenti.
Se la matrice è più piccola, solo una parte dei colori viene trasferita. Se l'array è più grande, viene tagliato.
Per gli array di larghezza e stile, il principio è lo stesso.
In OrderSendSync viene chiamato l'overloaded (vedi sopra) HistoryDealSelect.
Come posso determinare il tempo di apertura dell 'ultima posizione e il tempo di chiusura dell'ultima posizione?
E in generale, vorrei conoscere i principi generali e gli algoritmi per ottenere informazioni sulle posizioni aperte/chiuse su mql5.
Cosa bisogna prendere in considerazione, quali sono le specificità al momento?
Come posso determinare il tempo di apertura dell 'ultima posizione e il tempo di chiusura dell'ultima posizione?
In generale, vorrei conoscere i principi generali e gli algoritmi per ottenere informazioni sulle posizioni aperte/chiuse in mql5.
Cosa bisogna considerare, quali sono le peculiarità del momento?
Tutto questo viene determinato selezionando l'ordine e la cronologia degli scambi e poi leggendo le proprietà degli ordini.
IDENTIFICATORE DI POSIZIONE
L'identificatore di posizione è un numero unico, che viene assegnato ad ogni posizione appena aperta e non cambia durante la sua vita. Corrisponde al ticket dell'ordine con cui è stata aperta la posizione.
L'identificatore di posizione è specificato in ogni ordine (ORDER_POSITION_ID) e ogni trade (DEAL_POSITION_ID) che lo ha aperto, modificato o chiuso. Usa questa proprietà per cercare ordini e compravendite relative alla posizione.
Quando una posizione viene invertita in modalità netting (una singola operazione in/out), l'identificatore POSITION_IDENTIFIER della posizione non viene cambiato. Tuttavia, POSITION_TICKET è cambiato al biglietto d'ordine che ha portato all'inversione. Nella modalità di copertura non c'è inversione di posizione.
lungo
E usando le proprietà dell'enumerazione ENUM_DEAL_ENTRY
DEAL_ENTRY_IN
Entrata nel mercato
DEAL_ENTRY_OUT
Uscita dal mercato
INGRESSO_INOUT
U-turn
INGRESSO_FUORI_DA
Chiudere la posizione del contatore