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

 
Alexander Sevastyanov #:

Похоже что допустима и компилируется. Но вот какой-то довесок непонятный добавляет.


Это не довесок, это погрешность преобразования десятичной дроби в двоичную. У double тоже будет погрешность, только меньше, т.к. больше бит используется под мантиссу.
 
У меня вопрос. Можно сделать чтобы ордер считал отложенный ордер своим, и как это сделать. Например: я открыл ордер через советник и отложенный, нужно чтобы следующий отложенный увеличился за счёт двух ордеров, открытого и отложенного. Как это сделать?
 

Всем доброго времени суток!
Я пытаюсь научиться выставлять ордера в пятерке именно при помощи класса  CTrade , так как мне показалось что это самый быстрый и простой вариант их установки. А точнее я пытаюсь научиться выставлять параметр СТОПЛОСС. В четверке последняя цена бид хранилась в предопределенной  перуменной Вid ,а в пятерке как я понял последняя цена бид не хранится, а, если я не ошибаюсь, как один из вариантов,  вычисляется в методе Bid класса  CSymbolInfo. Но что бы этот метод вычислил цену  Символ должен быть предварительно выбран методом Name. Как работает  метод Name я понимаю.В него нужно вставить или название символа или NULL и он вернет ложь или истину.

Но не могу понять как и где нужно объединить метод Name и метод   Bid , что бы в переменную с сохранилась цена бид

В четверке ордера выбирались при помощи функции Select() А в пятерке нужно выбирать не ордера а символ.... Как это делать я не понимаю

Буду всем очень признателен если напишете в моем коде фрагмент при помощи которого в переменную с сохранится цена бид, которую я использую в параметре СЛ метода Вuy класса  CTrade

int y;
double c,d;
#include<Trade\Trade.mqh>        //класс
#include <Trade\SymbolInfo.mqh>  //класс 
CTrade  trad;                   //класс (создание объекта класса)
CSymbolInfo pris;
//+------------------------------------------------------------------+
void OnTick()
  {
   c=pris.Bid();//
   Print(" ---------------------CТОП------------------------------------------------------------  ",c);
   MqlDateTime t;                //структура (объявление структуры)
   TimeCurrent(t);               //структура (инициализация структуры)
   if(t.hour == 9&&y==0)
   {trad.Buy(0.1,NULL,0,c);y =1;}   //класс
      
  }
Документация по MQL5: Стандартная библиотека / Торговые классы / CSymbolInfo / Name
Документация по MQL5: Стандартная библиотека / Торговые классы / CSymbolInfo / Name
  • www.mql5.com
Name - CSymbolInfo - Торговые классы - Стандартная библиотека - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
ANDREY #:

Всем доброго времени суток!
Я пытаюсь научиться выставлять ордера в пятерке именно при помощи класса  CTrade , так как мне показалось что это самый быстрый и простой вариант их установки. А точнее я пытаюсь научиться выставлять параметр СТОПЛОСС. В четверке последняя цена бид хранилась в предопределенной  перуменной Вid ,а в пятерке как я понял последняя цена бид не хранится, а, если я не ошибаюсь, как один из вариантов,  вычисляется в методе Bid класса  CSymbolInfo. Но что бы этот метод вычислил цену  Символ должен быть предварительно выбран методом Name. Как работает  метод Name я понимаю.В него нужно вставить или название символа или NULL и он вернет ложь или истину.

Но не могу понять как и где нужно объединить метод Name и метод   Bid , что бы в переменную с сохранилась цена бид

В четверке ордера выбирались при помощи функции Select() А в пятерке нужно выбирать не ордера а символ.... Как это делать я не понимаю

Буду всем очень признателен если напишете в моем коде фрагмент при помощи которого в переменную с сохранится цена бид, которую я использую в параметре СЛ метода Вuy класса  CTrade

Самый простой не значит самый быстрый. Для получения текущих цен инструмента пользуйтесь лучше штатной функцией SymbolInfoTick() или SymbolInfoDouble() в случае если сложно пока для понимания структуры.

Документация по MQL5: Получение рыночной информации / SymbolInfoTick
Документация по MQL5: Получение рыночной информации / SymbolInfoTick
  • www.mql5.com
SymbolInfoTick - Получение рыночной информации - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexey Viktorov #:

Самый простой не значит самый быстрый. Для получения текущих цен инструмента пользуйтесь лучше штатной функцией SymbolInfoTick() или SymbolInfoDouble() в случае если сложно пока для понимания структуры.

