попробуйте сравнивать даты таким образом:
string date1="2017.12.02";
string date2="2017.12.03";
if(StringToTime(date2)>StringToTime(date1))
{
....
}
про чтение из файла много тем на форуме
к примеру https://www.mql5.com/ru/forum/13394
- 2013.08.12
- www.mql5.com
попробуйте сравнивать даты таким образом:
string date1="2017.12.02";
string date2="2017.12.03";
if(StringToTime(date2)>StringToTime(date1))
{
....
}
про чтение из файла много тем на форуме
к примеру https://www.mql5.com/ru/forum/13394
Не знаю, грамотно ли я сделал с точки зрения программирования, но это работает ))
datetime date1=D'2008.03.01'; datetime date2=D'2009.03.01'; MqlDateTime str1,str2; TimeToStruct(date1,str1); TimeToStruct(date2,str2); int r=str1.year*1000+str1.mon*100+str1.day; int v=str2.year*1000+str2.mon*100+str2.day; if(r>v) { Comment("Data1 больше Date2"); } else { Comment("Data1 меньше Date2"); }
Но получается так что в mql4 нет возможности сравнивать даты.
Как это нет? Берете Дату1 и сравниваете с Датой2 напрямую без всяких преобразований. Ведь это числовые значения, к тому же целые.
Не знаю, грамотно ли я сделал с точки зрения программирования, но это работает ))
С точки зрения программирования все верно, раз компилятор пропустил. А вот с точки зрения математики - нет. По крайней мере, я не могу вспомнить календарь, в котором год состоит из 1000 дней, а месяц - из 100 дней.
Да и зачем date1 и date2 во что-то преобразовывать? Почему нельзя сравнить их между собой?
С точки зрения программирования все верно, раз компилятор пропустил. А вот с точки зрения математики - нет. По крайней мере, я не могу вспомнить календарь, в котором год состоит из 1000 дней, а месяц - из 100 дней.
Да и зачем date1 и date2 во что-то преобразовывать? Почему нельзя сравнить их между собой?
По какой-то мне не ведомой причине, с первого раза у меня не получилось сравнить две даты. Сейчас я перепроверил, и да действительно без преобразования можно сравнивать, спасибо Вам.
По какой-то мне не ведомой причине, с первого раза у меня не получилось сравнить две даты. Сейчас я перепроверил, и да действительно без преобразования можно сравнивать, спасибо Вам.
Наверное там строки были. Их тоже можно сравнивать между собой. Правда правила сравнения и результат немного другие.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Доброго времени суток. Я разрабатываю свою торговую систему, к ней пишу индикатор и встала такая проблема. Для проверки на исторических данных мне надо что бы индикатор подгружал данные их файла.
Пример данных хранящихся в файле:
Дата; Коэффициент
2.01.2017;0.25
12.02.2017;0.35
03.03.2017;0.15
16.04.2017:0.40
Индикатор должен будет взять коэффициент для текущей даты.
Пример: допустим, что текущая дата 3.01.2017 для этой даты коэффициент будет равен 0,25. Т.е до 12.02.2017 для всех дней коэффициент будет 0,25.
Я хотел сделать так:
Открываю файл в переменную записываю
datetime date1=2.01.2017;
double coefficient1=0,25;
datetime date2=12.02.2017;
double coefficient2=0.35;
datetime datelocal=TimeCurrent();
If(datelocal>date1 & datelocal<date2)
{
Comment(coefficient1);
}
Но получается так что в mql4 нет возможности сравнивать даты.
Может быть кто то сталкивался с такими задачами или есть альтернативные ращения ?