Бета-тестирование MetaTrader 5 началось! - страница 43

 

При компиляции возникают ошибки.

В Справочнике по языку приведен список ошибок компиляции. В этом списке все ошибки имеют номер.

Компилятор при возникновении ошибки выдает описание ошибки на английском языке и нигде не пишет номер ошибки, соответствующий номеру в списке ошибок компиляции. Приходится переводить с помощью PROMPTA. А PROMPT выдает такую белиберду... Пожалуйста добавьте в сообщение об ошибке ее номер. Или сделайте это сообщение на русском языке.

 

Из справки по языку.

Оператор создания объекта new

...

Оператор не применяется для создания массивов объектов. Для этого следует использовать функцию ArrayResize().

...

Отлично. Так как заранее неизвестно, сколько объектов будет создано, то массив объектов - лучший выбор.

Создаем класс. Привожу схему действий и в конце то, что выдает компилятор.

class cl
  {
// здесь наполнение не привожу. Можно что-то свое сюда вписать.
  }

// далее создаемем объект в виде динамического массива

cl array1[];

// и размножаем объекты с помощью функции ArrayResize()
ArrayResize(array1,3,4);

При компиляции выдаются ошибки:

'array1' - undeclared identifier хххHistory.mqh 316 19
'array1' - array required хххHistory.mqh 316 19
code generate error 1 1

Красным отмечено место нахождения ошибки.

=========

Что делаю не так?

 
у меня мт4 работа при скорости интеррнета 15 килобит и жрал 1-2 а мт5 требует не менее 30 килобит. зачем такие жертвы?
 

ArrayMaximum

Ищет в одномерном числовом массиве максимальный элемент.

int  ArrayMaximum(

   double  array[],               // массив для поиска

   int     count=WHOLE_ARRAY,     // количество проверяемых

   int     start=0                // с какого индекса начинаем поиск

   );


 

Поправте хелп или в соответствие с хелпом поправте функцию, у вас параметры  count и start перепутаны местами.

Аналогично ArrayMinimum.

 

AdwareRu писал(а) >>

Хочу внести предложение (сегодня ночью в голову пришло). В 5-й версии MetaTrader, как и в 4-ке в ордере можно установить коммент. В него можно как записать информацию "человеческим языком", так и некоторую слежебную (для советника), чтобы не сохранять на диске. Но вот проблема: брокер можнет менять это поле, например в 4-ке часто в этом поле появляется [tp], [sl] и так далее. Дык вот, хотелось бы иметь дополнительное такое поле, которое гарантированно бы не менялось брокером, как его назвать - сами решайте.

Зачем это нужно: как известно, в MT5 сделки суммируются. Предположим, работают 2 советника. Один засолил евру 1 лотом, 2 второй двумя. В этом новом поле СОВЕТНИКОМ записана например такая информация: советник 1 продал 1 лот, 2 - 2 лота (в кодировнном виде, конечно). И каждый советник будет знать "свою" позу из суммарно засоленных 3 лотов. Конечно, это можно легко реализовать, используя поле комментария (я так делаю на 4-ке, чтобы знать какая поза какому советнику принадлежит, с некоторыми "но"), НО вот брокер изменит содержимое этого поля вставкой того-же [tp], и всё, глюканёт советник.

Надеюсь что по делу.

Ну, или если не возможно так, то сделать некую изменяемую пользователем строку для всего аккаунта... Может, так и лучше даже. Тогда можно учитывать некую инфу даже при отсутствии открытых позиций. Хотя, думается, поставить отложеник подальше от рынка, и там инфу сохранить (это извращение конечно, то в случае если ничего подобного не будет реализовано, буду делать так).

ЗЫ: Ну в общем по аналогии с куками в броузере. Вариантов много, но идея думаю понятна

Можно с коментом не мучиться, в ордере есть штамп эксперта - аналог мэджика.

