Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 958

 

Други, что то я совсем запутался с отложенными ордерами и позициями при обращении к истории сделок. 

Если отложенный ордер сработал и перешёл в позицию и был успешно закрыт, (сделка), то как он хранится в кэше истории как ордер или как позиция?

Как к нему обращаться?  Как к позиции? или как к ордеру через статус?

 
vladzeit:

Други, что то я совсем запутался с отложенными ордерами и позициями при обращении к истории сделок. 

Если отложенный ордер сработал и перешёл в позицию и был успешно закрыт, (сделка), то как он хранится в кэше истории как ордер или как позиция?

Как к нему обращаться?  Как к позиции? или как к ордеру через статус?

Изучение этого раздела документации должно помочь.

Сначала ордер, он переходит в сделку, затем позиция. Дальше, если это счёт netting ещё ордера и сделки и в конце ордер в обратном направлении лотом равным существующей позиции, из него сделка и нет позиции. Она закрылась и в истории её нет, там только ордера и сделки породившие, изменившие и закрывшие эту позицию. Но все они взаимосвязаны ID позиции.
Документация по MQL5: Торговые функции / HistorySelectByPosition
Документация по MQL5: Торговые функции / HistorySelectByPosition
  • www.mql5.com
Не следует путать между собой ордера из торговой истории и действующие отложенные ордера, которые отображаются на вкладке "Торговля" в панели "Инструменты". Список ордеров, которые были отменены или привели к проведению торговой операции, можно посмотреть  в закладке "История" на панели "Инструменты" клиентского терминала. Функция...
 

4758

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


Как это исправить??

 
Alexey Viktorov:

Изучение этого раздела документации должно помочь.

Сначала ордер, он переходит в сделку, затем позиция. Дальше, если это счёт netting ещё ордера и сделки и в конце ордер в обратном направлении лотом равным существующей позиции, из него сделка и нет позиции. Она закрылась и в истории её нет, там только ордера и сделки породившие, изменившие и закрывшие эту позицию. Но все они взаимосвязаны ID позиции.

Alexey. Букварь я читал, но Вы своими словами как то всё проще объяснили, чем там написано... Всё доходчиво и понятно. Спасибо)

 
vladzeit:

Alexey. Букварь я читал, но Вы своими словами как то всё проще объяснили, чем там написано... Всё доходчиво и понятно. Спасибо)

Пожалуйста.




Но я говорил "изучение раздела", а не прочтение. Обо всём этом там написано, но разбросано по описаниям разных функций этого раздела, это ведь просто документация, а не учебник для начинающих. Есть ещё статьи. Наверняка в какой нибудь из них есть об этом.

 
Alexey Viktorov:
Пожалуйста.




Но я говорил "изучение раздела", а не прочтение. Обо всём этом там написано, но разбросано по описаниям разных функций этого раздела, это ведь просто документация, а не учебник для начинающих. Есть ещё статьи. Наверняка в какой нибудь из них есть об этом.

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

и пытаюсь  получить от mql5 только то, что нужно для решения этой узкой задачи... В результате сплошные пробелы в образовании)

Знакомые буквы уже вроде бы попадают, но в слова и предложения ещё складываться не хотят).

Сложно ещё и по тому, что нет именно учебника с примерами и упражнениями, а справка рассчитана на то, что уже есть какой то опыт программирования и разъясняет по-сути только собственный синтаксис.

На форуме конечно много информации, но всё очень разрознено, а иногда и не достоверно в связи с новыми изменениями в mql5. 

Мне наверное нужно было с mql4 начать знакомство... Там явно больше обучающих материалов, а потом уже получив базовый опыт, представление,  переходить на mql5 изучая его отличия.

Я частично, так и делаю, лезу за примерами в mql4 и пытаюсь по аналогу реализовать их в 5-ом. Но иногда из-за кардинальных отличий некоторых функций и принципов это создаёт у меня ещё большую путаницу)))

Видимо все самоучки через это проходят)

То что Вы сказали выше, я конечно учту, во всяком случае постараюсь)

 

После обновления терминала перестал собираться советник.

Ошибка

'INIT_FAILED' - expression not boolean  

В чем проблема может быть?

//+------------------------------------------------------------------+
//| Lots or risk in percent for a deal from a free margin            |
//+------------------------------------------------------------------+
bool LotsOrRisk(const double lots,const double risk,const int digits_adjust)
  {
   if(lots<0.0 && risk<0.0)
     {
      Print(__FUNCTION__,",ERROR: Parameter(\"lots\" or \"risk\") can't be less than zero");
      return(false);
     }
   if(lots==0.0 && risk==0.0)
     {
      Print(__FUNCTION__,", ERROR: Trade is impossible: You have set \"lots\" == 0.0 and \"risk\" == 0.0");
      return(false);
     }
   if(lots>0.0 && risk>0.0)
     {
      Print(__FUNCTION__,", ERROR: Trade is impossible: You have set \"lots\" > 0.0 and \"risk\" > 0.0");
      return(false);
     }
   if(lots>0.0)
     {
      string err_text="";
      if(!CheckVolumeValue(lots,err_text))
        {
         Print(__FUNCTION__,", ERROR: ",err_text);
         return(false);
        }
     }
   else if(risk>0.0)
     {
      if(m_money!=NULL)
         delete m_money;
      m_money=new CMoneyFixedMargin;
      if(m_money!=NULL)
        {
         if(!m_money.Init(GetPointer(m_symbol),Period(),m_symbol.Point()*digits_adjust))
            return(INIT_FAILED);
         m_money.Percent(risk);
        }
      else
        {
         Print(__FUNCTION__,", ERROR: Object CMoneyFixedMargin is NULL");
         return(INIT_FAILED);
        }
     }
//---
   return(true);
  }
//+------------------------------------------------------------------+

Вот на эту функцию ругается компилятор

return(INIT_FAILED);
 
ilvic:

После обновления терминала перестал собираться советник.

Ошибка

В чем проблема может быть?

Вот на эту функцию ругается компилятор

Функция  LotsOrRisk() объявлена как bool. Значит она может возвращать только ИЛИ true ИЛИ false.

 
Juer:

По всей видимости, тут больше моё железо виновато... и система.

Систему обновил на вин10, произвел проверку диска с локализацией битых секторов. Ну осталось на SSD обновить наверное.

Компилируется так же свыше 10 минут. Всё-таки столько времени на компиляцию это как-то ненормально...

 
Добрый день.
Можно индикатору вводимые параметры вынести на график? Может есть уже готовый пример?
Причина обращения: