[АРХИВ] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 3. - страница 261

 

Ребят что означает шибка invalid integer number as parameter 10 for OrderSend function и как ее исправить?

 
Pyxlik2009:

Ребят что означает шибка invalid integer number as parameter 10 for OrderSend function и как ее исправить?

Строчку кода приведите на которой она возникает

 
Pyxlik2009:

Ребят что означает шибка invalid integer number as parameter 10 for OrderSend function и как ее исправить?


Время истечения д.б. целым числом.
 
Roll:

Время истечения д.б. целым числом.
Да у меня даже нету в настройках нечего дробного
 
sergey_r:
да, только у меня ставится ордер по закрытию бара, а мне нужно по текущей цене. если текущая цена опустилась ниже low предидущего то ... А здесь получается только если цена закрылась ниже low предидущего то тогда устанавливается ордер

попробуйте так

if (Bid<iLow(NULL, 0, 1)


 
Pyxlik2009:
Да у меня даже нету в настройках нечего дробного

См. 10-й параметр указанной функции. Выставить в 0.
 
paukas:
Есть такая штука - скрипт. Когда нужно, тогда и запускаете.


Да смысл не в том, чтобы выполнить действие 1 раз. Смысл в том, что запустив этот скрипт, у сработавшего отложенника он будет считывать время его постановки, а не сработки.

Соответственно, это самое время сработки отложенника средствами терминала нигде не сохраняется. Мне просто нужно знать это время, идеально было бы использовать встроенную функцию MQL4 PendingOrderFilledTime() если бы такая существовала. В таком случае сам МТ4 мониторил бы отложенники и давал бы готовый результат.

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


LazarevDenis:

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

Проблем с написанием советника никаких. Не хочется для получения информации, которую должен давать терминал, использовать подручное средство. Советник - это решение задачи в лоб.

Если бы каждую задачу, на которую нет стандартной функции MQ4, решать советником, то в терминале таких советников бы висело.. А это не есть хорошо - создавать дополнительные слабые звенья цепи. Когда у вас много открытых терминалов и на каждом нужно по советнику, и проверять, есть он там или нет - согласитесь, неудобно и неумно. Писать проверку аттача эксперта и принудительно его там запускать - тоже самое, зачем усложнять, если, возможно, лишь возможно, кто-то уже решал подобную задачу комбинацией существующих функций MQL4.

 
Starting:
... возможно, кто-то уже решал подобную задачу комбинацией существующих функций MQL4.
Прочитал и не понял логики. Хорошо, допустим есть нужная Вам функция, как Вы ее будете использовать? Все равно придется вставлять ее в советник или в скрипт.
То есть вопрос стоит не в отсутствии специальной функции (а на каждый чих не наздравствуешься), а в сложности написания кода, выполняющего Ваши требования.
 
granit77:
Прочитал и не понял логики. Хорошо, допустим есть нужная Вам функция, как Вы ее будете использовать? Все равно придется вставлять ее в советник или в скрипт.
То есть вопрос стоит не в отсутствии специальной функции (а на каждый чих не наздравствуешься), а в сложности написания кода, выполняющего Ваши требования.

Использование простое - я запускаю скрипт, кот. пишет данные о последней закрытой сделке с самым ранним временем открытия. Сработавшие отложенники вносят сумятицу в ряды закрытых ордеров. На момент запуска скрипта ему неоткуда брать данные о сработке отложенников, т.к. в истории они фиксируются датой их постановки, а не сработки.


Простой пример.

01.01.2011 установлен отложенный ордер 1.

02.01.2011 открыт рыночный ордер 2.

03.01.2011 сработал отложенный ордер 1 и стал рыночным ордером 1, у которого OrderOpenTime() будет выдавать 01.01.2011, хотя фактически он стал рыночным 03.01.2011.

04.01.2011 закрыт рыночный ордер 2.

05.01.2011 закрыт рыночный ордер 1.

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

Хотя фактически, самая свежая дата открытия (сработки) у последнего закрытого ордера - сработавшего отложенного ордера 1 - 03.01.2011.

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


Представьте ситуацию, вы торгуете, у вас есть отложенные ордера, установленные давно. И вот, вы видите, какие-то из них срабатывают, затем закрываются через какое-то время. А вот учитываться они будет по "лохматому" времени постановки, даже если были поставлены год назад, а сработали и закрылись только сегодня. Нужно - что реально было открыто или сработало в рынке последним, то бы и выдавалось последним, а не все что когда-то было установлено вперемешку с рыночными, открытыми реально недавно. Спасибо за внимание к моему вопросу.

 

Господа,не подскажете мне,в каком месте я ошибся,когда вставил в свой код советника эту функцию работы по времени:

int init()
  {
  
bool isTradeTimeInt (int hb=05,int mb=50,int he=23,int me=00) 
    {
  datetime db, de;           // Время начала и окончания работы
  int      hc;               // Часы текущего времени торгового сервера

  db=StrToTime(TimeToStr(TimeCurrent(), TIME_MINUTES)+" "+hb+":"+mb);
  de=StrToTime(TimeToStr(TimeCurrent(), TIME_MINUTES)+" "+he+":"+me);
  hc=TimeHour(TimeCurrent());
  if (db>=de) {
    if (hc>=he) de+=24*60*60; else db-=24*60*60;
  

  if (TimeCurrent()>=db && TimeCurrent()<=de) return(True);
  else return(False);
}
   return(0);
  }

компилятор просто меня засыпал ошибками.

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