Предложение: добавить IndicatorCreate в MetaTrader 4 - страница 5

 
o_O:
тогда б сформулировать в СД просьбу так:

"Добавить вторую форму вызова iCustom, чтоб передавался массив MqlParam. По аналогии с IndicatorCreate"

Думаю такое им будет понятней. И не требовать каких то хендлов

Да, с формулировками нужно быть точным. Иначе сразу лесом отправят. Ибо просить хендлы в МТ4 безумство, т.к. архитектуру МТ4 перекраивать придется.

з.ы. Но как оффтоп, добавлю что работать с хендлами все-таки удобней. Больше возможностей и больше гибкости. Жаль большинство этого не понимает.  

 

Написал подобие IndicatorCreate для 4ки.

Первая версия добавляла 6 12 мегабайт(!) к размеру скомпиленного кода и загружалась в терминал почти минуту )) после того как загрузится все работает шустро.

Сейчас скрипт приведенный ниже весит 1мб 8мб и загружается около 7 секунд на моей i7ке

И компилится около 4 секунд

#include <iCustom2.mqh>

void OnStart()
{
  double v1 = iCustom(Symbol(), Period(), "Alligator", 40, 25, 25, 15, 15, 8, 0, 1);
  double v2 = iCustom(Symbol(), Period(), "Alligator", 40, 25, 25, 15, 15, 8, 1, 1);
  double v3 = iCustom(Symbol(), Period(), "Alligator", 40, 25, 25, 15, 15, 8, 2, 1);

  MqlParam params[6];
  params[0].type = TYPE_INT; params[0].integer_value = 40;
  params[1].type = TYPE_INT; params[1].integer_value = 25;
  params[2].type = TYPE_INT; params[2].integer_value = 25;
  params[3].type = TYPE_INT; params[3].integer_value = 15;
  params[4].type = TYPE_INT; params[4].integer_value = 15;
  params[5].type = TYPE_INT; params[5].integer_value = 8;

  ICustom* gator = CreateCustom(Symbol(), Period(), "Alligator", params);

//  ICustom* gator = CreateCustom(Symbol(), Period(), "Alligator", 40, 25, 25, 15, 15, 8);
  
  double s1 = gator.Value(0, 1);
  double s2 = gator.Value(1, 1);
  double s3 = gator.Value(2, 1);
  
  delete gator;
  
  Print("v1 = ", v1, "; s1 = ", s1);
  Print("v2 = ", v2, "; s2 = ", s2);
  Print("v3 = ", v3, "; s3 = ", s3);
}

Не думаю что такая жирная реализация жизнеспособна, но если кому-то интересно, могу выложить.

 
Есть ли какие-то новости в этом направлении? Собираются ли добавить CreateIndicator в MT4?
 
Dmitry Zhakov:
Есть ли какие-то новости в этом направлении? Собираются ли добавить CreateIndicator в MT4?

А зачем? И как бы вы ей пользовались?

 
Dmitry Zhakov:
Есть ли какие-то новости в этом направлении? Собираются ли добавить CreateIndicator в MT4?
Вероятно, что этого не будет по политическим мотивам. Политически развивать MT4 в ущерб MT5 бесперспективно. ИМХО
 

Какие преимущества вы хотите получить от IndicatorCreate?

IndicatorCreate подразумевает получение хэндла и использования его при копировании данных из буфера (функцией CopyBuffer, которой нет в МТ4).

Просто оберните iCustom(), вызывающую конкретных индикатор, функцией с двумя параметрами (буфер и бар) - и все дела.

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