Qualsiasi domanda da un PROFI a un SUPER PROFI - 1. - pagina 40

 
olyakish:

puoi darmi un esempio di quale numero hai impostato

20 o 0,00020 ?


Naturalmente 20! È sempre impostato in punti:

   int      slippage,            // проскальзывание

Ma questo non basta per uno spread a 5 cifre! Come già consigliato sopra, più spread è ragionevole, o meglio ancora il doppio dello spread!

 
borilunad:

Certo, 20! Sempre impostato in punti:

Ma questo non basta per uno spread a 5 cifre! Consigliato sopra, più spread è sensato, o meglio ancora raddoppiare lo spread!

Grazie, ne sono consapevole. Hai risposto a una domanda che non era rivolta a te.

 
olyakish:

Grazie, ne sono consapevole. Hai risposto a una domanda che non era rivolta a te.


Scusa, non sapevo che stessi facendo un esame! ;)
 

C'è una modalità nel terminale in cui registra i crash?

Intendo crash silenziosi, quando il terminale si chiude semplicemente senza un errore.

Voglio trovare il motivo per cui il terminale a volte si blocca durante l'ottimizzazione. La strategia usa il dll. Tutto il codice è avvolto in try - catch, con il suo proprio logging, ma non mostra alcun errore, tuttavia il terminale si blocca a volte con una genetica massiccia. Il sistema complessivo non è rilevabile, può andare in crash su 100 iterazioni, o può sopravvivere su 10.000, con set e gamma di parametri assolutamente identici.

Il Task Manager non mostra alcuna perdita di memoria (capisco che non è lo strumento migliore per tali scopi, ma comunque).

 
TomKein:

C'è una modalità nel terminale in cui registra i crash?

Intendo crash silenziosi, quando il terminale si chiude semplicemente senza un errore.

Voglio trovare il motivo per cui il terminale a volte si blocca durante l'ottimizzazione. La strategia usa il dll. Tutto il codice è avvolto in try - catch, con il suo proprio logging, ma non mostra alcun errore, tuttavia il terminale si blocca a volte con una genetica massiccia. Il sistema complessivo non è rilevabile, può bloccarsi su 100 iterazioni, o può sopravvivere su 10.000, con set e gamma di parametri assolutamente identici.

Il Task Manager non mostra alcuna perdita di memoria (capisco che non è lo strumento migliore per tali scopi, ma comunque).

Secondo me, la dll nel tester non funziona, quindi non rallenta il processo!
 

Perché scrivere qualcosa di cui non si ha idea?

 
TomKein:

Il terminale ha una modalità in cui registra i crash?

Se il terminale vi avvisa del crash, potete fare il dump manualmente e poi usarlo per capirlo.

Se il terminale si chiude semplicemente senza la finestra di notifica di crash, dovete fare il dump da soli. Ho un progetto chiamato breakpad da chrome, non è troppo difficile da collegare a quasi tutti i progetti e scrive i dump in modo affidabile. Una volta ho fatto il debug della dll per il terminale in questo modo.

 

C'è un modo per ottenere il nome della variabile come stringa?

int varTakeProfit = 1;
Print( VarName( varTakeProfit ), " = ", varTakeProfit ); // varTakeProfit = 1

string VarName( int Var )
{
   ???
}
 
#define  VarName(x) #x


int varTakeProfit = 1;
Print( VarName( varTakeProfit ), " = ", varTakeProfit ); //  varTakeProfit = 1

 
Andrey Khatimlianskii:

C'è un modo per ottenere il nome della variabile come stringa?

Non esiste una cosa del genere in MQL. Se si presenta un tale compito, faccio quanto segue:

struct ValueAndName
{
   double   fValue;                     // Значение переменной
   string   sName;                      // Имя переменной

   ValueAndName(double _fValue, string _sName)
   {
      SetData(_fValue, _sName);
   }

   void SetData(double _fValue, string _sName)
   {
      fValue = _fValue;
      sName = _sName;
   }
};

VarAndName g_stVarTakeProfit(12.0, "VarTakeProfit");
VarAndName g_stVarStopLoss(20.0, "VarStopLoss");

void OnStart()
{
  Print("Значение переменной ", g_stVarTakeProfit.sName, " равно: ", g_stVarTakeProfit.fValue);
  Print("Значение переменной ", g_stVarStopLoss.sName, " равно: ", g_stVarStopLoss.fValue);
}