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

 

Приветствую!

Сегодня опять по XAUUSD советник наторговал по странной цене:

XAUUSD spike 

Сервер AlpariNZ-MT5, демо-счет.

Это что, простой нерыночный выброс цены? Кто-нить сталкивался?

 
Воспользовался профилировщиком, вещь конечно уникальная, раньше такого не встречал, убедился в тяжести графических элементов. Вопрос как наилучшим организовать ту же метку, обновляющуюся каждый тик?
 
vlad_123:

Приветствую!

Сегодня опять по XAUUSD советник наторговал по странной цене:

 

Сервер AlpariNZ-MT5, демо-счет.

Это что, простой нерыночный выброс цены? Кто-нить сталкивался?

Это же демо, был бы реал можно было бы спросить у брокера и на основании его ответа уже задавать вопросы в сервисдеск. А к игрушкам претензий быть не может.
 
Denisimus:
Здравствуйте, пропала вкладка сигналы в МТ4, утром была, вечером пришел и ее нет. И теперь пописка не исполняется, что делать подскажите
Ответ на вашем компьютере скорее всего, можно переустановить терминал.
 
zfs:
Это же демо, был бы реал можно было бы спросить у брокера и на основании его ответа уже задавать вопросы в сервисдеск. А к игрушкам претензий быть не может.

Я бы и на реале от такого 'заскока' не отказался... ;-)

Но подобная ситуация встречается уже не в первый раз, и она путает статистику советника. 

У меня претензий нету, просто интересно - из-за чего это происходит. 

 
vlad_123:

Я бы и на реале от такого 'заскока' не отказался... ;-)

Но подобная ситуация встречается уже не в первый раз, и она путает статистику советника. 

У меня претензий нету, просто интересно - из-за чего это происходит. 

Тестируй на том счете, на котором торгуешь - иначе тесты бесполезны.
 
voix_kas:

Совершенствования чистоты программирования ради хочу поинтересоваться у общественности вот чем.

Предположим, имеется некий флаг (bool Flag), объявленный на глобальном уровне. При наступлении некоторых событий/условий, необходимо установить определённое его значение.

Первый вариант:

Второй вариант:

Какой из вариантов:

1. Быстрее с точки зрения производительности?

2. Если так можно сказать, "более профессионален"?

 

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

Renat:
Конечно первый вариант быстрее. Меньше инструкций, да еще и на одно сравнение/ветвление меньше.

voix_kas:
Спасибо.

Всё-таки решил проверить наверняка. Как ни странно, результаты показывают, что операция сравнения выполняется быстрее операции присваивания.

void OnStart(void) {
  int Count = 1000000000;
  bool Value1 = true;
  uint start = GetTickCount();
  for (int i = 0; i < Count; i++) {
    Value1 = false;
  }
  Print("Without 'if' = " + IntegerToString(GetTickCount() - start));
  start = GetTickCount();
  for (int i = 0; i < Count; i++) {
    if (Value1) Value1 = false;
  }
  Print("With 'if' = " + IntegerToString(GetTickCount() - start));
}

Результат:

2013.04.30 18:35:41     Test (EURUSD,M5)        With 'if' = 1856
2013.04.30 18:35:39     Test (EURUSD,M5)        Without 'if' = 2418
2013.04.30 18:31:03     Test (EURUSD,M5)        With 'if' = 1857
2013.04.30 18:31:02     Test (EURUSD,M5)        Without 'if' = 2418
2013.04.30 18:30:54     Test (EURUSD,M5)        With 'if' = 1888
2013.04.30 18:30:52     Test (EURUSD,M5)        Without 'if' = 2418

Знатоки, не могли бы вы прокомментировать ситуацию?

Документация по MQL5: Основы языка / Операции и выражения / Операции присваивания
Документация по MQL5: Основы языка / Операции и выражения / Операции присваивания
  • www.mql5.com
Основы языка / Операции и выражения / Операции присваивания - Документация по MQL5
 
voix_kas:

Всё-таки решил проверить наверняка. Как ни странно, результаты показывают, что операция сравнения выполняется быстрее операции присваивания.

Результат:

Знатоки, не могли бы вы прокомментировать ситуацию?

Неужели сами не видите, что во втором случае присвоение выполняется только один раз?

То есть, остается лишь сравнение, что гораздо быстрее прямого присвоения, которое есть в первом тесте. Результаты абсолютно верные.

 
Renat:

Неужели сами не видите, что во втором случае присвоение выполняется только один раз?

То есть, остается лишь сравнение, что гораздо быстрее прямого присвоения, которое есть в первом тесте. Результаты абсолютно верные.

Т.е., выходит, что в первый раз я сформулировал свой вопрос иначе?
 
voix_kas:
Т.е., выходит, что в первый раз я сформулировал свой вопрос иначе?

Безусловно.

И очень плохо, что Вы не понимаете таких простых вещей.

Причина обращения: