Errori, bug, domande - pagina 503

 
snookeredman:

Buon pomeriggio!

Per favore, aiutatemi a capire ....

void OnStart()
  {
    int h;
    int    m_integer  = 23;
    string m_string   = "EURUSD";
    double m_double   = 1.2345678;    
    
    h=FileOpen("TEST_CSV_FILE.CSV",FILE_CSV|FILE_WRITE,";");
    FileWrite(h,  
              m_integer, 
              m_string, 
              DoubleToString(NormalizeDouble(m_double,5),5));
    FileWrite(h,  
              m_integer, 
              m_string, 
              DoubleToString(NormalizeDouble(m_double,5),5));
    FileClose(h);
  }

Opportunamente, la dimensione del file è 2 volte la dimensione prevista.

Prova così:

void OnStart()
  {
    int h;
    int    m_integer  = 23;
    string m_string   = "EURUSD";
    double m_double   = 1.2345678;    
    
    h=FileOpen("TEST_CSV_FILE.CSV",FILE_CSV|FILE_WRITE|FILE_ANSI,";");                     // Добавлен флаг FILE_ANSI
    FileWrite(h, m_integer, m_string, DoubleToString(NormalizeDouble(m_double,5),5));
    FileWrite(h, m_integer, m_string, DoubleToString(NormalizeDouble(m_double,5),5));
    FileClose(h);
  }
Penso che questo sia esattamente quello che stavi cercando.
 
Cosa sta succedendo? Per quanto tempo continueranno queste disconnessioni e fallimenti dei server? Ora il sito è tornato online dopo tre giorni di inattività, ma i server sono di nuovo giù e il terminale non si connette
 
Bene_Nota:

Cosa sta succedendo? Per quanto tempo continueranno queste disconnessioni e fallimenti dei server? Ora il sito è tornato online dopo tre giorni di inattività, ma i server sono di nuovo giù e il terminale non si connette
Il mio terminale è collegato da ieri sera. Punto di accesso : USA, Europa, Hong Kong
 

Grazie a TheXpert, MetaDriver per l'aiuto.

Il flag FILE_ANSI ha aiutato, e provare a giocare con pagine di codice senza questo flag non ha avuto successo.

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы ввода/вывода / Флаги открытия файлов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы ввода/вывода / Флаги открытия файлов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы ввода/вывода / Флаги открытия файлов - Документация по MQL5
 

Signori, come fate a sapere il numero totale di elementi su un modulo in C++?

 

Buon pomeriggio, vorrei contattare gli sviluppatori, ma prima un po' dibackground...

Dato che ora è impossibile tenere diverse posizioni, vedo che la via d'uscita più sensata per me è quella di impostare degli ordini pendenti. Ma c'è un problema nel fissare gli ordini uno per uno. Dobbiamo impostare tre ordini (uno di esecuzione immediata e due ordini in sospeso al posto di TP e SL). Cosa succede se faccio un ordine e non posso farne due? E se la mia società di intermediazione va a pranzo? Il mio deposito potrebbe non piacere. Avete intenzione di aprire diversi ordini (tutto o niente)?

 
220Volt:

Prevedete di rendere possibile l'impostazione di ordini multipli (o tutti o niente)?

Purtroppo no.

Questo è praticamente impossibile, specialmente nei gateway di scambio, dove tali ordini complessi non sono supportati in linea di principio.

 

Sto cercando di chiedere la data di inizio della storia e ottengo degli zeri.

Il test è in modalità di visualizzazione, tutti i tick sono su H1.

Controllo del codice di prova

int DS[];
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   int total=SymbolsTotal(false);
   ArrayResize(DS,total);
   for(int i=0;i<total;i++)
   {
    DS[i]=0;
    string symbol=SymbolName(i,false);
    
    while(!SymbolIsSynchronized(symbol)) 
    {
     DS[i]=(int)SeriesInfoInteger(symbol,0,SERIES_SERVER_FIRSTDATE);
     Sleep(30);
    }
    DS[i]=(int)SeriesInfoInteger(symbol,0,SERIES_SERVER_FIRSTDATE);
    Print("История по символу ",symbol," Синхронизирована. дата начала истории ",TimeToString(DS[i])," = ",DS[i]);
   }
//---
   return(0);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   
  }
//+------------------------------------------------------------------+

L'allegato è un registro.

 

L'ottimizzatore di codice ha delle limitazioni sulla dimensione dell'albero degli oggetti?

Ottengo un "errore di ottimizzazione dell'albero" in fase di compilazione quando aumento il numero di oggetti.

P.S. In modalità debug, la compilazione va a buon fine.

 
sergey1294:

Sto cercando di chiedere la data di inizio della storia e ottengo degli zeri.

Il test è in modalità di visualizzazione, tutti i tick sono su H1.

Controllo del codice di prova

L'allegato è un registro.

In primo luogo, che senso ha scaricare forzatamente la storia nel tester? Il tester stesso scaricherà la storia necessaria e disponibile dal server, se ci sono richieste nel codice o operazioni commerciali con i simboli necessari. Dato che il vostro codice è vuoto, il tester non ha bisogno di simulare tick per altri simboli, tranne che per il simbolo su cui viene eseguito il test. Ed è quello che il tester ha scaricato la sua storia. E siccome non c'è una storia (nel tester), ci ritroviamo con 0.

In secondo luogo, anche se si aumenta il codice chiamando l'intera cronologia per tutti i simboli, è improbabile che il download di tutta la cronologia disponibile per tutti i simboli abbia successo, e un fallimento si verificherà da qualche parte. Poiché il tester utilizza la base delle citazioni del terminale, ha bisogno di scaricare la storia necessaria.
Motivazione: