Comunque, il punto è questo: sto cercando opzioni di codice per cercare gli ordini.
Vuoi monitorare gli ordini attivi?
MQL4 o MQL5?
Vuoi monitorare gli ordini attivi?
Fondamentalmente, il succo è il seguente, sto cercando opzioni di codice per cercare gli ordini.
Il compito è il seguente:
1 :
Ottieni informazioni sull'ordine massimo per prezzo e per tipo di ordine (Acquisto/Vendita) più in alto
Per ottenere informazioni sull'ordine minimo per prezzo e per tipo di ordine (acquisto/vendita) più basso
Ottieni informazioni sull'ultimo ordine per tempo e per tipo di ordine (Acquisto/Vendita)
Ottieni informazioni sul primo ordine per tempo e per tipo di ordine (Acquisto/Vendita)
2 :
Ottenere informazioni sul penultimo prezzo massimo e sul tipo di ordine (Acquisto/Vendita)
Ottenere informazioni sul penultimo ordine minimo (Acquisto/Vendita) per prezzo e per tipo di ordine (Acquisto/Vendita)
Ottieni informazioni sul penultimo ordine per tempo e per tipo di ordine (Acquisto/Vendita)
Ottenere informazioni sul secondo ordine in tempo e sul tipo di ordine (Acquisto/Vendita)
Queste informazioni includono tutte le informazioni sull'ordine (simbolo, lotto, prezzo ......)
Lo stile di programmazione procedurale l'ha risolto molto tempo fa, ora voglio semplificarlo e fare una classe, ma non riesco a pensare a niente di utile...
Sì Vladimir - è un GRANDE compito! :-)
Puoi dirmi dove andare?
Solo non tutti, ma massimo/minimo per prezzo e primo e ultimo per tempo, 2 di ciascuno, cioè ultimo e penultimo...
Non è difficile, perché state stabilendo degli ordini.
Quindi, ricorderete gli ultimi due BUY e gli ultimi due SELL
E non dovrete cercare nulla.
struct MEM_ORDER { ulong ticket; long ord_type; double price; }; struct MEM_ORDERS { bool is_first_buy; bool is_first_sell; MEM_ORDER buy_oders[2]; MEM_ORDER sell_oders[2]; };
Non è difficile, perché state stabilendo degli ordini.
Quindi, ricorderete gli ultimi due BUY e gli ultimi due SELL
E non dovrete cercare nulla.
Ho pensato a una soluzione del genere, ma non ero contento del fatto che quando l'EA/terminale viene ricaricato, viene reinizializzato e tutti i dati del lavoro passato saranno persi.
Penso che il modo più affidabile di lavorare sia quello di raccogliere dati sull'ambiente quando l'EA sta lavorando.
Ho pensato a una soluzione del genere, ma non ero contento del fatto che quando l'EA/terminale viene ricaricato, viene riproposto e tutti i dati del lavoro precedente saranno persi.
Credo che il metodo affidabile di funzionamento sia quello di raccogliere dati sull'ambiente al momento dell'operazione EA.
E cosa impedisce di salvare i dati in un file quando si esce dall'EA, e quando lo si carica, caricarli da un file?
//| Expert Load setings function | //+------------------------------------------------------------------+ void LoadSettings() { string file_name = _Symbol + ".dat"; int file_handle; //--- if ( FileIsExist( file_name, 0 ) ) { file_handle = FileOpen( file_name, FILE_READ|FILE_BIN ); if ( file_handle != INVALID_HANDLE ) { e_high = FileReadLong( file_handle ); a_profit = FileReadLong( file_handle ); e_low = FileReadLong( file_handle ); ord_delta_high = FileReadLong( file_handle ); ord_delta_low = FileReadLong( file_handle ); order_delta = FileReadLong( file_handle ); exit_delta = FileReadLong( file_handle ); FileClose( file_handle ); } } } //+------------------------------------------------------------------+ //| Expert Save settings function | //+------------------------------------------------------------------+ void SaveSettings() { string file_name = _Symbol + ".dat"; int file_handle; bool file_found = true; //--- if ( FileIsExist( file_name, 0 ) ) { if ( FileDelete( file_name, 0 ) ) file_found = false; } else { file_found = false; } //--- if ( ! file_found ) { file_handle = FileOpen( file_name, FILE_WRITE|FILE_BIN ); if ( file_handle != INVALID_HANDLE ) { FileWriteLong( file_handle, e_high ); FileWriteLong( file_handle, a_profit ); FileWriteLong( file_handle, e_low ); FileWriteLong( file_handle, ord_delta_high ); FileWriteLong( file_handle, ord_delta_low ); FileWriteLong( file_handle, order_delta ); FileWriteLong( file_handle, exit_delta ); FileClose( file_handle ); } } }
Cosa impedisce di salvare i dati in un file quando si lascia l'EA e caricarli da un file quando lo si carica?
Questo è ovviamente buono, ma non affidabile, poiché l'ambiente può cambiare durante il riavvio.
Chiudi tutti gli ordini prima di uscire.
Avete ancora bisogno di fare questo.
Chiudi tutti gli ordini prima di uscire.
È una cosa noiosa da fare comunque.
Le ripartenze impreviste porteranno a problemi...
Ho scritto un corso...
I riavvii imprevisti porteranno guai...
Ho scritto una classe...
Non far ridere la gente....
Se succede qualcosa di imprevisto, nessuna classe vi salverà!
Se il windup o il terminale "si blocca", allora l'EA si reinizializzerà,
Mi limito a "guardare" gli ordini attivi e a chiuderli, perché non c'è controllo su di essi.
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Accetti la politica del sito e le condizioni d’uso
Fondamentalmente, il succo è il seguente, sto cercando opzioni di codice per cercare gli ordini.
Il compito è il seguente:
1 :
Ottieni informazioni sull'ordine massimo per prezzo e per tipo di ordine (Acquisto/Vendita) più in alto
Per ottenere informazioni sull'ordine minimo per prezzo e per tipo di ordine (acquisto/vendita) più basso
Ottieni informazioni sull'ultimo ordine per tempo e per tipo di ordine (Acquisto/Vendita)
Ottieni informazioni sul primo ordine per tempo e per tipo di ordine (Acquisto/Vendita)
2 :
Ottenere informazioni sul penultimo prezzo massimo e sul tipo di ordine (Acquisto/Vendita)
Ottenere informazioni sul penultimo ordine minimo (Acquisto/Vendita) per prezzo e per tipo di ordine (Acquisto/Vendita)
Ottieni informazioni sul penultimo ordine per tempo e per tipo di ordine (Acquisto/Vendita)
Ottenere informazioni sul secondo ordine in tempo e sul tipo di ordine (Acquisto/Vendita)
Queste informazioni includono tutte le informazioni sull'ordine (simbolo, lotto, prezzo ......)
Lo stile di programmazione procedurale l'ha risolto molto tempo fa, ora voglio semplificarlo e fare una classe, ma non riesco a pensare a niente di utile...