Sviluppato una libreria di funzioni API per MetaTrader 4 - pagina 4

 
Secondo le impostazioni del server di quotazione MT4 - non possono essere eseguite operazioni più di una volta ogni 10 secondi. Il server limita la frequenza delle diverse richieste per prevenire possibili attacchi DOS degli hacker. Questa informazione è stata sollevata una volta su questo forum.
Non è vero.
La frequenza delle transazioni è limitata solo dalla velocità di reazione del broker =)
Non c'è limite in MT.

Gli sviluppatori lo hanno detto sul forum, e più di una volta. Ma ci hanno sempre avvertito onestamente - risolverete i vostri problemi con il broker da soli ;)


Quindi sarebbe più giusto dire che la pausa non è obbligatoria (in senso tecnico), ma almeno auspicabile (in senso di pericolo di blocco del conto).
 
Mi interessa un semplice esempio, invio tre richieste per piazzare tre ordini, anche se l'intervallo è di 20 secondi. In questo momento il mercato è lento e l'intervallo tra i tick è fino a due minuti. I primi due saranno persi o tutti e tre saranno eseguiti durante il primo tick?
 
Mi interessa un semplice esempio, invio tre richieste per piazzare tre ordini, anche se l'intervallo è di 20 secondi. In questo momento il mercato è lento e l'intervallo tra i tick è fino a due minuti. I primi due saranno persi o tutti e tre saranno eseguiti durante il primo tick?

Niente sarà perso. Non è necessario implementare alcun ritardo nel programma. Si avvia la funzione int NewPos(...) per il primo ordine. Tutti i ritardi sono già implementati in esso. Se la funzione restituisce 0, tutto va bene - la richiesta è stata eseguita. Procediamo al secondo ordine, e così via.
Se l'esecuzione ha successo, la funzione farà un ritardo di 10 secondi da sola, così non avremo problemi con richieste frequenti al server. Il tempo critico di attesa della risposta del terminale MT4 è anche implementato in questa funzione. Se non c'è risposta dal terminale durante questo tempo, la funzione restituisce il codice di una situazione di errore. Questo è stato fatto per la diagnostica di situazioni legate a citazioni mancanti, disattivazione dell'account, fallimenti di Internet, ecc.
In questo modo quando si ritorna dalla funzione l'evento è già accaduto. Buona fortuna!
 
I comandi di elaborazione degli ordini saranno eseguiti solo quando arrivano le quotazioni per la coppia per la quale è installato l'Expert Advisor. In altre parole, il pulsante "BUY" nel tuo programma non significa che l'ordine viene inviato al server, sta solo "aspettando sul disco" la quotazione della coppia in cui è installato l'Expert Advisor. L'EA cercherà il comando del file e se lo trova, invierà un ordine al server, e tra l'altro, lo cercherà ad ogni tick. Il risultato dell'immissione di un ordine o dell'annullamento dell'ordine può, rispettivamente, essere ricevuto solo con l'arrivo del prossimo preventivo. Questo non ci permette di organizzare una logica chiara per alcuni TS. Spero che tu lo capisca.


La logica di TS non c'entra niente. La domanda riguarda solo i ritardi nell'esecuzione degli ordini. Ma, come ho scritto prima, questo problema è inverosimile: la variabilità delle quotazioni è determinata dai tick in arrivo con nuovi prezzi. Durante il trading attivo vengono ricevuti fino a 200 tick al minuto. Pertanto, in questo caso non ci può essere alcun ritardo. Se aprite una posizione nel periodo di trading fiacco, i cambiamenti di prezzo sono quasi inesistenti, quindi anche l'aspettativa non ha un grande impatto sul livello della quotazione.
Inoltre, non possiamo parlare del pulsante "BUY" qui, perché stiamo parlando di sistemi di trading meccanico, che prendono le loro decisioni senza alcun pulsante. Buona fortuna!
 
Secondo le impostazioni del server di quotazione MT4 - non è possibile effettuare transazioni più di una volta ogni 10 secondi.

Questo era effettivamente il caso in MetaTrader 3, ma MT4 non ha più questa restrizione.
Ma allo stesso tempo, bisogna essere moderati e non fare molte operazioni di fila.
 
In realtà era così in MetaTrader 3, ma MT4 non ha più questa restrizione. <br/ translate="no"> Ma comunque, bisogna stare attenti a non fare troppe operazioni di fila.

Sì, hai ragione, naturalmente. Sarebbe meglio prevedere subito un ritardo come è stato fatto nella libreria sviluppata, altrimenti, se le richieste sono troppo frequenti, il server può bloccare l'indirizzo dell'utente con le relative conseguenze per il commercio. Buona fortuna!
 
ATTENZIONE!
È stata rilasciata la nuova versione della libreria MFOREX 2.05 per l'utilizzo delle funzioni API di MetaTrader 4.
I suoi benefici sono:
1. Durante il lavoro della libreria non si formano file temporanei, il trasporto dei dati avviene attraverso aree di memoria condivise. Una tale soluzione accelera significativamente l'accesso alle informazioni e aumenta l'affidabilità della biblioteca;
2. Inoltre sono implementate le funzioni speciali di diagnostica del terminale, restituendo il tempo dell'ultimo tick e il codice unico del computer per il processo di registrazione;
3. La funzione di diagnostica delle situazioni errate e di emergenza restituisce il codice della situazione e salva la descrizione nel registro speciale in russo.
4. Il prezzo della biblioteca è stato notevolmente ridotto. Gli utenti registrati della vecchia versione riceveranno gli aggiornamenti gratuitamente.
Leggi tutti i dettagli sul nostro sito web http://www.min2006.ru
 


Sfortunatamente, la proposta EA:
- non consegna la cronologia delle citazioni;
- non tiene traccia degli errori e delle emergenze;
- non fornisce la storia del trading e l'elenco delle posizioni aperte;
- non permette di ottenere le ultime quotazioni (sotto forma di tick).

Nella libreria che propongo tutte le funzioni mancanti sono implementate. Inoltre, lo scambio di informazioni viene eseguito tramite aree di memoria condivise senza generare file temporanei. Leggi tutti i dettagli su http://www.min2006.ru
Buona fortuna!
 
A proposito, ora quello che offre Min è più simile a quello che si può comprare di prima.
Puro imho :)