Присоединяюсь к вопросу: было бы удобно использовать встроенную функцию сдвига N-ного измерения массива на M элементов вправо или лево.
На сколько знаю, пока нужно сдвигать циклом, определив размер массива. Сложнее использование динамического(+данные не теряются).
А SetIndexShift() не поможет?
Устанавливает смещение линии индикатора относительно начала графика.
void SetIndexShift( intindex, // номер линии intshift// смещение );
Параметры
index
[in] Порядковый номер линии. Должен быть от 0 до 7.
shift
[in] Величина смещения в барах.
Возвращаемое значение
Нет.
Примечание
При положительном значении изображение линии смещается вправо, при отрицательном - влево. Значение, рассчитанное на текущем баре, рисуется с указанным смещением относительно текущего бара.
intArrayCopy(
void& dst_array[], // куда копируем // сюда, понятно имя массиваconstvoid& src_array[], // откуда копируем // сюда тоже егоint dst_start=0, // с какого индекса пишем в приемник // сюда 0int src_start=0, // с какого индекса копируем из источника // сюда, например с первого, значит 1int count=WHOLE_ARRAY// сколько элементов // сюда размерность массива минус 1
);
Таким образом массив будет скопирован сам в себя со сдвигом на 1 элемент. Нулевой будет выброшен, а последний пустой. Наоборот, выбрасывать последний элемент, я не пробовал но думаю что можно правильно расставить последние три параметра функции.
Можно ещё копировать массив сам в себя со сдвигом.
Таким образом массив будет скопирован сам в себя со сдвигом на 1 элемент. Нулевой будет выброшен, а последний пустой. Наоборот, выбрасывать последний элемент, я не пробовал но думаю что можно правильно расставить последние три параметра функции.
Не пробовал, но может пригодиться смена направления индексации.
P.S. Есть вопросы по тестеру стратегий. Поможешь?
Ты имеешь ввиду после копирования массива самого в себя поменять направление индексации? А надо-ли это? Я думаю что никаких проблем не будет копировать с нулевого индекса без последнего и вставлять с первого а нулевой останется или пустым или старым значением, не важно, ведь эта процедура нужна не просто ради копирования, а конкретно для замены одного из значений массива (нулевого или последнего) новым значением. А соответственно после такого копирования "освободившийся" элемент заполняется новым значением. И не важно что в нём оставалось...
По тестеру, если смогу - помогу. Но тут есть и более достойные которые могут подсказать.
Управляющие сигналы и контроль открытых позиций производит индикатор. Через глобальные переменные терминала в советник передаются команды об открытии и закрытии позиций.
Использование индикаторов удобно тем, что их запускается много и паралельно можно видеть работу нескольких логических блоков.
Вопрос. В тестере стратегий индикатор может работать с функцией OrderSelect() , OrdersTotal() и т.д.
Ты имеешь ввиду после копирования массива самого в себя поменять направление индексации? А надо-ли это? Я думаю что никаких проблем не будет копировать с нулевого индекса без последнего и вставлять с первого а нулевой останется или пустым или старым значением, не важно, ведь эта процедура нужна не просто ради копирования, а конкретно для замены одного из значений массива (нулевого или последнего) новым значением. А соответственно после такого копирования "освободившийся" элемент заполняется новым значением. И не важно что в нём оставалось...
По тестеру, если смогу - помогу. Но тут есть и более достойные которые могут подсказать.
Не проверял, но что мешает тебе самому проверить? Просто надо сохранить шаблон со всеми индикаторами под именем советника и тогда при запуске советника в тестере все индикаторы подгрузятся и возможно будут корректно работать. Но не исключено, что будут брать значения из вкладки "Торговля" и "История счёта".
Да зачем чесать правое ухо пальцем левой руки? Или ноги... Я сказал только о том, что второй вариант, за ненадобностью, не проверял. А по логике будет работать без проблем.
AlexeyVik: Не проверял, но что мешает тебе самому проверить? Просто надо сохранить шаблон со всеми индикаторами под именем советника и тогда при запуске советника в тестере все индикаторы подгрузятся и возможно будут корректно работать. Но не исключено, что будут брать значения из вкладки "Торговля" и "История счёта".
Присоединяюсь к вопросу: было бы удобно использовать встроенную функцию сдвига N-ного измерения массива на M элементов вправо или лево.
На сколько знаю, пока нужно сдвигать циклом, определив размер массива. Сложнее использование динамического(+данные не теряются).
Устанавливает смещение линии индикатора относительно начала графика.
void SetIndexShift(
int index, // номер линии
int shift // смещение
);
Параметры
index
[in] Порядковый номер линии. Должен быть от 0 до 7.
shift
[in] Величина смещения в барах.
Возвращаемое значение
Нет.
Примечание
При положительном значении изображение линии смещается вправо, при отрицательном - влево. Значение, рассчитанное на текущем баре, рисуется с указанным смещением относительно текущего бара.
Пример:
Можно ещё копировать массив сам в себя со сдвигом.
Таким образом массив будет скопирован сам в себя со сдвигом на 1 элемент. Нулевой будет выброшен, а последний пустой. Наоборот, выбрасывать последний элемент, я не пробовал но думаю что можно правильно расставить последние три параметра функции.
Можно ещё копировать массив сам в себя со сдвигом.
Таким образом массив будет скопирован сам в себя со сдвигом на 1 элемент. Нулевой будет выброшен, а последний пустой. Наоборот, выбрасывать последний элемент, я не пробовал но думаю что можно правильно расставить последние три параметра функции.
Не пробовал, но может пригодиться смена направления индексации.
P.S. Есть вопросы по тестеру стратегий. Поможешь?
Не пробовал, но может пригодиться смена направления индексации.
P.S. Есть вопросы по тестеру стратегий. Поможешь?
Ты имеешь ввиду после копирования массива самого в себя поменять направление индексации? А надо-ли это? Я думаю что никаких проблем не будет копировать с нулевого индекса без последнего и вставлять с первого а нулевой останется или пустым или старым значением, не важно, ведь эта процедура нужна не просто ради копирования, а конкретно для замены одного из значений массива (нулевого или последнего) новым значением. А соответственно после такого копирования "освободившийся" элемент заполняется новым значением. И не важно что в нём оставалось...
По тестеру, если смогу - помогу. Но тут есть и более достойные которые могут подсказать.
Управляющие сигналы и контроль открытых позиций производит индикатор. Через глобальные переменные терминала в советник передаются команды об открытии и закрытии позиций.
Использование индикаторов удобно тем, что их запускается много и паралельно можно видеть работу нескольких логических блоков.
Вопрос. В тестере стратегий индикатор может работать с функцией OrderSelect() , OrdersTotal() и т.д.
Ты имеешь ввиду после копирования массива самого в себя поменять направление индексации? А надо-ли это? Я думаю что никаких проблем не будет копировать с нулевого индекса без последнего и вставлять с первого а нулевой останется или пустым или старым значением, не важно, ведь эта процедура нужна не просто ради копирования, а конкретно для замены одного из значений массива (нулевого или последнего) новым значением. А соответственно после такого копирования "освободившийся" элемент заполняется новым значением. И не важно что в нём оставалось...
По тестеру, если смогу - помогу. Но тут есть и более достойные которые могут подсказать.
Перед копированием и после.
Не проверял, но что мешает тебе самому проверить? Просто надо сохранить шаблон со всеми индикаторами под именем советника и тогда при запуске советника в тестере все индикаторы подгрузятся и возможно будут корректно работать. Но не исключено, что будут брать значения из вкладки "Торговля" и "История счёта".
Пробовал. Пока не видит. Буду пробовать ещё.