Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1024

 
WinZip:
Подскажите плз, проблема такая. Делаю торгового эксперта, для удобства сделал копию эксперта, как нового, и там эксперементирую. Но в час назад эксперт для экспериментов начал возвращать ошибку "Торговля для эксперта запрещен". По сути сейчас имею двух почти одинаковых экспертов, один торгует один нет. Момент  когда он перестал торговать я пропустил. Как вычислить что ему запрещает торговать?  Я пытался сделать функционал по закрытию сделок, но когда я удаляю все что добавлял, он по прежнему не торгует 

В его настройках поставить галочку разрешения торговли для него.

 
Журналы и результаты тестирования в 0 заполнили диск С, можно как то в настройках другой диск для журналов поменять?
 

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

А почему я не получаю уведомлений ни об ответах ни даже об удалении тем... Ни на почту ни в местных сообщениях.. ?

И как это исправить? Вроде галки стоят но чего-то не работает...

 
//+------------------------------------------------------------------+
int OnInit()
  {
  datetime open_bars_time = iTime(NULL,0,0); 
  Alert("старт ",open_bars_time);
  int i=0;
  while(iTime(NULL,0,0)==open_bars_time && !IsStopped()) 
  {Comment(iTime(NULL,0,0));}
  Alert("Цикл закончен",open_bars_time);
//--- create timer
   EventSetTimer(Period()*60);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+

требуется запускать прогу в начале бара. Почему значение возвращаемое iTime(NULL,0,0) не изменяется?
 
Sergey Guliaev:

вам в цикле надо добавить Sleep() и RefreshRates() иначе ничего не сдвинется.

и вообще идея в корне неправильная. Нельзя такого делать в OnInit

Если надо ждать открытия бара - это надо ждать в OnTick. Если смену часа то в OnTimer ещё.

 
Maxim Kuznetsov:

вам в цикле надо добавить Sleep() и RefreshRates() иначе ничего не сдвинется.

и вообще идея в корне неправильная. Нельзя такого делать в OnInit

Если надо ждать открытия бара - это надо ждать в OnTick. Если смену часа то в OnTimer ещё.

Благодарю. Задача, что бы первый тик приходился +/- пару секунд, на начало бара. По моим наблюдения тики не синхронизируются с началом бара.

 
Sergey Guliaev:

Благодарю. Задача, что бы первый тик приходился +/- пару секунд, на начало бара. По моим наблюдения тики не синхронизируются с началом бара.

Странные у вас наблюдения. Вы перепутали причину со следствием. Не тики от баров зависят, а открытие нового бара зависит от прихода нового тика. Нет тика - нет и бара. На минутках такое часто.

 

Коллеги добрый день!

Не могу понять причину,  У меня обьём (LotSize) считается исходя из риска. Когда обьём лота вытаскиваю сообщением Alert(LotSize) показывает к примеру 0,12. но функция OrderSend ругается на обьём . Когда в коде прописываю LotSixe=0.12; ОrderSend отрабатывает нормально.

В чём может быть причина?

 
Sandjar Ikramov:

Коллеги добрый день!

Не могу понять причину,  У меня обьём (LotSize) считается исходя из риска. Когда обьём лота вытаскиваю сообщением Alert(LotSize) показывает к примеру 0,12. но функция OrderSend ругается на обьём . Когда в коде прописываю LotSixe=0.12; ОrderSend отрабатывает нормально.

В чём может быть причина?

В таких случаях всегда спрашивают код... кто его знает, что и как там у вас написано...

 
Sandjar Ikramov:

Коллеги добрый день!

Не могу понять причину,  У меня обьём (LotSize) считается исходя из риска. Когда обьём лота вытаскиваю сообщением Alert(LotSize) показывает к примеру 0,12. но функция OrderSend ругается на обьём . Когда в коде прописываю LotSixe=0.12; ОrderSend отрабатывает нормально.

В чём может быть причина?

Ну... наверное потому, что это разные переменные... Да и 0,12 (через запятую) совсем не равно 0.12 (через точку)

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