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

 
Alexander:

Какой номер заявки?

Открыта, Начата: 2016.08.04 02:13, #1530548


Кстати... а почему ссылки перестали работать?

Описание проблемы

здесь https://www.mql5.com/ru/forum/1111/page1648#comment_2702870 с рисунками

а сейчас эта ссылка выглядит так:

         https://www.mql5.com/ru/forum/1111/page1628#comment_2702870

Сейчас стал проверять - все ссылки в заявках ведут в никуда... раньше то все было нормально... ссылки были абсолютными. Сейчас только по дате понял что ссылка относится к этой заявке

Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • 2016.08.24
  • www.mql5.com
Общее обсуждение: Ошибки, баги, вопросы
 
A100:

Кстати... а почему ссылки перестали работать?

Описание проблемы

здесь https://www.mql5.com/ru/forum/1111/page1648#comment_2702870 с рисунками

а сейчас эта ссылка выглядит так:

         https://www.mql5.com/ru/forum/1111/page1628#comment_2702870

Сейчас стал проверять - все ссылки в заявках ведут в никуда... раньше то все было нормально... ссылки были абсолютными. Сейчас только по дате понял что ссылка относится к этой заявке

Давно уже на 20 страниц все съехало в этой ветке.

 
fxsaber:

Давно уже на 20 страниц все съехало в этой ветке.

Раньше тоже съезжало, но ссылки работали (концовка то осталась неизменной)... по крайней мере я легко находил сообщения годичной давности, а сейчас уже мартовские ссылки битые
 
Stanislav Korotky:

Вот на это простом скрипте, запущенном сперва с writing = true, а потом на другом чарте с writing = false, получаю ошибку.

Результат выполнения скрипта:

2018.07.23 19:44:15.224 !00 (EURUSD,M1) handle=1
2018.07.23 19:44:17.824 !00 (EURUSD,M1) Closing
2018.07.23 19:44:34.874 !00 (EURUSD,M1) handle=1
2018.07.23 19:44:40.874 !00 (EURUSD,M1) Closing
2018.07.23 19:45:12.844 !00 (GBPJPY,H4) handle=1
2018.07.23 19:45:16.354 !00 (GBPJPY,H4) Closing

1. С writing = true

2. На том-же графике с writing = false

3. На другом графике с writing = false

Единственное изменение

void OnStart()
как и положено...

Соответственно вместо

    return INIT_FAILED;

оставлено

    return;

и удалено

  return 0;

за ненадобностью.


В чём ошибка???

 

Я понял что неправильно провёл эксперимент.

Вот результат повторного:

2018.07.23 20:07:52.316 !00 (EURUSD,M1) handle=1
2018.07.23 20:07:52.316 !00 (EURUSD,M1) writing=true
2018.07.23 20:08:13.216 !00 (GBPJPY,H4) handle=1
2018.07.23 20:08:13.216 !00 (GBPJPY,H4) writing=false
2018.07.23 20:08:20.316 !00 (EURUSD,M1) Closing
2018.07.23 20:08:25.416 !00 (GBPJPY,H4) Closing

Ваша ошибка в том, что после записи в файл данные на диск попадают только после FileClose ИЛИ после принудительного сбрасывания данных на диск FileFlush

Иначе как можно прочесть несуществующий файл???

И всё-же я добавил флаг 

void OnStart()
{
  int handle = FileOpen("xyz.foo", FILE_READ|FILE_SHARE_WRITE|FILE_BIN|FILE_SHARE_READ|(writing?FILE_WRITE:0));
  if(handle == INVALID_HANDLE)
  {
    Print("FileOpen failed: ", GetLastError());
    return;
  }
  
  if(writing)
   {
    FileWriteInteger(handle, 0);
    FileFlush(handle);
   }
  
  Print("handle=", handle);
  Print("writing=", writing);
  
  while(!IsStopped())
  {
    Sleep(1000);
  }

  Print("Closing");
  FileClose(handle);

}/*******************************************************************/
Документация по MQL5: Файловые операции / FileFlush
Документация по MQL5: Файловые операции / FileFlush
  • www.mql5.com
При выполнении операции записи в файл физически данные могут оказаться в нем только через некоторое время. Для того чтобы данные сразу же сохранились в файле, нужно использовать функцию FileFlush(). Если не использовать функцию, то часть данных, еще не попавших на диск, принудительно записывается туда только при закрытии файла функцией...
 

Как может last-цена быть не кратна TickSize?

SymbolInfoDouble(Symb,SYMBOL_TRADE_TICK_SIZE) = 0.05
Tick.last = 14.16
 
fxsaber:

Как может last-цена быть не кратна TickSize?

может, я несколько лет назад задавал такой вопрос, писал тики в зацикленном скрипте while(true) , тики писал по изменению данных в "обзор рынка", часто были тики вида 1.35555000001, или 1.3555999999

я был удивлен, что приходят не нормализованные данные цены от сервера, ответа я тогда не получил, но читал боле поздние топики и видел ответы разработчиков, что часть тиков это тики для работы терминала, и по таким тикам советник не торгует

так и в Вашем случае, такая цена не кратная SYMBOL_TRADE_TICK_SIZE подразумевает, что Вы по такой цене не совершите торговую операцию.... хотя и получается что анализ цены  Last тоже может быть бессмысленным ))))

 
Igor Makanu:

может, я несколько лет назад задавал такой вопрос, писал тики в зацикленном скрипте while(true) , тики писал по изменению данных в "обзор рынка", часто были тики вида 1.35555000001, или 1.3555999999

Ваш случай - особенность преобразования double -> string. У меня несколько иная ситуация.

 
Лог эксперта - 15 Гб. Попытка просмотра его в Терминале вызывает зависание более, чем на минуту.
[Удален]  
fxsaber:
Лог эксперта - 15 Гб. Попытка просмотра его в Терминале вызывает зависание более, чем на минуту.

А Вы хотите чтобы как было?