Итак, ситуация такая: имеется структура даты, из нее на одном из этапов вычитаются либо дни либо часы либо минуты либо месяцы(ну или прибавляются), в итоге получаются отрицательные значения типа -335.05.2012 00:-615:00(или в случае прибавления 650 января 360 часов 250 минут) . Их нужно преобразовать в норм дату. Вот пока что придумал такое
void ReconstructTimeStruct(MqlDateTime &sTime)
{
while(sTime.min<0)
{
sTime.min=59-fabs(sTime.min);
sTime.hour--;
}
while(sTime.min>=60)
{
sTime.min=sTime.min-60;
sTime.hour++;
}
while(sTime.hour<0)
{
sTime.hour=23-fabs(sTime.hour);
sTime.day--;
}
while(sTime.hour>=24)
{
sTime.hour=sTime.hour-24;
sTime.day++;
}
while(sTime.day<1)
{
if(sTime.mon>1)
{
sTime.mon--;
sTime.day=GetDaysInMonthByMonthAndYear(sTime.mon,sTime.year)-fabs(sTime.day); //GetDaysInMonthByMonthAndYear получает количество дней в месяце с учетом месяца и високосный ли год
}
else
{
sTime.mon=12;
sTime.year--;
sTime.day=GetDaysInMonthByMonthAndYear(sTime.mon,sTime.year)-fabs(sTime.day);
}
}
while(sTime.day>GetDaysInMonthByMonthAndYear(sTime.mon,sTime.year))
{
if(sTime.mon<12)
{
sTime.mon++;
sTime.day=sTime.day-GetDaysInMonthByMonthAndYear(sTime.mon,sTime.year);
}
else
{
sTime.mon=1;
sTime.year++;
sTime.day=sTime.day-GetDaysInMonthByMonthAndYear(sTime.mon,sTime.year);
}
}
while(sTime.mon<1)
{
sTime.year--;
sTime.mon=12-fabs(sTime.mon);
}
while(sTime.mon>12)
{
sTime.year++;
sTime.mon=sTime.mon-12;
}
}
вобщем не знаю либо я дурак либо лыжи не летают. иногда случаются зацикливания и на месяце работа некорректная.
может кто подскажет в чем косяк?
или же кто то подскажет алгоритм поиска времени открытия свечи по дате, в том числе не сформированной свечи, с возможностью шифтинга(0-текущая свеча, -1 - свеча слева, 1 - свеча справа)?
8. Terminal: Сигналы. Исправлено отображение информации о сигнале и зависание навигации между сигналами при работе под Wine.
[...]
Что-то в терминале сломали в последней сборке. Теперь через несколько секунд после старта он сам по себе виснет напрочь ( pipe wait ) и убивается только через системный монитор. Сборки 695 и 705 работали небезупречно, но в целом нормально. ОС linux mint 12 ( lisa ), wine-1.4. Лог терминала ОС в прицепе. Может, чем поможет. Сам терминал МТ никаких логов не оставляет -- после умерщвления через монитор папки логов пустые.
Хотелось бы видеть обновляж всё же с возможностью отключения, например, через ключ командной строки вроде '/noupdate'. Тогда хоть как-то можно будет работать до очередного косяка.
Функция OnTesterInit() является обработчиком события TesterInit, которое автоматически генерируется перед началом оптимизации эксперта в тестере стратегий.
Так эта функция вызывается только при Оптимизация=CustomMax ?
Я сначала подумал из описания, что она вообще всегда из тестера вызывается... жаль, что это не так...
Функция OnTesterInit() является обработчиком события TesterInit, которое автоматически генерируется перед началом оптимизации эксперта в тестере стратегий.
Так эта функция вызывается только при Оптимизация=CustomMax ?
Я сначала подумал из описания, что она вообще всегда из тестера вызывается... жаль, что это не так...
Что означает Оптимизация=CustomMax ?
И опишите, чего Вам не хватает. Что бы Вы хотели получить?
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Итак, ситуация такая: имеется структура даты, из нее на одном из этапов вычитаются либо дни либо часы либо минуты либо месяцы(ну или прибавляются), в итоге получаются отрицательные значения типа -335.05.2012 00:-615:00(или в случае прибавления 650 января 360 часов 250 минут) . Их нужно преобразовать в норм дату. Вот пока что придумал такое
вобщем не знаю либо я дурак либо лыжи не летают. иногда случаются зацикливания и на месяце работа некорректная.
может кто подскажет в чем косяк?
или же кто то подскажет алгоритм поиска времени открытия свечи по дате, в том числе не сформированной свечи, с возможностью шифтинга(0-текущая свеча, -1 - свеча слева, 1 - свеча справа)?
Именно, но я бы сделал по другому... так если условие сошлось то следующую проверку уже делать не нужно.
Большая часть годов выйдет по первой проверке как false,
Вообще нормальный компилятор если первое условие false - остальные && проверять не станет
правда не знаю как с этим у МE5
Сервис "Хранилище" планируют создавать для четверки?
Вообще нормальный компилятор если первое условие false - остальные && проверять не станет
правда не знаю как с этим у МE5
Так же. Короткие проверки условий.
// В четвёрке длинные (полные)
// В четвёрке длинные (полные)
MetaTrader 5 Client Terminal build 712
[...]
8. Terminal: Сигналы. Исправлено отображение информации о сигнале и зависание навигации между сигналами при работе под Wine.
[...]
Что-то в терминале сломали в последней сборке. Теперь через несколько секунд после старта он сам по себе виснет напрочь ( pipe wait ) и убивается только через системный монитор. Сборки 695 и 705 работали небезупречно, но в целом нормально. ОС linux mint 12 ( lisa ), wine-1.4. Лог терминала ОС в прицепе. Может, чем поможет. Сам терминал МТ никаких логов не оставляет -- после умерщвления через монитор папки логов пустые.
Хотелось бы видеть обновляж всё же с возможностью отключения, например, через ключ командной строки вроде '/noupdate'. Тогда хоть как-то можно будет работать до очередного косяка.
OnTesterInit
Функция OnTesterInit() является обработчиком события TesterInit, которое автоматически генерируется перед началом оптимизации эксперта в тестере стратегий.
Так эта функция вызывается только при Оптимизация=CustomMax ?
Я сначала подумал из описания, что она вообще всегда из тестера вызывается... жаль, что это не так...
OnTesterInit
Функция OnTesterInit() является обработчиком события TesterInit, которое автоматически генерируется перед началом оптимизации эксперта в тестере стратегий.
Так эта функция вызывается только при Оптимизация=CustomMax ?
Я сначала подумал из описания, что она вообще всегда из тестера вызывается... жаль, что это не так...
Что означает Оптимизация=CustomMax ?
И опишите, чего Вам не хватает. Что бы Вы хотели получить?
Так эта функция вызывается только при Оптимизация=CustomMax ?