Errori, bug, domande - pagina 2943

 
Come in MQL, senza ricorrere a WinAPI, come posso sapere se il terminale ha il focus utente (cioè l'utente ha una finestra attiva)? Ora alcune funzioni, come la lettura dello stato della tastiera (come TerminalInfoInteger(TERMINAL_KEYSTATE_CAPSLOCK)) restituiscono valori diversi a seconda dell'attività della finestra con lo stesso stato della tastiera. Questo è un peccato.
 
Alexandr Sokolov:

MT5 build 2755

Il terminale non conta tutti i tick

Perché ha tratto una tale conclusione?

 
Alexandr Sokolov:

MT5 build 2755

Il terminale non conta tutti i tick



Prova così

datetime st = 0;
int tics = 0;

//------------------------------------------------------------------

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   
   if(prev_calculated == 0)
{
 ArraySetAsSeries(time,true);
 ArraySetAsSeries(tick_volume,true);
 st = time[0];
}   
   else if(time[0] != st)
     {
      tics++;
      Alert("T - ",tics," TV - ",tick_volume[0]);
     };
   
  //-----------------------------------------------------------------
   return(rates_total);
  }
 
Renat Fatkhullin:

Perché ha tratto questa conclusione?

Perché come ho notato OnCalculate viene chiamato quando i prezzi Ask e Bid cambiano, ma tick_volume[] conta solo i cambiamenti Bid

 

Il seguente problema: avevo un Expert Advisor su un conto netting, apriva e chiudeva posizioni, ho aggiunto un contratto manualmente alla posizione aperta dal robot e dopo un po' il log dell'Expert Advisor ha mostrato degli errori:

Errore all'apertura di una posizione: 4753 - Posizione non trovata

La cosa più interessante è che la posizione è chiusa, l'auto-tradingè disabilitato e l'EA è cancellato dal grafico, ma gli errori continuano ad apparire.


 
Alexandr Sokolov:

Perché ho notato che OnCalculate viene chiamato ai cambiamenti di prezzo Ask e Bid, ma tick_volume[] conta solo i cambiamenti Bid

OnTick viene chiamato ad ogni cambiamento di prezzo e non solo (il terminale può richiedere il ricalcolo in molte occasioni come il download di dati aggiuntivi o la ridistribuzione di set di dati storici).

Ilvolume dei tick, così come il grafico, si basa sul cambiamento del prezzo di offerta. Nell'esecuzione in borsa, viene utilizzato un contatore di volume reale separato, dove vengono contabilizzate tutte le transazioni di acquisto e di vendita.

 
Sayberix:

Il seguente problema: avevo un Expert Advisor su un conto netting, apriva e chiudeva posizioni, ho aggiunto un contratto manualmente alla posizione aperta dal robot e dopo un po' il log dell'Expert Advisor ha mostrato degli errori:

Errore all'apertura di una posizione: 4753 - Posizione non trovata

La cosa più interessante è che la posizione viene chiusa, l'auto-tradingviene disabilitato e l'Expert Advisor viene cancellato dal grafico.


Questo dipende dalla logica dell'Expert Advisor.

Può ricordare e pensare solo alle proprie operazioni e il tuo intervento manuale può rovinare la logica dell'Expert Advisor.

 
Renat Fatkhullin:

Dipende dalla logica dell'EA stesso.

Può solo ricordare e pensare alle proprie operazioni e il tuo intervento manuale può incasinare la logica dell'Expert Advisor.

Ho capito, ma perché questo errore è rimasto nel terminale? Ti ho detto che tutte le posizioni sono chiuse, l'auto-trading è disattivato, l'Expert Advisor è stato scaricato e anche il terminale è stato riavviato!

 
Il browser K-meleon non riflette il testo nei messaggi privati(vedi schermata). Ma fa male, però! In qualche modo solo in privato. Il browser è il più semplice e veloce, ma non è diffuso e a Moz manca un font? Aiuta chi lo sa. L'hardware è vecchio e i browser pesanti tirano male.
File:
 
Sayberix:

Ho capito, ma perché questo errore è rimasto nel terminale? Ti ho detto che tutte le posizioni sono chiuse, l'auto-trading è spento, l'Expert Advisor è scaricato e ho anche riavviato il terminale!

I miracoli non accadono. Il tuo Expert Advisor è in esecuzione su uno dei grafici.