Errori, bug, domande - pagina 1388

 

Un errore di logica

Se la richiesta di inserire un ordine è stata rifiutata (linea con failed) per mancanza di connettività di rete, perché è stata effettivamente eseguita, il che è confermato dalla successiva modifica dell'ordine (linea con modify).

E se, dopo che la connessione di rete è stata ristabilita, il terminale stesso ha inviato una seconda richiesta, dov'è la riga relativa alla sua esecuzione riuscita?

 
A100:

Un errore di logica

Se la richiesta di inserire un ordine è stata rifiutata (linea con failed) per mancanza di connettività di rete, perché è stata effettivamente eseguita, il che è confermato dalla successiva modifica dell'ordine (linea con modify).

E se, dopo che la connessione di rete è stata ristabilita, il terminale stesso ha inviato una seconda richiesta, dov'è la riga relativa alla sua esecuzione riuscita?

Il broker non ha voluto eseguire il tuo ordine e ha disconnesso Internet. Ma poi le condizioni di mercato sono cambiate e il broker cambia idea ed esegue l'ordine. ))
 
Sergey Chalyshev:
Il broker non ha voluto eseguire il tuo ordine e ha disconnesso internet. Ma poi le condizioni di mercato sono cambiate, lui ha cambiato idea e ha eseguito. ))
Il nocciolo del problema è che il software non registra correttamente i cambiamenti che avvengono, il che rende impossibile fare riferimento al registro in caso di disaccordo con il broker.
 

Potete dirmi perché la funzione FileOpen non funziona in INI_file::WriteFile. Restituisce -1. GetLastError() restituisce il codice 5004 (Il file non può essere aperto)

void INI_file::WriteFile(string &lines[])
  {
   string fn=IniName;
   //int fh=FileOpen(fn,FILE_WRITE);
   int fh=FileOpen(fn,FILE_WRITE|| FILE_TXT ||FILE_ANSI);
   if(INVALID_HANDLE==fh)
     {
      LastErr=GetLastError();
      Message=StringConcatenate("FileOpen(...) of ",IniName,": ",ErrorDescription(LastErr));
      return;
     }

   for(int i=0;i<ArraySize(lines);i++)
      FileWriteString(fh,lines[i]+"\n");

   FileClose(fh);
  }

void INI_file::ReadFile(string &lines[])
  {
   int fh=FileOpen(IniName,FILE_READ || FILE_TXT || FILE_ANSI);
   if(fh==INVALID_HANDLE)
     {
      LastErr=GetLastError();
      Message=StringConcatenate("FileOpen(...) of ",IniName,": ",ErrorDescription(LastErr));
      return;
     }

   string line="";

   int k=0;
   ArrayResize(lines,1000);
   while(!FileIsEnding(fh))
     {
      line=FileReadString(fh);
      lines[k++]=line;
      if(k==ArraySize(lines))
         ArrayResize(lines,1000+k);
     }

   ArrayResize(lines,k);
   FileClose(fh);
  }

Richiede la ricreazione di un file di testo in codifica ansi. Prima di chiamareWriteFile ho letto lo stesso file usando INI_file::ReadFile.

 

Sto parlando di MT4 e MQL4.

A volte si apre bene, i dati vengono scritti (il valore di ritorno diFileWriteString non viene controllato), ma il file non viene modificato, anche la data del file non viene modificata.

 int fh=FileOpen(fn,FILE_WRITE);

Se apro il file in questo modo, il file viene aperto e i dati vengono scritti in codifica ansi, ma non unicode, come descritto nell'aiuto quando FILE_ANSI/FILE_UNICODE è assente.

 
Дмитрий:

Potete dirmi perché la funzione FileOpen non funziona in INI_file::WriteFile. Restituisce -1. GetLastError() restituisce il codice 5004 (Il file non può essere aperto)

   int fh=FileOpen(fn,FILE_WRITE | FILE_TXT | FILE_ANSI);
 
A100:
Grazie! Non ho scritto in MQL per molto tempo ))). Ho dimenticato
 

Qualcuno può spiegare perché un tester dovrebbe scaricare una storia su uno strumento che non ho intenzione di testare?

scaricare EURUSD

lo strumento per testare USDCAD, non ci sono richieste di lavorare con EURUSD

e questo succede sempre, sta cercando di fare coppie sintetiche con quello che ha se ci sono lacune nella storia? Non riesco a trovare nessun'altra spiegazione.

 
Il tester è multivaluta e deve calcolare con assoluta precisione in ogni secondo sia i requisiti di margine che i profitti nella valuta di deposito.

Questo è il motivo per cui il tester di strategie di trading calcola tutte le interrelazioni degli strumenti finanziari e fornisce una modellazione accurata delle condizioni di mercato.
 
Renat Fatkhullin:
Il tester è multivaluta e deve calcolare con assoluta precisione in ogni secondo sia i requisiti di margine che i profitti nella valuta di deposito.

Questo è il motivo per cui il tester di strategie di trading calcola tutte le interrelazioni degli strumenti finanziari e fornisce una modellazione accurata delle condizioni di mercato.
Grazie per il chiarimento, finché è necessario, lasciatelo scaricare, non mi dispiace)