Закрытая тема
30.01.2014, 12:33
Аватар для borobor
borobor borobor вне форума Элитный участник
Регистрация: 03.05.2009 / Адрес: новосибирск / Сообщений: 935
Поблагодарили 1,556 раз(а) / Репутация: 1567
попробуйте вот так
30.01.2014, 13:01
Аватар для AlexeyVik
AlexeyVik AlexeyVik вне форума Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,660
Поблагодарили 3,789 раз(а) / Репутация: 3781
Ты сейчас станешь ругаться на метаквотов, но приоритет операции || выше, чем у &&. Скобки придется поставить.
Перефразировав старую поговорку можно сказать так. Скажи мне свой ник и я скажу кто ты.
Я сейчас обращался к метаквотам с проблемой по объекту Lable в новом едиторе, ну так всё с примерами и скринами разъяснили. Никаких вопросов не осталось. А хамят они видимо тем кто хамит им.

Каждый относится к людям так, как он хочет чтобы к нему относились.
30.01.2014, 14:04
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,035 раз(а) / Репутация: 9035
Ты сейчас станешь ругаться на метаквотов, но приоритет операции || выше, чем у &&. Скобки придется поставить.
Где именно?
30.01.2014, 14:05
Аватар для eevviill
eevviill eevviill вне форума Заблокирован
За второе место в конкурсе 

Регистрация: 30.07.2009 / Сообщений: 5,474
Поблагодарили 9,035 раз(а) / Репутация: 9035
Сообщение от: Sergey55555555
Код:
if(Day()==23 && (Hour()==15 && Minute()>=30 ||
 Hour()==16 && Minute()<30)) return;
Но ведь тогда в каждом месяце будет пауза 23-го с 15-30 до 16-30?

Хотелось бы указывать конкретные даты, например:

07 Июля 2013 с 22-00 до 08 Июля 2013 до 09-00.
Тогда добавь ещё
Year() и Mounth()
30.01.2014, 14:57
Аватар для qqmber
qqmber qqmber вне форума Почётный гражданин
Регистрация: 20.01.2013 / Сообщений: 530
Поблагодарили 386 раз(а) / Репутация: 386
Где именно?
if(DayOfWeek()==5 && ( (Hour()==15 && Minute()>=30) || (Hour()==16 && Minute()<30) )) return;

В новом билде, который выйдет в понедельник, приоритет поменяют.
30.01.2014, 15:02
Аватар для qqmber
qqmber qqmber вне форума Почётный гражданин
Регистрация: 20.01.2013 / Сообщений: 530
Поблагодарили 386 раз(а) / Репутация: 386
Сообщение от: Sergey55555555
Код:
if(Day()==23 && (Hour()==15 && Minute()>=30 ||
 Hour()==16 && Minute()<30)) return;
Но ведь тогда в каждом месяце будет пауза 23-го с 15-30 до 16-30?

Хотелось бы указывать конкретные даты, например:

07 Июля 2013 с 22-00 до 08 Июля 2013 до 09-00.
В этом случае удобнее получить границы в абсолютных секундах через StrToTime() и проверять TimeCurrent().
30.01.2014, 15:08
Аватар для Sergey55555555
Sergey55555555 Sergey55555555 на форуме Почётный гражданин
Регистрация: 26.07.2013 / Сообщений: 365
Поблагодарили 341 раз(а) / Репутация: 336
if(DayOfWeek()==5 && ( (Hour()==15 && Minute()>=30) || (Hour()==16 && Minute()<30) )) return;

В новом билде, который выйдет в понедельник, приоритет поменяют.
Что-то не работает не этот, не этот вариант:


int start()
{
if(Day()==23 && (Hour()==15 && Minute()>=30 ||
Hour()==16 && Minute()<30)) return;


Компилируется без проблем, а торговлю не запрещает.
30.01.2014, 15:13
Аватар для qqmber
qqmber qqmber вне форума Почётный гражданин
Регистрация: 20.01.2013 / Сообщений: 530
Поблагодарили 386 раз(а) / Репутация: 386
Сообщение от: Sergey55555555
Что-то не работает не этот, не этот вариант:

Код:
int start()
  {
if(Day()==23 && (Hour()==15 && Minute()>=30 ||
 Hour()==16 && Minute()<30)) return;
Компилируется без проблем, а торговлю не запрещает.
Ты мне за что спасибку кинул, если даже не стал смотреть, как стоят скобки?
30.01.2014, 15:17
Аватар для Sergey55555555
Sergey55555555 Sergey55555555 на форуме Почётный гражданин
Регистрация: 26.07.2013 / Сообщений: 365
Поблагодарили 341 раз(а) / Репутация: 336
Ты мне за что спасибку кинул, если даже не стал смотреть, как стоят скобки?
((Hour()==1 && Minute()>=30) || (Hour()==23 && Minute()<30)))


Я попробовал оба варианта.
Доп. скобки перед Hour и после Minute()<30
30.01.2014, 15:35
Аватар для qqmber
qqmber qqmber вне форума Почётный гражданин
Регистрация: 20.01.2013 / Сообщений: 530
Поблагодарили 386 раз(а) / Репутация: 386
Сообщение от: Sergey55555555
((Hour()==1 && Minute()>=30) || (Hour()==23 && Minute()<30)))