Cпасибо за ценную информацию. Дело в том, что я как раз и пытаюсь преодолеть упомянутые Вами сложности в понимании структуры. Благодаря Вам я получил представление об альтернативных вариантах решения моей проблемы. Но мне параллельно хочется продвинуться в понимании структуры и поэтому буду Вам очень признателен если внесете в мой код изменения вытекающие из моего вопроса.  И тогда благодаря Вам, я продвинусь еще на одну ступеньку в понимании пятерки....
Еще раз спасибо за помощь.

 
ANDREY #:

Cпасибо за ценную информацию. Дело в том, что я как раз и пытаюсь преодолеть упомянутые Вами сложности в понимании структуры. Благодаря Вам я получил представление об альтернативных вариантах решения моей проблемы. Но мне параллельно хочется продвинуться в понимании структуры и поэтому буду Вам очень признателен если внесете в мой код изменения вытекающие из моего вопроса.  И тогда благодаря Вам, я продвинусь еще на одну ступеньку в понимании пятерки....
Еще раз спасибо за помощь.

Чужой код нужен только для запоминания или другого способа хранения примера. А для понимания нужна исключительно теория.

Я не сразу посмотрел ваш код, но теперь вижу, что структуры вы как-то освоили. Имеете представление как заполнить предопределённую структуру и как прочесть из неё то что нужно.

Так вот по аналогии со структурой MqlDateTime поработайте со структурой MqlTick и у вас всё получится.

 
Alexey Viktorov #:

Чужой код нужен только для запоминания или другого способа хранения примера. А для понимания нужна исключительно теория.

Я не сразу посмотрел ваш код, но теперь вижу, что структуры вы как-то освоили. Имеете представление как заполнить предопределённую структуру и как прочесть из неё то что нужно.

Так вот по аналогии со структурой MqlDateTime поработайте со структурой MqlTick и у вас всё получится.

Спасибо за совет.

Уверен что это не всеобщая закономерность. Например , если Вы напишете в моем коде фрагмент нужного кода, мне легче будет разложить информацию в своей голове  по нужным полочкам и  информацию полученную от Вашего кода правильно связать с другой информацией которую я уже усвоил и выстроить таком образом целостную картину какого то важного фрагмента пятерки. Теория без конкретный и правильных примеров усваивается ооооооочень тяжело. Вспомните учебник Ковалева. Он каждое теоретическое положение подтверждает кодом, а потом еще этот код разбирает чуть ли не по символьно.  Разумеется наивно надеятся, что кто то будет здесь с такой дотошностью все объяснять. Поэтому мне достаточно правильного кода, а я уже его сам его изучу и установлю примером какой части теории он является.
 

В учебнике Ковалева написано что константа не имеет имени а имеет только значение(в отличии от переменной, которая имеет ИМЯ и значение).

А здесь  , и в других местах,   константа имеет и имя (PERIOD_M2)  и значение - 2
ВОПРОС Каким образом объясняется это противоречие . Где более точная информация - в учебнике Ковалева , или в Справочнике mql4

Забавно, что в Справочнике   mql4 дается определение ПЕРЕМЕННОЙ и подробное описание ее. Но не дается определение КОНСТАНТЫ и тем более не дается ее описания по аналогии с переменной.

Интересно так же то, что Ковалев в своем учебнике дает описание константы и в том же учебнике присутствует так же информация о константах которые имеют ИМЯ и значения. Получается он противоречил сам себе. Но скорее всего я что то недопонимаю. Подскажите пожалуйста ..... что именно?

 
ANDREY #:

В учебнике Ковалева написано…

К счастью я не читал учебник Ковалёва. Но для меня всегда более понятно PERIOD_H4 чем 240. А в MQL5 это и не совпадает с количеством минут…

ANDREY #:

Спасибо за совет.

Уверен что это не всеобщая закономерность. Например , если Вы напишете в моем коде фрагмент нужного кода, 
Вы предлагаете взять пример из документации и вставить в ваш код?
 
Alexey Viktorov #:

К счастью я не читал учебник Ковалёва. Но для меня всегда более понятно PERIOD_H4 чем 240. А в MQL5 это и не совпадает с количеством минут…

Спасибо за ответ. Ну Вы так и не ответили .... у КОНСТАНТЫ  есть ИМЯ или нет?

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