Ошибки, баги, вопросы - страница 1793

Alexey Kozitsyn:

Есть ошибка в построении типа DRAW_CANDLES после его обновления: делаю все как сказано здесь: https://www.mql5.com/ru/forum/23/page19#comment_2891050

Невозможно изменить тип построения (1-2-3) путем выбора через входные параметры. Код: 

У вас ошибка в коде, использовать надо PlotIndexSetInteger:

         ////--- Устанавливаем количество цветов стиля (не помогает)
         PlotIndexSetInteger( 0, PLOT_COLOR_INDEXES, 3 );
fxsaber:
К сожалению, такое решение работает только для кастомной структуры. В примере MqlTradeRequest.
Тогда передавать структуру по ссылке в параметрах. Еще вариант это сделать свою копию структуры и кастовать, но это надо подумать как сделать красиво.
[Удален]
Anton:
У вас ошибка в коде, использовать надо PlotIndexSetInteger:

         ////--- Устанавливаем количество цветов стиля (не помогает)
         PlotIndexSetInteger( 0, PLOT_COLOR_INDEXES, 3 );
Блин, точно, спасибо!
Комбинатор:
Тогда передавать структуру по ссылке в параметрах. Еще вариант это сделать свою копию структуры и кастовать, но это надо подумать как сделать красиво.
Не понял.
fxsaber:
Не понял.
struct MyTradeRequest
{
  // копия MqlTradeRequest
  // + нужные операторы
};

// ...
MyTradeRequest request = Function();
MqlTradeResult = {0};
OrderSend((MqlTradeRequest)request, result);
// ...
Это просто идея, могут быть ошибки, писал прямо в браузере
Комбинатор:
struct MyTradeRequest
{
  // копия MqlTradeRequest
  // + нужные операторы
};

// ...
MyTradeRequest request = Function();
MqlTradeResult = {0};
OrderSend((MqlTradeRequest)request, result);
// ...
Это просто идея, могут быть ошибки, писал прямо в браузере
Идею понял. Но такой кастинг не прокатит же.
fxsaber:
Идею понял. Но такой кастинг не прокатит же.
почему?
Комбинатор:
почему?

Там есть стринги (два штука).

Разработчики еще могли бы сделать подобное рабочим решением для MqlTradeResult, если бы

struct MqlTradeResult
  {
   uint     retcode;          // Код результата операции
   ulong    deal;             // Тикет сделки, если она совершена
   ulong    order;            // Тикет ордера, если он выставлен
   double   volume;           // Объем сделки, подтверждённый брокером
   double   price;            // Цена в сделке, подтверждённая брокером
   double   bid;              // Текущая рыночная цена предложения (цены реквота)
   double   ask;              // Текущая рыночная цена спроса (цены реквота)
   string   comment;          // Комментарий брокера к операции (по умолчанию заполняется расшифровкой кода возврата торгового сервера)
   uint     request_id;       // Идентификатор запроса, устанавливается терминалом при отправке  
   uint     retcode_external; // Код ответа внешней торговой системы
  };

поле-строку сделали бы последним. Но для MqlTradeRequest даже такое не помогло бы.

fxsaber:

Там есть стринги (два штука).

Да, что-то не подумал

fxsaber:

Результат

STRUCT::~STRUCT
STRUCT::~STRUCT
STRUCT::~STRUCT
Почему три раза, а не два?
Почти всегда один вызов будет лишним ... здесь подробности https://www.mql5.com/ru/forum/1111/page1657#comment_2729876
Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • www.mql5.com
Форум алго-трейдеров MQL5