Я попробовал оба варианта.
Доп. скобки перед Hour и после Minute()<30
Ты словами лучше скажи, чего пытаешься добиться. Вот это твое выражение, если лишнюю правую скобку убрать, будет истиной между 23:00 - 23:29 и 01:30 - 01:59. Если это if() return; то только в это время и будет стопориться торговля. Этого хотел?
30.01.2014, 15:45
Аватар для Sergey55555555
Sergey55555555 Sergey55555555 на форуме Почётный гражданин
Регистрация: 26.07.2013 / Сообщений: 365
Поблагодарили 341 раз(а) / Репутация: 336
Ты словами лучше скажи, чего пытаешься добиться. Вот это твое выражение, если лишнюю правую скобку убрать, будет истиной между 23:00 - 23:29 и 01:30 - 01:59. Если это if() return; то только в это время и будет стопориться торговля. Этого хотел?
Ок.
Я хочу заблокировать торговлю в заранее
указанные часы определённых дней из истории (NFP, ФРС, Драги).
Дни и часы я возьму из эконом календаря.

Цель:
Провести оптимизацию без этих "шипов".
30.01.2014, 15:50
Аватар для AlexeyVik
AlexeyVik AlexeyVik вне форума Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,660
Поблагодарили 3,789 раз(а) / Репутация: 3781
if(DayOfWeek()==5 && ( (Hour()==15 && Minute()>=30) || (Hour()==16 && Minute()<30) )) return;

В новом билде, который выйдет в понедельник, приоритет поменяют.
Откуда такая информация? Я что-то пропустил?
30.01.2014, 16:00
Аватар для qqmber
qqmber qqmber вне форума Почётный гражданин
Регистрация: 20.01.2013 / Сообщений: 530
Поблагодарили 386 раз(а) / Репутация: 386
Сообщение от: Sergey55555555
Ок.
Я хочу заблокировать торговлю в заранее
указанные часы определённых дней из истории (NFP, ФРС, Драги).
Дни и часы я возьму из эконом календаря.

Цель:
Провести оптимизацию без этих "шипов".
Так понятно?
Код:
extern string halt="2013.07.07 22:00";
extern string go="2013.07.08 09:00";
datetime timehalt;
datetime timego;

int init() {
timehalt=StrToTime(halt);
timego=StrToTime(go);
}
int start() {
if(TimeCurrent()>timehalt && TimeCurrent()<timego) return;
//...
}
Это для одного события.
30.01.2014, 16:07
Аватар для qqmber
qqmber qqmber вне форума Почётный гражданин
Регистрация: 20.01.2013 / Сообщений: 530
Поблагодарили 386 раз(а) / Репутация: 386
Откуда такая информация? Я что-то пропустил?
Теперь приоритеты будут как в С стандарте, && будет связывать сильнее, чем ||, и будет ранний возврат вычисления логических выражений.
30.01.2014, 16:15
Аватар для Sergey55555555
Sergey55555555 Sergey55555555 на форуме Почётный гражданин
Регистрация: 26.07.2013 / Сообщений: 365
Поблагодарили 341 раз(а) / Репутация: 336
Так понятно?
Код:
extern string halt="2013.07.07 22:00";
extern string go="2013.07.08 09:00";
datetime timehalt;
datetime timego;

int init() {
timehalt=StrToTime(halt);
timego=StrToTime(go);
}
int start() {
if(TimeCurrent()>timehalt && TimeCurrent()<timego) return;
//...
}
Это для одного события.
Да, я уже проверил - работает

Для нескольких просто добавляю строчки и меняю даты?
Код:
extern string halt="2013.07.07 22:00";
extern string go="2013.07.08 09:00";
30.01.2014, 16:27
Аватар для AlexeyVik
AlexeyVik AlexeyVik вне форума Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,660
Поблагодарили 3,789 раз(а) / Репутация: 3781
Сообщение от: Sergey55555555
Да, я уже проверил - работает

