Где в справке MQL5 смотреть примеры кода ???

 

Доброго времени суток всем.

Решил написать новый, прибыльный советник на MQL5. Такое решение принял только из-за более быстрого тестирования в МТ5. И что из этого вышло? А ничего!

Открываю справку, например - https://www.mql5.com/ru/docs/standardlibrary/tradeclasses, и что я вижу? Снова НИЧЕГО! Сухое описание и пустота =).

Где? Где, "блин горелый", примеры кода с использованием функций??? Как это было в справке для MQL4. Или это заговор против желающих, не новичков хочу заметить, добавить разработки советников на MQL5?

Мало того, что сам MQL5 не сахар, так ещё и примеров кода нет! Что делать? К примеру, где взять ПРАВИЛЬНЫЙ пример кода закрытие позиций или трейлинг позиций? ГДЕ ???

В общем печалька. Не желание каких то людей делать доступной для всех разработку советников на MQL5! Ткните меня носом в примеры кода по всем вопросам в яп mql5!

Документация по MQL5: Стандартная библиотека / Торговые классы
Документация по MQL5: Стандартная библиотека / Торговые классы
  • www.mql5.com
Торговые классы - Стандартная библиотека - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Oleg Arsentev:


Вероятно плохо смотрите.

Например смотрим CTrade. Сразу видим

Заголовок

   #include <Trade\Trade.mqh>

значит УЖЕ можете подключить торговый класс.


Дальше смотрим по ЛЮБОМУ методу торгового класса, допустим 

SetExpertMagicNumber

Устанавливает идентификатор эксперта

и видим описание метода:

void  SetExpertMagicNumber(
   ulong  magic      // идентификатор
   )

Код есть - берём и используем.


Если не ясно: читаем статьи, смотрим примеры в CobeBase, спрашиваем на форуме, смотрим в редакторе примеры (например [data folder]\MQL5\Experts\Examples\MACD\MACD Sample.mq5)

Документация по MQL5: Стандартная библиотека / Торговые классы / CTrade
Документация по MQL5: Стандартная библиотека / Торговые классы / CTrade
  • www.mql5.com
CTrade - Торговые классы - Стандартная библиотека - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Vladimir Karputov:

Вероятно плохо смотрите.

Например смотрим CTrade. Сразу видим

Заголовок

значит УЖЕ можете подключить торговый класс.


Дальше смотрим по ЛЮБОМУ методу торгового класса, допустим 

SetExpertMagicNumber

Устанавливает идентификатор эксперта

и видим описание метода:

Код есть - берём и используем.


Если не ясно: читаем статьи, смотрим примеры в CobeBase, спрашиваем на форуме, смотрим в редакторе примеры (например [data folder]\MQL5\Experts\Examples\MACD\MACD Sample.mq5)Спа



Спасибо конечно за ответ, но вопрос не в примере кода "класса", а как этот класс применять, конкретный пример, блока советника, по трейлингу или просто закрытия позиций!

Нужна суть работы в конкретном примере, а в справке этого нет, как это есть в справке mql4. В самом низу справки mql4 есть абзац "Пример:"

Например - https://docs.mql4.com/ru/trading/orderclose  или - https://docs.mql4.com/ru/trading/ordersend

OrderClose - Торговые функции - Справочник MQL4
OrderClose - Торговые функции - Справочник MQL4
  • docs.mql4.com
OrderClose - Торговые функции - Справочник MQL4
 
Oleg Arsentev:

Доброго времени суток всем.

Решил написать новый, прибыльный советник на MQL5. Такое решение принял только из-за более быстрого тестирования в МТ5. И что из этого вышло? А ничего!

Открываю справку, например - https://www.mql5.com/ru/docs/standardlibrary/tradeclasses, и что я вижу? Снова НИЧЕГО! Сухое описание и пустота =).

Где? Где, "блин горелый", примеры кода с использованием функций??? Как это было в справке для MQL4. Или это заговор против желающих, не новичков хочу заметить, добавить разработки советников на MQL5?

Мало того, что сам MQL5 не сахар, так ещё и примеров кода нет! Что делать? К примеру, где взять ПРАВИЛЬНЫЙ пример кода закрытие позиций или трейлинг позиций? ГДЕ ???

В общем печалька. Не желание каких то людей делать доступной для всех разработку советников на MQL5! Ткните меня носом в примеры кода по всем вопросам в яп mql5!

Вот примеры работы с графиком, да и по остальным функциям примеров не меньше чем в справке по mql4.
Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Примеры работы с графиком
Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Примеры работы с графиком
  • www.mql5.com
Примеры работы с графиком - Константы графиков - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Oleg Arsentev:


Спасибо конечно за ответ, но вопрос не в примере кода "класса", а как этот класс применять, конкретный пример, блока советника, по трейлингу или просто закрытия позиций!

Нужна суть работы в конкретном примере, а в справке этого нет, как это есть в справке mql4. В самом низу справки mql4 есть абзац "Пример:"

Например - https://docs.mql4.com/ru/trading/orderclose  или - https://docs.mql4.com/ru/trading/ordersend

И вот конкретно по OrderSend()


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

Спасибо. Увидел. Теперь я точно знаю что в яп mql5 не существует функций закрытия позиций (ордеров).

 
Oleg Arsentev:

