Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
В ходе тестирования советника случайно наткнулся на некорректную, по моему мнению, работу функции Sleep() в тестере. Суть в следующем:
советник закрывает все позиции в 23:00, если суммарный профит больше заданного (функция CloseAll()). После закрытия очередной позиции выполняется задержка 10 сек. в виде Sleep(10000).
Вот что имеем в журнале:
FP 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:04 CloseAll Profit: 3030.66JD 0 Trade 04:31:04 instant sell 0.80 EURAUD at 1.56474 (1.56474 / 1.56558 / 1.56474)
JH 0 Trades 04:31:04 deal #85 sell 0.80 EURAUD at 1.56474 done (based on order #85)
HL 0 Trade 04:31:04 deal performed [#85 sell 0.80 EURAUD at 1.56474]
HI 0 Trade 04:31:04 order performed sell 0.80 at 1.56474 [#85 sell 0.80 EURAUD at 1.56474]
QE 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:04 Position by EURAUD to be closed
PN 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:04 23:0:0
FG 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:04 Sleep 10 cek.
RO 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:04 23:0:0
QD 0 Trade 04:31:04 instant buy 1.00 USDJPY at 90.444 (90.417 / 90.444 / 90.417)
NS 0 Trades 04:31:04 deal #86 buy 1.00 USDJPY at 90.444 done (based on order #86)
MJ 0 Trade 04:31:04 deal performed [#86 buy 1.00 USDJPY at 90.444]
JS 0 Trade 04:31:04 order performed buy 1.00 at 90.444 [#86 buy 1.00 USDJPY at 90.444]
JL 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:04 Position by USDJPY to be closed
JI 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:04 23:0:0
PN 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:04 Sleep 10 cek.
DF 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:04 23:0:0
QN 0 Trade 04:31:04 instant buy 0.80 AUDUSD at 0.90001 (0.89967 / 0.90001 / 0.89967)
IH 0 Trades 04:31:04 deal #87 buy 0.80 AUDUSD at 0.90001 done (based on order #87)
KQ 0 Trade 04:31:04 deal performed [#87 buy 0.80 AUDUSD at 0.90001]
RL 0 Trade 04:31:04 order performed buy 0.80 at 0.90001 [#87 buy 0.80 AUDUSD at 0.90001]
EG 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:04 Position by AUDUSD to be closed
LP 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:04 23:0:0
JI 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:04 Sleep 10 cek.
NQ 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:04 23:0:0
Как видим, время до и после задержки одно и то же. Но это происходит, только если минуты и секунды TimeCurrent() == 0.
Если нет, то слип работает нормально. Например:
MD 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:39 CloseAll Profit: 3382.28KQ 0 Trade 04:30:39 instant sell 0.70 EURUSD at 1.44090 (1.44090 / 1.44108 / 1.44090)
IE 0 Trades 04:30:39 deal #27 sell 0.70 EURUSD at 1.44090 done (based on order #27)
CI 0 Trade 04:30:39 deal performed [#27 sell 0.70 EURUSD at 1.44090]
EL 0 Trade 04:30:39 order performed sell 0.70 at 1.44090 [#27 sell 0.70 EURUSD at 1.44090]
DH 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:39 Position by EURUSD to be closed
JR 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:39 23:0:7
MK 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:39 Sleep 10 cek.
EP 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:39 23:0:15
DE 0 Trade 04:30:39 instant sell 0.80 AUDUSD at 0.91951 (0.91951 / 0.91993 / 0.91951)
CJ 0 Trades 04:30:39 deal #28 sell 0.80 AUDUSD at 0.91951 done (based on order #28)
HR 0 Trade 04:30:39 deal performed [#28 sell 0.80 AUDUSD at 0.91951]
HH 0 Trade 04:30:39 order performed sell 0.80 at 0.91951 [#28 sell 0.80 AUDUSD at 0.91951]
LS 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:39 Position by AUDUSD to be closed
QL 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:39 23:0:15
ED 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:39 Sleep 10 cek.
LO 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:39 23:0:25
DD 0 Trade 04:30:39 instant buy 0.60 EURAUD at 1.56727 (1.56632 / 1.56727 / 1.56632)
LN 0 Trades 04:30:39 deal #29 buy 0.60 EURAUD at 1.56727 done (based on order #29)
FK 0 Trade 04:30:39 deal performed [#29 buy 0.60 EURAUD at 1.56727]
IR 0 Trade 04:30:39 order performed buy 0.60 at 1.56727 [#29 buy 0.60 EURAUD at 1.56727]
RM 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:39 Position by EURAUD to be closed
FE 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:39 23:0:25
GN 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:39 Sleep 10 cek.
QE 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:39 23:0:35
Код закрытия позиции:
Вызов функции CloseAll:
Если изменить условие на
то ошибок нет.То есть, моё сообщение не напрасно, как я уже было подумал?
Да. Мы исправили поведение StringToTime. Спасибо.
В ходе тестирования советника случайно наткнулся на некорректную, по моему мнению, работу функции Sleep() в тестере. Суть в следующем:
Открываю я закладку "Новости", а там... - какие-то не те новости. Я что-то упустил?
Установите языки, на котором вы хотите принимать новости.
Установите языки, на котором вы хотите принимать новости.
Да нет же. Там вроде как сыплются "новости" mt5-форума, к новостям Форекс они отношения не имеют. С недавних пор не просто проавтоапдейтился, а скачал дистрибутив mt5 заново и установил, уже почти неделю как. Не знаю, как там было на неделе, потому что в закладку "Новости" не залезал, но вот сейчас обнаружил:
Да нет же. Там вроде как сыплются "новости" mt5-форума, к новостям Форекс они отношения не имеют. С недавних пор не просто проавтоапдейтился, а скачал дистрибутив mt5 заново и установил, уже почти неделю как. Не знаю, как там было на неделе, потому что в закладку "Новости" не залезал, но вот сейчас обнаружил:
Это на нашем демо-сервер транслируются новости сайта MQL5.com взамен отсутствующих форексных новостей (у нас нет права распространять бесплатно чужие новости).
Если не хотите их видеть, то просто отключите соответствующую галочку в разделе категорий новостей в меню по правой клавише мыши.
После автоматического обновления работавший ранее эксперт стал выдавать сообщения, что не может скопировать таймсерии. Проблема была устранена выгрузкой эксперта и его повторной загрузкой. Вопрос: такой результат автоматического обновления следует ожидать всегда или это ошибка терминала, которая будет устранена?
После автоматического обновления работавший ранее эксперт стал выдавать сообщения, что не может скопировать таймсерии. Проблема была устранена выгрузкой эксперта и его повторной загрузкой. Вопрос: такой результат автоматического обновления следует ожидать всегда или это ошибка терминала, которая будет устранена?
Укажите больше деталей (логи, скриншоты и тд), пожалуйста.
Без этого нельзя дать обоснованный ответ.
Укажите больше деталей (логи, скриншоты и тд), пожалуйста.
Без этого нельзя дать обоснованный ответ.
ОК. Демо-счёт на сервере MQ, лог-файл прикреплен (20100729.log), время начала автоматического обновления 20:54, в 22:36 сам удалил эксперт и через минуту загрузил.
В эксперте есть простейшая проверка типа:
Соответственно, после автоматического обновления пошли сообщения (файл 20100729copy.log). В общем-то, такое встречалось и ранее, но как-то не обращал внимания.
После перезагрузки эксперта появились также исчезнувшие линии цен открытия и стоп-лоссов на графике .
Может, что ещё добавить к сказанному?