Как увеличить размер массива[] в индикаторе если он привязан к индексу буфера и его размер более количества баров в истории???
Изначально задача стоит достать массив из индикатора в советнике
Несколько вариантов получения массива из индикатора
- Через файлы, ресурсы, глобальные переменные и т.д. - тема статьи.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
fxsaber, 2017.09.07 08:30
"Хранение и передача данных без использования DLL - все варианты".
- Через несколько (не один) индикаторных буферов.
Зачем увеличивать один? Возьмите два.
Зачем увеличивать один? Возьмите два.
Буферов не хватит, массив большой
Буферов не хватит, массив большой
Тогда передавать в эксперта только то, что ему нужно.
Тогда передавать в эксперта только то, что ему нужно.
Спасибо за внимание, но нет, уже думал!
Может подскажете как прописать параметр "Применить к" - Median Prise в самом индекаторе, в место умолчания цены Close, тогда появилась бы возможность обойти предыдущую задачу.
При условии что в индикаторе для расчета массива используется класс, а в классе один из параметров стоит price как есть.
int OnCalculate(const int rates_total, const int prev_calculated, const int begin, const double &price[])
sm.Solve(rates_total,prev_calculated,price);
Может подскажете как прописать параметр "Применить к" - Median Prise в самом индекаторе, в место умолчания цены Close, тогда появилась бы возможность обойти предыдущую задачу.
При условии что в индикаторе для расчета массива используется класс, а в классе один из параметров стоит price как есть.
Спасибо за внимание, но нет, уже думал!
Может подскажете как прописать параметр "Применить к" - Median Prise в самом индекаторе, в место умолчания цены Close, тогда появилась бы возможность обойти предыдущую задачу.
При условии что в индикаторе для расчета массива используется класс, а в классе один из параметров стоит price как есть.
Можно использовать другой вариант OnCalculate(), тот, который с open, high, low, close. Создать дополнительный буфер для вычислений, заполнить его значениями этой медианной цены, и дальше все вычисления производить над этим буфером, вместо массива price.
"Применить к" - эквивалентен вызову индикатора, а не его исполнению. Указывать цену MEDIAN нужно при вызове iCustom.
Неподходит, тогда встает задача, как очистить задействованные ресурсы - оперативную память
ТОесть индикатор после того как произвел рассчет, подчищает оперативку с условием в необходимый момент опять произвести рассчет
Вообще первичная задача вытащить из индикатора масив[][]
Можно использовать другой вариант OnCalculate(), тот, который о open, high, low, close. Создать дополнительный буфер для вычислений, заполнить его значениями этой медианной цены, и дальше все вычисления производить над этим буфером, вместо массива price.
Благодарю Вас, пытался сделать, но плюнул, ваш ответ внушил уверенность в правильности идеи попробую
Неподходит, тогда встает задача, как очистить задействованные ресурсы - оперативную память
ТОесть индикатор после того как произвел рассчет, подчищает оперативку с условием в необходимый момент опять произвести рассчет
Задача не ясна.
Если нужно получить доступ ко всему индикаторному буферу извне, можно это делать с помощью разных ухищрений с использованием DLL - вот например одна статья. Но правильнее всего код индикатора вместе с его буфером оформить классом, который включить в эксперт и считать там напрямую. Это к тому же будет и эффективнее.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте, будьте добры подскажите, каким образом увеличить размер одномерного массива в индикаторе
При условии, что: - он привязан к индексу буфера для вызова(ну или если есть еще какие варианты, для последующего его вызова в советнике)
- и размер массива превышает количество баров
Изначально задача стоит достать массив из индикатора в советнике