Для нескольких просто добавляю строчки и меняю даты?
Код:
extern string halt="2013.07.07 22:00";
extern string go="2013.07.08 09:00";
Но если внимательно прочесть справку http://docs.mql4.com/ru/convert/StrToTime то получается что добавлять отдельную строку на каждое событие не надо, если эти события происходят регулярно по пятницам, например.
Если StrToTime("17:35"); // возврат текущей даты с указанным временем
То TimeDayOfWeek(StrToTime("17:35")); // Будет сегодняшний день недели
И соответственно:
if(TimeDayOfWeek(StrToTime("17:35")) == 5 && TimeCurrent() > StrToTime("17:35"))
Будет означать: если сегодня пятница и текущее время больше 17:35
Дальше делай выводы кто дебил метаквоты или тот кто их так называет...
30.01.2014, 16:36
Аватар для Sergey55555555
Sergey55555555 Sergey55555555 на форуме Почётный гражданин
Регистрация: 26.07.2013 / Сообщений: 365
Поблагодарили 341 раз(а) / Репутация: 336
Но если внимательно прочесть справку http://docs.mql4.com/ru/convert/StrToTime то получается что добавлять отдельную строку на каждое событие не надо, если эти события происходят регулярно по пятницам
Не регулярно, и не только по пятницам.
Драги выступает когда угодно, NFP раз в месяц - в первую пятницу,
ФРС и ставки ЦБ в разные дни.
Для будущих событий есть ньюс-фильтр, мне надо именно по истории.
30.01.2014, 16:40
Аватар для qqmber
qqmber qqmber вне форума Почётный гражданин
Регистрация: 20.01.2013 / Сообщений: 530
Поблагодарили 386 раз(а) / Репутация: 386
Сообщение от: Sergey55555555
Не регулярно, и не только по пятницам.
Драги выступает когда угодно, NFP раз в месяц - в первую пятницу,
ФРС и ставки ЦБ в разные дни.
Для будущих событий есть ньюс-фильтр, мне надо именно по истории.
Ну ты себе нетривиальную задачу поставил. Импортировать рабочий календарь Драги и Бернанки и проверять каждый раз, не идет ли кто к трибуне
Можно, но не элементарно.
30.01.2014, 16:47
Аватар для Sergey55555555
Sergey55555555 Sergey55555555 на форуме Почётный гражданин
Регистрация: 26.07.2013 / Сообщений: 365
Поблагодарили 341 раз(а) / Репутация: 336
Ну ты себе нетривиальную задачу поставил. Импортировать рабочий календарь Драги и Бернанки и проверять каждый раз, не идет ли кто к трибуне
Можно, но не элементарно.

Будущие выступления известны заранее в открытом доступе
_http://www.myfxbook.com/forex-economic-calendar?oid=42567
и легко блокируются ньюс-фильтрами

А прошедшие там тоже есть, и уже с отфиксированными датами и временем
30.01.2014, 16:54
Аватар для AlexeyVik
AlexeyVik AlexeyVik вне форума Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,660
Поблагодарили 3,789 раз(а) / Репутация: 3781
Сообщение от: Sergey55555555
Не регулярно, и не только по пятницам.
Драги выступает когда угодно, NFP раз в месяц - в первую пятницу,
ФРС и ставки ЦБ в разные дни.
Для будущих событий есть ньюс-фильтр, мне надо именно по истории.
Я тебе привёл пример как уйти от множества лишних внешних параметров.
Пример второй: Если нужно определить только первую пятницу, то...
если пятница и число месяца, TimeDay(StrToTime("17:35")) < 8, значит это пятница первой недели.
Закрытая тема

Метки
mql программирование, дописать индикатор, дописать эксперт, доработать советник, форекс программирование


Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Выкл.
Pingbacks are Выкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помощь профессионального программиста в написании МТС индикаторов советников. cmillion Поиск программиста, поиск заказов 96 05.09.2017 08:20
Написание экспертов, индикаторов. Улсуги VPS для ваших советников. RL.Maxim Temp, корзина, реклама 5 31.10.2009 21:55
Написание советников, индикаторов, скриптов для MT4 по Вашему ТЗ Impish Поиск программиста, поиск заказов 0 04.04.2009 21:30


Текущее время: 06:47. Часовой пояс GMT.


Перевод: zCarot
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO