Значение CurTime() в выходной день - страница 3

 
Еще такой момент. Если expert stopped, то почему рожа советника улыбается?
 
Еще такой момент. Если expert stopped, то почему рожа советника улыбается?

Потому что советник был остановлен только в один конкретный запуск. В следующем запуске у советника могут не сложиться обстоятельства, его останавливающие
 
Еще такой момент. Если expert stopped, то почему рожа советника улыбается?

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


Долго думал. Не понял. Я думаю логично, что при остановке эксперта смайл в углу перестает улыбаться. При перезапуске терминала я включу советник и он снова будет работать. А так - откуда ж мне знать что советник стоит?
 
Смайл в углу перестаёт улыбаться, если эксперту запрещают торговать (соответствующая галка в настройках). Крестик вместо смайла означает что отжата кнопка "эксперты разрешены". То есть, запрещаются к запуску _все_ эксперты.
Кстати, когда нет тиков, советник тоже стоит. Пришёл тик, советник отработал и остановился до следующего тика. При приходе нового тика советник, который выполнил недопустимую операцию и про которого в журнале было сказано stopped, опять запустится.
 
При приходе нового тика советник, который выполнил недопустимую операцию и про которого в журнале было сказано stopped, опять запустится.


А вот в таком месте при ошибке в вызове ErrorDescription возможно зацикливание?
Потому как судя по тому, что функция start не вызывалась в течении часа, а котировки шли, что то все таки произошло.

int DeleteOrder(int ticket) {
  bool res = false;
  while (!res) {
    res = OrderDelete(ticket);
    if (!res) {
      Print("DeleteOrder failed: ", ErrorDescription(GetLastError()));
      Sleep(SleepErr);
    }
  }

  Sleep(SleepOk);
  return(0);
}
 
А вот в таком месте при ошибке в вызове ErrorDescription возможно зацикливание?

Какие значения сидят в переменных SleepErr и SleepOk?

Потому как судя по тому, что функция start не вызывалась в течении часа, а котировки шли, что то все таки произошло.

А через час вдруг вызвалась?
 
SleepOk = 2000
SleepErr = 6000

А через час я перегрузил Терминал.
 
Я разобрался с ситуацией.
Сообщение "expert stopped" возникает только когда возникают проблемы с вызовом импортируемых функций. До тех пор, пока Вы не решите проблему вызова (поставите соответствующую галку в настройках эксперта), эксперт запускаться не будет.
Если же была проблема с наличием соответствующего выполняемого файла (например stdlib.ex4), то после её решения (компиляции stdlib.mq4) необходимо вызвать окно свойств эксперта и просто нажать кнопку OK.
В любом случае после нажатия кнопки OK эксперт будет запущен с первым же тиком.
 
Прошло уже больше месяца с того момента как я повесил на демо советника, код которого приведён ниже
//+------------------------------------------------------------------+
//|                                                   e-TestHour.mq4 |
//|                                           Ким Игорь В. aka KimIV |
//|                                              http://www.kimiv.ru |
//+------------------------------------------------------------------+
#property copyright "Ким Игорь В. aka KimIV"
#property link      "http://www.kimiv.ru"

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
void start()
{
  WritingLineInFile("e-TestHour", TimeToStr(CurTime())+" "+Hour());
}

//+------------------------------------------------------------------+
//| Запись строки в файл                                             |
//+------------------------------------------------------------------+
void WritingLineInFile(string FileName, string text)
{
  int file_handle=FileOpen(FileName, FILE_READ|FILE_WRITE, " ");

	if (file_handle>0)
	{
		FileSeek(file_handle, 0, SEEK_END);
		FileWrite(file_handle, text);
		FileClose(file_handle);
	}
}
//+------------------------------------------------------------------+



Каждый день с утра просматривал файл со следующим содержимым:

...
2006.02.27 14:29 14
2006.02.27 14:30 14
2006.02.27 14:30 14
2006.02.27 14:31 14
2006.02.27 14:32 14
2006.02.27 14:32 14
2006.02.27 14:32 14
2006.02.27 14:32 14
2006.02.27 14:33 14
2006.02.27 14:33 14
...



рассчитывая найти что-нибудь типа этого

...
2006.02.27 14:29 14
2006.02.27 14:30 14
2006.02.27 14:30 14
2006.02.27 14:31 14
2006.02.27 14:32 14
2006.02.27 14:32 0        <-------------
2006.02.27 14:32 14
2006.02.27 14:32 14
2006.02.27 14:33 14
2006.02.27 14:33 14
...



Потом я файл удалял, а на следующее утро просматривал новый файл, размером порядка 100 и более Кб. И так изо дня в день, в погоне за истиной :-).

Я не смог обнаружить ошибки в работе функции Hour().

 
Я не смог обнаружить ошибки в работе функции Hour().

Отлично!
Причина обращения: