Errori, bug, domande - pagina 2809

 
TheXpert:

In altre parole: non c'è un accesso interno (default), ma c'è un accesso esterno. Ma per usarlo, bisogna specificarlo esplicitamente. Questo ha senso per me

 
Errore di compilazione:
template<typename T> class A {};
class B {
template<typename T> void f( A<T>& );
};
template<typename T>
void B::f( A<T>& ) {} //Error: 'f' - member function already defined with different parameters

ma per il resto:

template<typename T> class A {};
class B {
template<typename T> void f( A<T>& ) {} //нормально
};

bene. Che differenza fa?

template<typename T> class A {};
template<typename T>
class B {
                     void f( A<T>& );
};
template<typename T>
void B::f( A<T>& ) {} //нормально

va bene anche così. E la cosa principale è che prima (nella build 2085) tutto si è compilato normalmente - senza errori!

 

Buon pomeriggio, cari esperti!

Potreste dirmi se è possibile impostare il breakpoint per attivarsi in un certo momento (in una certa barra) durante il debug? Cioè, voglio che la storia sia inoltrata in un certo posto, e in quel posto si innescherebbe un breakpoint e sarei in grado di passare attraverso il debugger sulla barra di cui ho bisogno.

 

Avviato un EA nel tester, netting. Non ho avuto molto a che fare con i limiti, la mia domanda riguarda BuyLimit, con inversione di posizione.
Scivolano davvero dalla parte migliore o dipende dal broker? O è la cosa sbagliata nel tester?

E per qualche ragione la linea di posizione Sell non terminava al limite abbattuto, ma andava oltre il bordo dello schermo.


 
1.C'è un comando "DatabaseImport", nella documentazione alla spiegazione delle bandiere dei parametri non ci sono proprio queste bandiere. Provato sia "0" che i parametri di DatabaseExport, la compilazione va, ma all'esecuzione restituisce l'errore 5131. Non c'è questo errore nella documentazione. Qualcuno sa cosa sia questo errore? Cosa c'è di sbagliato nella linea;
DatabaseImport(db,"hist",FilenameHist,DATABASE_IMPORT_HEADER | DATABASE_IMPORT_CRLF | DATABASE_IMPORT_APPEND,";",0,"");

2. Perché la linea
         i=DatabaseExport(db,"select * from hist",FilenameHist,DATABASE_EXPORT_HEADER | DATABASE_EXPORT_CRLF | DATABASE_EXPORT_APPEND,";");
opere e
i=DatabaseExport(db,"hist",FilenameHist,DATABASE_EXPORT_HEADER | DATABASE_EXPORT_CRLF | DATABASE_EXPORT_APPEND,";");
no? Con quello che dice la documentazione
long  DatabaseExport( 
   int           database,           // хендл базы данных, полученный в DatabaseOpen 
   const string  table_or_sql,       // 




имя таблицы  или SQL-запрос 
   const string  filename,           // имя CSV-файла для экспорта данных 
   uint          flags,              // комбинация флагов 
   const string  separator           // разделитель данных в CSV-файле 
   );
 

cioè il nome della tabella dovrebbe essere riconosciuto! Cosa c'è che non va?


w.s. Signori sviluppatori quale decimo occhio dovrebbe indovinare che la tabella dove sarà fatta l'importazione non dovrebbe esistere? E perché avete bisogno di esportare l'importazione se la cartella in cui potete salvaremql5/files è cancellata all'avvio? Come si può lavorare con un file permanente? O è sempre necessario iniziare attraverso il debug e avere il tempo di inserire il file necessario prima dell'inizializzazione? Cos'è ....
 
AlexInRush:

Buon pomeriggio, cari esperti!

Potreste dirmi se è possibile impostare il breakpoint per attivarsi in un certo momento (in una certa barra) durante il debug? Cioè, voglio che la storia venga inoltrata in un certo punto, e in quel punto scatterebbe un punto di interruzione, e sarei in grado di passare attraverso il debugger sulla barra di cui ho bisogno.

Nello strategy tester, subito dopo l'inizio, si mette in pausa e il campo "Scorri verso" è sulla destra. Il campo più a destra è quello in cui si inserisce l'ora in cui si vuole correre. Di conseguenza, ci si ferma nel momento in cui è necessario, e poi si mette un punto di interruzione nel codice e se ne tiene traccia.
 
Alexandr Koptelov:
1.C'è un comando "DatabaseImport", nella documentazione alla spiegazione delle bandiere dei parametri non ci sono proprio queste bandiere. Provato sia "0" che i parametri di DatabaseExport, la compilazione va, ma all'esecuzione restituisce un errore 5131. Non c'è questo errore nella documentazione. Qualcuno sa cosa sia questo errore? Cosa c'è di sbagliato nella linea; ?
2. Perché la linea funziona e non funziona? Con quello che dice la documentazione

cioè il nome della tabella dovrebbe essere riconosciuto! Cosa c'è che non va?


s.w. Signori sviluppatori quale decimo occhio dovrebbe indovinare che la tabella in cui verrà eseguita l'importazione non dovrebbe esistere? E perché avete bisogno di esportare l'importazione se la cartella in cui potete salvaremql5/filesè cancellata all'avvio? Come si può lavorare con un file permanente? O è sempre necessario iniziare attraverso il debug e avere il tempo di inserire il file necessario prima dell'inizializzazione? Cos'è ....

Lavorare in un tester o debugger con la base collocata in una cartella condivisa.

 
AlexInRush:

Buon pomeriggio, cari esperti!

Potreste dirmi se è possibile impostare un punto di interruzione che si attivi in un certo momento (su una certa barra) durante il debug? Cioè, voglio che la storia sia attiva fino a un certo punto e poi un breakpoint dovrebbe scattare in quel punto, così posso passare attraverso il debugger sulla barra che mi serve.

Impostare la condizione

if(TimeCurrent() == nnnTime)
  DebugBreak();
e iniziare il debug. Non appena il tempo raggiunge il tempo specificato, il debug si fermerà e dopo tutte le manipolazioni premete Shift+F11 per continuare il tester.
 

Non c'è modo di abilitare la stampa in modalità di ottimizzazione? L'opzione "Full optimisation logs" è abilitata, ma solo Print da OnInit entra nei logs, mentre ne ho bisogno da OnTester, per esempio.

 
Errore di compilazione
#define  MACRO( X ) aaa##X = X
#define  bbb  5
void OnStart()
{
    int MACRO(         bbb );
    printf( "%d",   aaabbb ); //Error: 'aaabbb' - undeclared identifier
}

E in C++ va bene. ## ha una priorità più alta - bbb viene sostituito prima, e poi bbb viene sostituito da 5, che non è come dovrebbe finire:

    int aaa5 = 5; //неправильно (*)

È così che dovrebbe essere:

    int aaabbb = 5; //правильно (**)

A causa di questo errore, un'operazione di routine non può essere sostituita da una macro. (*) può essere ottenuto da un'altra forma di record se necessario, ma (**) non può essere ottenuto in MQL in nessun modo