Любые вопросы от ПРОФИ к СУПЕРПРОФИ - 1. - страница 40

 
olyakish:

можно пример какую цифру ставите

20 или 0,00020 ?


Конечно, 20! Всегда устанавливается в пунктах:

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

Но этого мало для 5-знака! Выше уже советовали, разумно более спреда, а лучше двойной спред!

 
borilunad:

Конечно, 20! Всегда устанавливается в пунктах:

Но этого мало для 5-знака! Выше уже советовали, разумно более спреда, а лучше двойной спред!

Спасибо я в курсе. Вы ответили на вопрос который был адресован не Вам.

 
olyakish:

Спасибо я в курсе. Вы ответили на вопрос который был адресован не Вам.


Извините, не знал, что экзаменуете! ;)
 

Есть ли в терминале режим, в котором он пишет логфайл крашей?

Я имею ввиду тихих крашей, когда терминал без ошибки просто закрывается.

Хочеться найти причину по которой иногда терминал вылетает на оптимизации. Статегия использует dll. Весь код обернут в try - catch, со своим логированием, но оно не показывает каких либо ошибок, тем не менее терминал иногда падает при массивных генетиках. Общая система не выявлена, может упасть на 100 итерациях, а может выжить и на 10 000, с абсолютно идентичным набором и диапазоном параметров.

Диспетчер задач не показывает утечки памяти (понимаю, что для таких целей средство то еще, но все же). 

 
TomKein:

Есть ли в терминале режим, в котором он пишет логфайл крашей?

Я имею ввиду тихих крашей, когда терминал без ошибки просто закрывается.

Хочеться найти причину по которой иногда терминал вылетает на оптимизации. Статегия использует dll. Весь код обернут в try - catch, со своим логированием, но оно не показывает каких либо ошибок, тем не менее терминал иногда падает при массивных генетиках. Общая система не выявлена, может упасть на 100 итерациях, а может выжить и на 10 000, с абсолютно идентичным набором и диапазоном параметров.

Диспетчер задач не показывает утечки памяти (понимаю, что для таких целей средство то еще, но все же). 

По-моему, dll в тестере не работает, чтобы не тормозило процесс! 
 

Зачем писать то, о чем понятия не имеете?

 
TomKein:

Есть ли в терминале режим, в котором он пишет логфайл крашей?

Если терминал уведомляет о креше, можно сделать дамп ручками и потом по нему разбираться.

Если терминал просто закрывается, без окна уведомления о креше, тогда запись дампа придется реализовывать самому. Я в свое время вытащил из хромиума один проектик, называется он breakpad, не очень сложно подключается практически к любому проекту и вполне надежно пишет дампы. В свое время так дллку и дебажил для терминала.

 

Существует ли способ получить имя переменной в виде строки?

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:

Существует ли способ получить имя переменной в виде строки?

В MQL такого нет. Если возникает такая задача, то делаю следующим образом:

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);
}
Причина обращения: