Блоки индикатора, вместо iCustom

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Yarik19
57
Yarik19  
Здравствуйте, подскажите что и где смотреть. Возникла такая проблема, хочу вместо функции вызова индикатора через iCustom. Хочу его "как то" вызывать как обычный тех. индикатор. Например  iRSI(NULL,0,RSI_Per,PRICE_CLOSE,i);
Только использовать как Блоки вместо Айкастома. Что то такого Trend-direction(NULL,0,Trendper,i);
Подскажите как переделать или сделать эти самые блоки индикаторов, что-бы работа была в 5 раз быстрее. Буду благодарен в любой помощи!
Yarik19
57
Yarik19  

Вот как пример этот индикатор, как сделать его блоком, что бы использовать в другом индикаторе? Хочу перенести алгоритм этого индикатора в другой, что бы были как одно целое. Поиск такой проблемы и решения пока не нашел. Функция iCustom не подходит.

Alexey Viktorov
27789
Alexey Viktorov  
Yarik19:

Вот как пример этот индикатор, как сделать его блоком, что бы использовать в другом индикаторе? Хочу перенести алгоритм этого индикатора в другой, что бы были как одно целое. Поиск такой проблемы и решения пока не нашел. Функция iCustom не подходит.

Такие утверждения неплохо-бы подкреплять аргументами. Почему-то всем подходит, а вам нет...

LRA
702
LRA  
Alexey Viktorov:   Такие утверждения неплохо-бы подкреплять аргументами. Почему-то всем подходит, а вам нет...
Ну какие тут аргументы - руководитель курсового проекта требует
Yarik19
57
Yarik19  
Alexey Viktorov:

Такие утверждения неплохо-бы подкреплять аргументами. Почему-то всем подходит, а вам нет...


Самый главный аргумент. Это скорость, что в алготрейдинге очень важна. Функция iCustom очень медленная . Вот и хочу построить блоки таких индикаторов, что бы уменьшить время оптимизации,нагрузку на терминал.

Ihor Herasko
21768
Ihor Herasko  
Yarik19:

Самый главный аргумент. Это скорость, что в алготрейдинге очень важна. Функция iCustom очень медленная . Вот и хочу построить блоки таких индикаторов, что бы уменьшить время оптимизации,нагрузку на терминал.


Универсального способа не существует (если отбросить iCustom), т. к. каждый индикатор имеет свою специфику. Чтобы встроить один индикатор в другой индикатор или индикатор в советник, нужно переписать конкретный индикатор с учетом того, что он будет встроен. В этом случае, чаще всего, находятся пути для оптимизации расчетов индикатора. Ведь в советнике зачастую не требуются показания на всей истории.

Yarik19
57
Yarik19  
Ihor Herasko:

Универсального способа не существует (если отбросить iCustom), т. к. каждый индикатор имеет свою специфику. Чтобы встроить один индикатор в другой индикатор или индикатор в советник, нужно переписать конкретный индикатор с учетом того, что он будет встроен. В этом случае, чаще всего, находятся пути для оптимизации расчетов индикатора. Ведь в советнике зачастую не требуются показания на всей истории.


Не знаю как на практике это будет выглядеть. Что бы вставить один индикатор в другой, Лучше использовать функцию double trend(int trendpperiod , int i и так далее) или через void? Просто не могу понять в какую сторону смотреть...

Ihor Herasko
21768
Ihor Herasko  
Yarik19:

Не знаю как на практике это будет выглядеть.

Будет выглядеть как функция, рассчитывающая значение индикатора на конкретном баре или на нескольких барах. Это уже зависит от задач, поставленных перед автором подобной функции, и его фантазии. Работать может, как быстрее, так и медленнее, чем iCustom. Опять же, зависит от реализации.

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

Что бы вставить один индикатор в другой, Лучше использовать функцию double trend(int trendpperiod , int i и так далее) или через void? Просто не могу понять в какую сторону смотреть...

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

Таким образом, для одного конкретного индикатора всегда можно найти решение. А вот общего решения для всех индикаторов не существует. Даже iCustom не всегда поможет, т. к. многие индикаторы отображают свои данные в виде графических объектов, а не при помощи индикаторных буферов.

Yarik19
57
Yarik19  
Ihor Herasko:

Будет выглядеть как функция, рассчитывающая значение индикатора на конкретном баре или на нескольких барах. Это уже зависит от задач, поставленных перед автором подобной функции, и его фантазии. Работать может, как быстрее, так и медленнее, чем iCustom. Опять же, зависит от реализации.

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

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

Таким образом, для одного конкретного индикатора всегда можно найти решение. А вот общего решения для всех индикаторов не существует. Даже iCustom не всегда поможет, т. к. многие индикаторы отображают свои данные в виде графических объектов, а не при помощи индикаторных буферов.


Спасибо! Очень грамотно все расписано!

Универсального значения нет, я это понял. Значит буду стараться что то найти. Просто думал есть какой-то шаблон что бы писать все индикаторы под один. Как в примере один известный индикатор РД-комбо, там есть индикатор рд-форекаст(Что в отдельности был подвалом).

Трудновата задача оказалась, придется либо своими силами либо через фриланс идти)

Alexey Viktorov
27789
Alexey Viktorov  
Ihor Herasko:

...

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

...

Если точнее выразиться, написан криво, кривыми руками.

Yarik19:

Самый главный аргумент. Это скорость, что в алготрейдинге очень важна. Функция iCustom очень медленная . Вот и хочу построить блоки таких индикаторов, что бы уменьшить время оптимизации,нагрузку на терминал.

Индикатор написанный правильно и вызванный функцией iCustom(), ничем не будет отличаться от расчётной части внесённой в советник, потому, что никакой разницы нет в каком месте будет пересчёт одного последнего бара.

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

Вот как-то так...

Yarik19
57
Yarik19  
Вот нашел Индикатор который построенный как мне нужно, название VLDMI.(Идеально даже)

А вот правда как бы мне сделать на подобии iBands_on_MOmBall?
Не могу понять, что вписывать. Может кто то натолкнуть где смотреть?
Файлы:
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий