Предложение: добавить IndicatorCreate в MetaTrader 4 - страница 5 12345 Новый комментарий Vasiliy Sokolov 2017.02.01 13:39 #41 o_O: тогда б сформулировать в СД просьбу так:"Добавить вторую форму вызова iCustom, чтоб передавался массив MqlParam. По аналогии с IndicatorCreate"Думаю такое им будет понятней. И не требовать каких то хендловДа, с формулировками нужно быть точным. Иначе сразу лесом отправят. Ибо просить хендлы в МТ4 безумство, т.к. архитектуру МТ4 перекраивать придется.з.ы. Но как оффтоп, добавлю что работать с хендлами все-таки удобней. Больше возможностей и больше гибкости. Жаль большинство этого не понимает. Вопрос о криптовалютных парах Распознавание изменения в "поведении" МОЗГОВОЙ ШТУРМ TheXpert 2017.02.01 16:01 #42 Написал подобие 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);}Не думаю что такая жирная реализация жизнеспособна, но если кому-то интересно, могу выложить. Расширенный способ создания индикаторов: Как кодировать? Цвет штатного индикатора Dmitry Zhakov 2019.11.25 22:13 #43 Есть ли какие-то новости в этом направлении? Собираются ли добавить CreateIndicator в MT4? Dmitry Fedoseev 2019.11.26 07:09 #44 Dmitry Zhakov: Есть ли какие-то новости в этом направлении? Собираются ли добавить CreateIndicator в MT4? А зачем? И как бы вы ей пользовались? [Удален] 2019.12.11 21:29 #45 Dmitry Zhakov: Есть ли какие-то новости в этом направлении? Собираются ли добавить CreateIndicator в MT4? Вероятно, что этого не будет по политическим мотивам. Политически развивать MT4 в ущерб MT5 бесперспективно. ИМХО Dmitry Fedoseev 2019.12.12 14:48 #46 Какие преимущества вы хотите получить от IndicatorCreate? IndicatorCreate подразумевает получение хэндла и использования его при копировании данных из буфера (функцией CopyBuffer, которой нет в МТ4). Просто оберните iCustom(), вызывающую конкретных индикатор, функцией с двумя параметрами (буфер и бар) - и все дела. Получение данных от индикатора Вопросы от начинающих MQL5 Как начать работу с 12345 Новый комментарий
тогда б сформулировать в СД просьбу так:
"Добавить вторую форму вызова iCustom, чтоб передавался массив MqlParam. По аналогии с IndicatorCreate"
Думаю такое им будет понятней. И не требовать каких то хендлов
Да, с формулировками нужно быть точным. Иначе сразу лесом отправят. Ибо просить хендлы в МТ4 безумство, т.к. архитектуру МТ4 перекраивать придется.
з.ы. Но как оффтоп, добавлю что работать с хендлами все-таки удобней. Больше возможностей и больше гибкости. Жаль большинство этого не понимает.
Написал подобие IndicatorCreate для 4ки.
Первая версия добавляла 6 12 мегабайт(!) к размеру скомпиленного кода и загружалась в терминал почти минуту )) после того как загрузится все работает шустро.
Сейчас скрипт приведенный ниже весит 1мб 8мб и загружается около 7 секунд на моей i7ке
И компилится около 4 секунд
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?
А зачем? И как бы вы ей пользовались?
Есть ли какие-то новости в этом направлении? Собираются ли добавить CreateIndicator в MT4?
Какие преимущества вы хотите получить от IndicatorCreate?
IndicatorCreate подразумевает получение хэндла и использования его при копировании данных из буфера (функцией CopyBuffer, которой нет в МТ4).
Просто оберните iCustom(), вызывающую конкретных индикатор, функцией с двумя параметрами (буфер и бар) - и все дела.