Новая версия платформы MetaTrader 5 build 2007: Экономический календарь, MQL5-программы в виде сервисов - страница 51

 
fxsaber:

PositionOpen-метод не открывает позицию, а отправляет ордер для открытия позиции. Так что все правильно.

Невзирая на то, что включен режим trade.SetAsyncMode(false) ? И номер ордера вернулся? И код возврата :

10009

TRADE_RETCODE_DONE

?

 
Vladimir Belozercev:

Невзирая на то, что включен режим trade.SetAsyncMode(false) ? И номер ордера вернулся? И код возврата :

10009

TRADE_RETCODE_DONE

?

Да.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Меньше кода, больше прока.. пишем советник

fxsaber, 2019.03.12 21:46

Это задание вполне можно считать начальным тестом на умение писать торговлю под MT5. Так что каждый желающий может попробовать свои силы.

 
Ilyas :

Спасибо за сообщение.
Такое поведение было всегда.

Спасибо за ваш ответ, но, к сожалению, мне это не понятно.

Какое поведение всегда было? Вы говорите о ChartSetSymbolPeriod? Если да, как я могу обновить диаграмму для пользовательского символа?

Изменил способ замера времени работы функции, чтобы вызов виртуальной и по указателю на функцию правильно отображался в профилировщике.

Значит ли это, что вы исправите профилировщик в Build ?
 
Alain Verleyen:

Спасибо за ваш ответ, но, к сожалению, мне это не понятно.

Какое поведение всегда было? Вы говорите о ChartSetSymbolPeriod? Если да, как я могу обновить диаграмму для пользовательского символа?

Значит ли это, что вы исправите профилировщик в Build ?

Ильяс говорит про профилирование абстрактных методов классов.

ChartSetSymbolPeriod для кастомных символов тоже исправили.

Ждите следующий билд.

 
Slava :

Ильяс говорит про профилирование абстрактных методов классов.

ChartSetSymbolPeriod для кастомных символов тоже исправили.

Ждите следующий билд.

Большое спасибо :-)
 

Build 2007/2025.

Кажется, невозможно изменить заголовок «Accept» в WebRequest (с mql4 это работает).

Прикрепленный код должен возвращать JSON-ответ, например:

{ "responseParameters": { "doui_setResponseParameters": [ "8AA8D0CD6A05153A016A16735AF94E0E"]}}

Но ответ - HTML-файл, потому что серверу нужен заголовок «Accept: application / json». Я знаю это, потому что это работает с Почтальоном, например.

При проверке HTTP, отправляемого MT5 с Wireshark, заголовок «Принять» всегда:

Принять: * / *

Это ошибка или я что-то упустил?

Файлы:
310891.mq5  4 kb
 

build 2025

1) В индикаторе ObjectsTotal() возвращает 0 в OnDeinit().

2) ObjectsDeleteAll() не удаляет объекты если перед этим не вызвать ObjectsTotal();

код

//+------------------------------------------------------------------+
//|                                             ObjectsTotalTest.mq5 |
//+------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_plots 0

#define PREFIX "myObj"
#define Bid (SymbolInfoDouble(_Symbol,SYMBOL_BID))
//+------------------------------------------------------------------+
int OnInit()
  {
   for(int i=0;i<10;i++)
     {
      string obj_name=PREFIX+(string)i;
      ObjectCreate(0,obj_name,OBJ_HLINE,0,0,Bid+50*i*_Point);
      ObjectSetInteger(0,obj_name,OBJPROP_COLOR,clrLime);
     }
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Print("OnDeinit ObjectsTotal=",ObjectsTotal(0,0));//<--- если закомментировать, то объекты не удаляются
   ObjectsDeleteAll(0,PREFIX,0);
   ChartRedraw();
  }
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   Print("OnCalculate ObjectsTotal=",ObjectsTotal(0,0));
   return(rates_total);
  }
//+------------------------------------------------------------------+
 
Andrey Voytenko:

build 2025

2) ObjectsDeleteAll() не удаляет объекты если перед этим не вызвать ObjectsTotal();

Поставил такую заплатку! Спасибо.

Интересно, что удаление происходит спустя примерно секунду-две после того, как индикаторные линии исчезли (объектов не много, пару сотен)

 
Andrey Voytenko:

build 2025

1) В индикаторе ObjectsTotal() возвращает 0 в OnDeinit().

2) ObjectsDeleteAll() не удаляет объекты если перед этим не вызвать ObjectsTotal();

код

Это уже исправили.

 
Igor Zakharov:

2025: не работает удаление объектов в OnDeinit при удалении индикатора с графика.

в журнале:

в 2009 работало при всех reason

Спасибо за сообщение. Исправили