Ошибки, баги, вопросы - страница 1689

 
Sergei Vladimirov:

// 'Func' - cannot to apply function template

Ошибку может выдавать build < 1375. В 1430 она уже точно устранена
 
A100:
Ошибку может выдавать build < 1375. В 1430 она уже точно устранена
Опаньки. Я всё это делал в четвёрке, там версия эдитора - 1395. А в пятёрке, в эдиторе 1430 действительно всё работает, спасибо за подсказку.

В четвёрке метаэдитор будет обновлён в обозримом будущем?
 

Какие значения спреда выдает функция CopySpread() для соответствующего периода графика?

Непонятно, то ли средний, минимальный или максимальный, а в справке по функции ничего об этом не сказано.  

 
Sergei Vladimirov:
Опаньки. Я всё это делал в четвёрке, там версия эдитора - 1395. А в пятёрке, в эдиторе 1430 действительно всё работает, спасибо за подсказку.

В четвёрке метаэдитор будет обновлён в обозримом будущем?
А вы откройте свой mq4 в эдиторе 1430 и скомпилируйте его в ex4.
 
fxsaber:
А вы откройте свой mq4 в эдиторе 1430 и скомпилируйте его в ex4.
Я так и сделал. Но: а) невозможно запустить отладку, б) когда отдаёшь работу заказчику вместе с исходниками, у него всё должно компилироваться без бубна.
 

Не могу понять, в файл сохраняется такое вот число

179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368,00

double            m_profit_factor;         // 27) прибыльность


m_profit_factor=TesterStatistics(STAT_PROFIT_FACTOR);

double ProfitFactor(void) const {return m_profit_factor;};

FormatDelimiter(DoubleToString(this.ProfitFactor(),2))+delimiter+ //преобразуем в строковый параметр для записи в файл

код примерный - не мой- делал фрилансер и в дальнейшей поддержке отказал, вот и не могу понять как поправить.

Ситуация возникает если есть прибыль, но нет убытка, получается деление на ноль по идеи, но это же должно бытьрешеноне таким зверским числом в стандартной функции....нет? 

 
-Aleks-:

Не могу понять, в файл сохраняется такое вот число

179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368,00

double            m_profit_factor;         // 27) прибыльность


m_profit_factor=TesterStatistics(STAT_PROFIT_FACTOR);

double ProfitFactor(void) const {return m_profit_factor;};

FormatDelimiter(DoubleToString(this.ProfitFactor(),2))+delimiter+ //преобразуем в строковый параметр для записи в файл

код примерный - не мой- делал фрилансер и в дальнейшей поддержке отказал, вот и не могу понять как поправить.

Ситуация возникает если есть прибыль, но нет убытка, получается деление на ноль по идеи, но это же должно бытьрешеноне таким зверским числом в стандартной функции....нет? 

#define MNOGO 123

FormatDelimiter(DoubleToString(MathMin(this.ProfitFactor(), MNOGO),2))+delimiter+ //преобразуем в строковый параметр для записи в файл
 
fxsaber:
Спасибо - интересная идея., но хотелось бы в такой ситуации получить единичку, как нейтральный показатель - такое бывает редко, а при анализе результатов оптимизации портиться вся статистика.
 

думая так сделаю

 if (TesterStatistics(STAT_PROFIT_FACTOR)>10000) m_profit_factor=1;

else  m_profit_factor=0;

просто думал, что проблема при записи возникает...
 
-Aleks-:
Спасибо - интересная идея., но хотелось бы в такой ситуации получить единичку, как нейтральный показатель - такое бывает редко, а при анализе результатов оптимизации портиться вся статистика.
double ProfitFactor(void) const {return(m_profit_factor == DBL_MAX ? 1 : m_profit_factor);};