Спасибо. Увидел. Теперь я точно знаю что в яп mql5 не существует функций закрытия позиций (ордеров).

Ну как-же не существует

// Пример торговой операции TRADE_ACTION_DEAL для закрытия позиций:


#define EXPERT_MAGIC 123456   // MagicNumber эксперта
//+------------------------------------------------------------------+
//| Закрытие всех позиций                                            |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- объявление запроса и результата
   MqlTradeRequest request;
   MqlTradeResult  result;
   int total=PositionsTotal(); // количество открытых позиций   
//--- перебор всех открытых позиций
   for(int i=total-1; i>=0; i--)
     {
      //--- параметры ордера
      ulong  position_ticket=PositionGetTicket(i);                                      // тикет позиции
      string position_symbol=PositionGetString(POSITION_SYMBOL);                        // символ 
      int    digits=(int)SymbolInfoInteger(position_symbol,SYMBOL_DIGITS);              // количество знаков после запятой
      ulong  magic=PositionGetInteger(POSITION_MAGIC);                                  // MagicNumber позиции
      double volume=PositionGetDouble(POSITION_VOLUME);                                 // объем позиции
      ENUM_POSITION_TYPE type=(ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE);    // тип позиции
      //--- вывод информации о позиции
      PrintFormat("#%I64u %s  %s  %.2f  %s [%I64d]",
                  position_ticket,
                  position_symbol,
                  EnumToString(type),
                  volume,
                  DoubleToString(PositionGetDouble(POSITION_PRICE_OPEN),digits),
                  magic);
      //--- если MagicNumber совпадает
      if(magic==EXPERT_MAGIC)
        {
         //--- обнуление значений запроса и результата
         ZeroMemory(request);
         ZeroMemory(result);
         //--- установка параметров операции
         request.action   =TRADE_ACTION_DEAL;        // тип торговой операции
         request.position =position_ticket;          // тикет позиции
         request.symbol   =position_symbol;          // символ 
         request.volume   =volume;                   // объем позиции
         request.deviation=5;                        // допустимое отклонение от цены
         request.magic    =EXPERT_MAGIC;             // MagicNumber позиции
         //--- установка цены и типа ордера в зависимости от типа позиции
         if(type==POSITION_TYPE_BUY)
           {
            request.price=SymbolInfoDouble(position_symbol,SYMBOL_BID);
            request.type =ORDER_TYPE_SELL;
           }
         else
           {
            request.price=SymbolInfoDouble(position_symbol,SYMBOL_ASK);
            request.type =ORDER_TYPE_BUY;
           }
         //--- вывод информации о закрытии
         PrintFormat("Close #%I64d %s %s",position_ticket,position_symbol,EnumToString(type));
         //--- отправка запроса
         if(!OrderSend(request,result))
            PrintFormat("OrderSend error %d",GetLastError());  // если отправить запрос не удалось, вывести код ошибки
         //--- информация об операции   
         PrintFormat("retcode=%u  deal=%I64u  order=%I64u",result.retcode,result.deal,result.order);
         //---
        }
     }
  }
 

И множество других примеров.

Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Типы торговых операций
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Типы торговых операций
  • www.mql5.com
Типы торговых операций - Торговые константы - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

Спасибо Алексей. Именно о таких примерах я и говорю.

Такие фрагменты, кода советника, должны быть в справке обязательно, для более лёгкого понимания "механики" mql5.

Буду учить "эмкюэл5" на форуме, от пользователей, справка всего-лишь в дополнение к примерам кода с форума =(

Всем здоровья и удачи!

 
Oleg Arsentev:

Спасибо Алексей. Именно о таких примерах я и говорю.

Такие фрагменты, кода советника, должны быть в справке обязательно, для более лёгкого понимания "механики" mql5.

Буду учить "эмкюэл5" на форуме, от пользователей, справка всего-лишь в дополнение к примерам кода с форума =(

Всем здоровья и удачи!

Так я и скопировал этот код из справки. И ссылка на ту страницу где это скопировано.

 

В поиске справки, по запросу "закрытие позиций mql5" выдаёт - https://www.mql5.com/ru/search#!keyword=%D0%B7%D0%B0%D0%BA%D1%80%D1%8B%D1%82%D0%B8%D0%B5%20%D0%BF%D0%BE%D0%B7%D0%B8%D1%86%D0%B8%D0%B9%20mql5&module=mql5_module_documentation

Это далеко не та страница что Вы мне показали. Что бы найти то что надо нужно перечитать всю справку =)

 
Oleg Arsentev:

В поиске справки, по запросу "закрытие позиций mql5" выдаёт - https://www.mql5.com/ru/search#!keyword=%D0%B7%D0%B0%D0%BA%D1%80%D1%8B%D1%82%D0%B8%D0%B5%20%D0%BF%D0%BE%D0%B7%D0%B8%D1%86%D0%B8%D0%B9%20mql5&module=mql5_module_documentation

Это далеко не та страница что Вы мне показали. Что бы найти то что надо нужно перечитать всю справку =)

Наверное надо внимательно изучить функцию OrderSend() и структуры входящие в неё. И в процессе изучения обязательно попадёте туда где есть эти примеры.

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