Конкретно вопрос к evge, поскольку наврядли кто еще сможет подсказать.
Итак, как отметить сигнал индикатора в том месте,где он появился ВНУТРИ БАРА [0].
То есть фактически это GetValue(Last)
Общие вопросы по разработке > Вопрос к evge
- evge
- Администратор
- Сообщения: 1811
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 367 раз
- Контактная информация:
Re: Вопрос к evge
Это невозможно на текущий момент.
Попробую объяснить, может у меня получится донести.
Представьте график с барами.
Как будет работать отрисовка индикатора на таком графике?
0. Инициализируются параметры индикатора, глобальные переменные.
1. Берется бар очень далеко слева с текущим индексом (допустим 0) (CurrentIndex).
2. Данные этого бара передаются в индикатор под индексом серии 0, т.е. индикатор будет думать что этот далекий в истории бар имеет индекс 0 в серии!!! (это не тоже самое что CurrentIndex)
3. Для индикатора бар с индексом [1] (или -1 кому как удобно) [2] [3] и т.д. это бары которые были до него.
4. Все эти бары имеют только OHLC, Volume, VolumeBid, VolumeAsk, OpenInterest. Никаких данных внутри бара в этом отрисованном очень давно баре НЕТ
5. Для этого бара с индексом 0 выполняется код из Evaluate(), в котором вы естественно можете обратится к предыдущим данным истории указывая смещение назад [1..N] относительно этого бара.
6. Выбирается следующий бар из далекой истории с текущим индексом (CurrentIndex) больше на 1 и всё повторяется с пункта 2.
7. И так до самого последнего (свежего) бара на графике, на котором все действие и закончится.
Что происходит, когда последний бар ещё не отрисовался и меняется?
А происходит всё тоже самое, но с пункта 0, при каждом изменении активного последнего бара. При этом индикатор заново переинициализируется и глобальные переменные очищаются. Это важно, т.к. обратиться при каждом изменении последнего бара к данным глоб. переменных не получится, каждый раз при изменении последнего (рисующегося) бара на графике они будут инициализированы заново.
Поэтому и не получится применить идею сохранения от активного (последнего) бара сигналов куда-то в DoubleList, IntList глоб. переменные и затем по ним на график в истории отрисовать сигналы.
Что бы такую идею реализовать надо суперглобальные переменные индикатора, которые непереинициализируется (не очистятся) после повторной перерисовки индикатора. Но такого в АД4 нет.
Разве что можно реализовать идею через работу с файлами для хранения сигналов
Попробую объяснить, может у меня получится донести.
Представьте график с барами.
Как будет работать отрисовка индикатора на таком графике?
0. Инициализируются параметры индикатора, глобальные переменные.
1. Берется бар очень далеко слева с текущим индексом (допустим 0) (CurrentIndex).
2. Данные этого бара передаются в индикатор под индексом серии 0, т.е. индикатор будет думать что этот далекий в истории бар имеет индекс 0 в серии!!! (это не тоже самое что CurrentIndex)
3. Для индикатора бар с индексом [1] (или -1 кому как удобно) [2] [3] и т.д. это бары которые были до него.
4. Все эти бары имеют только OHLC, Volume, VolumeBid, VolumeAsk, OpenInterest. Никаких данных внутри бара в этом отрисованном очень давно баре НЕТ
5. Для этого бара с индексом 0 выполняется код из Evaluate(), в котором вы естественно можете обратится к предыдущим данным истории указывая смещение назад [1..N] относительно этого бара.
6. Выбирается следующий бар из далекой истории с текущим индексом (CurrentIndex) больше на 1 и всё повторяется с пункта 2.
7. И так до самого последнего (свежего) бара на графике, на котором все действие и закончится.
Что происходит, когда последний бар ещё не отрисовался и меняется?
А происходит всё тоже самое, но с пункта 0, при каждом изменении активного последнего бара. При этом индикатор заново переинициализируется и глобальные переменные очищаются. Это важно, т.к. обратиться при каждом изменении последнего бара к данным глоб. переменных не получится, каждый раз при изменении последнего (рисующегося) бара на графике они будут инициализированы заново.
Поэтому и не получится применить идею сохранения от активного (последнего) бара сигналов куда-то в DoubleList, IntList глоб. переменные и затем по ним на график в истории отрисовать сигналы.
Что бы такую идею реализовать надо суперглобальные переменные индикатора, которые непереинициализируется (не очистятся) после повторной перерисовки индикатора. Но такого в АД4 нет.
Разве что можно реализовать идею через работу с файлами для хранения сигналов
никогда такого не было и вот опять
Re: Вопрос к evge
Это в общем-то было понятно. Думал может есть какие-нибудь программные методы.
Задача-то по сути несложная.
Неудобство визуальное вызывает тот факт, что он выставляет сигнал не всегда там, где он появляется.
Сейчас Last можно получить только в одном случае - Input.Close[0]
Задача-то по сути несложная.
Неудобство визуальное вызывает тот факт, что он выставляет сигнал не всегда там, где он появляется.
Сейчас Last можно получить только в одном случае - Input.Close[0]
Вернуться в «Общие вопросы по разработке»
Кто сейчас на конференции
Сейчас этот форум просматривают: Google [Bot] и 4 гостя