struct MqlTradeRequest
  {
   ENUM_TRADE_REQUEST_ACTIONS    action;           // Тип выполняемого действия
   ulong                         expert;          // Штамп эксперта (идентификатор)
   ulong                         order;            // Тикет ордера
   string                        symbol;           // Имя торгового инструмента
   double                        volume;           // Запрашиваемый объем сделки в лотах
   double                        price;            // Цена 
   double                        stoplimit;        // Уровень StopLimit ордера
   double                        sl;               // Уровень Stop Loss ордера
   double                        tp;               // Уровень Take Profit ордера
   ulong                         deviation;        // Максимально приемлемое отклонение от запрашиваемой цены
   ENUM_ORDER_TYPE               type;             // Тип ордера
   ENUM_ORDER_TYPE_FILLING       type_filling;     // Тип ордера по исполнению
   ENUM_ORDER_TYPE_TIME          type_time;        // Тип ордера по времени действия
   datetime                      expiration;       // Срок истечения ордера (для ордеров типа ORDER_TIME_SPECIFIED)
   string                        comment;          // Комментарий к ордеру
   char                          reserved[128];    // Зарезервировано
  };
 

Подскажите как из структуры datetime, а она всегда такая: гггг.мм.чч чч:мм:сс  вывести вот такую: часы:минуты? Дело в том что в datetime даже если и отпускаешь гггг.мм.чч и в конце сс всеравно выводит структуру полного типа где: гггг.мм.чч присваевается по умолчанию сегодняшний день, а мне надо чтоб какое то действие выполнялось в такое то время.... в независимости от даты. 

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

 
expmql1 >>:

ArrayMaximum

Ищет в одномерном числовом массиве максимальный элемент.

int  ArrayMaximum(

   double  array[],               // массив для поиска

   int     count=WHOLE_ARRAY,     // количество проверяемых

   int     start=0                // с какого индекса начинаем поиск

   );


 

Поправте хелп или в соответствие с хелпом поправте функцию, у вас параметры  count и start перепутаны местами.

Аналогично ArrayMinimum.

Тоже ныкался с этой функцией вот так заработала Low[ArrayMinimum(Low)]

 
arbuz писал(а) >>

Подскажите как из структуры datetime, а она всегда такая: гггг.мм.чч чч:мм:сс вывести вот такую: часы:минуты? Дело в том что в datetime даже если и отпускаешь гггг.мм.чч и в конце сс всеравно выводит структуру полного типа где: гггг.мм.чч присваевается по умолчанию сегодняшний день, а мне надо чтоб какое то действие выполнялось в такое то время.... в независимости от даты.

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

1) Создайте свою структуру и скопируйте туда необходимые данные.

2) Растягивание окошка с параметрами не решит проблему. Это окошко морально устарело. К тому же в mql5 предусмотрено всего 64 параметра для индикатора (советника). У меня в индикаторе для мт4 223 параметра . Переписать этот индикатор в МТ5 не получится из-за этого ограничения. Необходимо будет сначала создавать свое, альтернативное, окно ввода параметров. Разрабатывать свою библиотеку классов для работы с окнами, полями ввода, полосами прокрутки, перемещения выбранного параметра из одного (левого) окна выбора в другое (правое), работу с закладками, создавать альтернативные входные параметры и т.д. Вот такая кака получилась с мт5. Захочется ли создавать такую библиотеку классов? И программировать весь этот вспомогательный комплекс? Сейчас в мт4 этим индикатором пользуются, без преувеличения, тысячи людей. В МТ5, с большой вероятностью, на этом можно будет поставить крест.

========

Создателям, похоже, чужда работа с графикой, непонятна работа ручников - все ориентировано на создание торговых роботов. Огромное количество людей торговые роботы не используют и использовать не будут.

 
ghenghea >>:
у меня мт4 работа при скорости интеррнета 15 килобит и жрал 1-2 а мт5 требует не менее 30 килобит. зачем такие жертвы?


Может это стакан качается? Или он еще не использует ресуры?
 
pronych писал(а) >>

Может это стакан качается? Или он еще не использует ресуры?

что за стакан? я мт5 еще не видел стакана?

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