Errori, bug, domande - pagina 660

 
tol64:

Chiedete la storia delle ultime tre transazioni:

E vediamo che la storia non corrisponde. Cioè, possiamo vederlo nel terminale, ma non possiamo ottenerlo programmaticamente.

//---

È un bug o così è stato progettato e ora queste offerte possono essere ottenute programmaticamente solo quando il mercato si apre?

P.S. Ho anche provato in questo modo, ma non aiuta:

Invece diTimeCurrent(), usate TimeTradeServer() quando selezionate la storia.
Документация по MQL5: Дата и время / TimeTradeServer
Документация по MQL5: Дата и время / TimeTradeServer
  • www.mql5.com
Дата и время / TimeTradeServer - Документация по MQL5
 
Valmars:
Usare TimeTradeServer() invece diTimeCurrent() quando si seleziona la cronologia.
Grazie Valery. Sì, in effetti, in alcuni casi, TimeLocal() può mostrare un risultato sbagliato a seconda del fuso orario in cui ci troviamo. Ecco perché TimeTradeServer() è la variante più accurata per richiedere la cronologia degli scambi.
 
tol64:. Pertanto TimeTradeServer() è l'opzione più accurata per richiedere la storia delle compravendite.
Abbiamo solo bisogno di sincronizzare il tempo del computer in tempo, altrimenti potremmo anche perdere le transazioni.
 
Valmars:
Abbiamo solo bisogno di sincronizzare il tempo del computer in tempo, altrimenti potremmo anche perdere le transazioni.

Intendi questo? :

Non ho ancora capito, per essere onesti, in quale altro caso si può ottenere non tutta la storia dei commerci...

 

Potete dirmi cosa significa questo messaggio nel diario di bordo?

Questo è successo solo una volta e non può essere riprodotto di nuovo.

 

Ho due domande in una volta sola.

L'ultima build x32 è installata. È in corso da quasi due settimane ormai. I problemi sono iniziati ieri o l'altro ieri. Cioè, la stessa costruzione non funzionava male prima, ma è iniziata improvvisamente, vero? Anche l'indicatore non è stato modificato per molto tempo. Si scopre che non è nemmeno il problema. Allora cos'è? Quando si rimbalza da timeframe a timeframe in alcuni casi arbitrari l'indicatore appare errato in alcuni timeframe, il grafico scivola letteralmente verso il basso. Quando esco e torno in questo lasso di tempo non viene corretto nulla, i calcoli errati sono fissati dall'ultima volta, come se fossero memorizzati da qualche parte nella cache. A volte riavviare il terminale aiuta, ma a volte devo pulire manualmente la cartella della cache con un file .hc malato del periodo corrispondente. Non era mai successo prima. (A proposito, per essere sicuro ho controllato il mio disco per gli errori e l'ho deframmentato: solo una leggera accelerazione delle prestazioni del sistema, ma l'indicatore non esegue gli stessi calcoli di prima).

1. Quale può essere il problema se sia la build che lo stesso indicatore funzionavano bene prima? Non è ora di buttare il computer nell'immondizia? Forse la RAM si è "asciugata" e sta respirando un grande favore?

2. Perché in assenza di una nuova cronologia (cioè i tick del fine settimana) quando si passa a timeframes non standard, ai quali sono già passato in precedenza e per i quali ho già costruito i file .hc appropriati, si ripete lo stesso ritardo"Waiting for update" di prima? Anche senza indicatori, su un grafico completamente nuovo!

 
x100intraday:

Ho due domande in una volta sola.

L'ultima build x32 è installata. È in corso da quasi due settimane ormai. I problemi sono iniziati ieri o l'altro ieri. Cioè, la stessa costruzione non funzionava male prima, ma improvvisamente ha iniziato?

Ho somiglianza con te, nel mio problema, in quanto prima, dopo l'aggiornamento del terminale, l'errore(Access violation read to 0x... ) non si verificava e ha iniziato a mostrarsi solo ora. Nel fine settimana. ))
 
tol64:
Ho una somiglianza con te nel mio problema, nel senso che l'errore(Access violation read to 0x... ) non si è verificato prima, da quando il terminale è stato aggiornato, e ha iniziato a mostrarsi solo ora. Nel fine settimana. ))
Deve essere il complotto di Mason. Sono loro che controllano segretamente il Forex...
 
x100intraday:
Devono essere le macchinazioni dei massoni. Sono loro che controllano segretamente il Forex...
Non lo so. )) Qualcuno sta controllando qualcosa ovunque. Tutto è controllato e tutto è controllabile. Tutto ciò che non può essere controllato da uno, può essere controllato da un altro. È naturale e quindi normale. Ma di solito non è di questo che stiamo parlando qui. )))
 
MetaQuotes:

La domanda insieme ai commenti sono a posto, ma per qualche motivo non visibili nel profilo.

Ci assicureremo di trovare una soluzione.

(Ok. Beh, ora sembra proprio così. :)

C'è un numero negativo dove non dovrebbe esserci. Ecco uno script che riproduce il problema.

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   Print(FOrdType(-1));
  }
//---
string FOrdType(uint type)
  {
   string str="";
//---
   switch(type)
     {
      case ORDER_TYPE_BUY            : str="buy";             break;
      case ORDER_TYPE_SELL           : str="sell";            break;
      case ORDER_TYPE_BUY_LIMIT      : str="buy_limit";       break;
      case ORDER_TYPE_SELL_LIMIT     : str="sell_limit";      break;
      case ORDER_TYPE_BUY_STOP       : str="buy_stop";        break;
      case ORDER_TYPE_SELL_STOP      : str="sell_stop";       break;
      case ORDER_TYPE_BUY_STOP_LIMIT : str="buy_stop_limit";  break;
      case ORDER_TYPE_SELL_STOP_LIMIT: str="sell_stop_limit"; break;
      //---
      default: str="unknown_order_type: "+string(type); break;
     }
//---
   return(str);
  }

Se si passa un numero negativo a una funzione che accetta un numero intero senza segno, voilà:

Penso che queste cose dovrebbero essere gestite al momento della compilazione.