Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Треть инфы будет теряться в стандартном индикаторе( посмотрите код в первом посте )!
А писать с "нуля" свой индикатор "рука не поднимается" - хорошо же сделан стандартный!
До и как осуществить в своём индикаторе доступ к буферам из советника?
Одним словом - большая головная боль.
Зачем Temp-массивы? Достаточно при появлении новых данных сдвигать старые данные в индикаторных буферах (и не делать этого, если одновременно с появлением новых бид/аск появился бар - они и так сдвинутся).
И почему вы считаете, что потеряются данные? OnBookEvent разве не обработает все события из очереди?
Про доступ к индикаторным буферам из советника вам уже давали ссылку, совсем недавно было обсуждение и по итогам выложен код в базу.
Объекты или канва.
Разрабы на это не пойдут, гарантия.
В свете открытия доступа к внешней информации может и пойдут...
Как работать с этой новой инфой в терминале? Свечки минутные нарезать? :))) Или вся это инфа нужна будет только для тестирования?
А так можно будет и ренко и тиковые и всё что душе угодно... И всё без костылей....
Зачем Temp-массивы? Достаточно при появлении новых данных сдвигать старые данные в индикаторных буферах (и не делать этого, если одновременно с появлением новых бид/аск появился бар - они и так сдвинутся).
И почему вы считаете, что потеряются данные? OnBookEvent разве не обработает все события из очереди?
Про доступ к индикаторным буферам из советника вам уже давали ссылку, совсем недавно было обсуждение и по итогам выложен код в базу. Сейчас найду.
В OnBookEvent() обрабатывает все события, но отрисовываются буферы только в OnCalculate() с резайзом буферов - "дырки" получатся.
На один OnCalculate() может приходить 100 OnBookEvent()
А потом, сам размер буфера очень маленький, ну сдвинул 20 раз, а потом?
P/S Не думаю, что из OnBookEvent() можно сдвигать значения буферов.
Завтра попробую.
В OnBookEvent() обрабатывает все события, но отрисовываются буферы только в OnCalculate() с резайзом буферов - "дырки" получатся.
Буфер индикатора можно заполнять из любой функции. А вот размер буфера меняется (сам) только в OnCalculate(). Слово "отрисовываются" не очень правильное.
Виноват :)
Буферы нужно не только заполнять, но и сдвигать данные в буферах. А много ли инфы уместится на Н1, где размер буфера ~800 ?
А на малоликвидных инструментах вообще пшик (всего 30-40)!!!!
Для синтетических Ask и Bid размера буфера INT_MAX малова-то будет.
Хотелось бы ULONG_MAX.
И ещё малоприятный момент. Calculate() может приходить раз в минуту!!!!
>> А так можно будет и ренко и тиковые и всё что душе угодно... И всё без костылей....
+1000000000000000000000000000000000
В OnBookEvent() обрабатывает все события, но отрисовываются буферы только в OnCalculate() с резайзом буферов - "дырки" получатся.
На один OnCalculate() может приходить 100 OnBookEvent()
ОнКалкулейт можно вызывать самому откуда угодно.
А много ли инфы уместится на Н1, где размер буфера ~800 ?
А на малоликвидных инструментах вообще пшик (всего 30-40)!!!!
Для синтетических Ask и Bid размера буфера INT_MAX малова-то будет.
Ответьте на мой вопрос: куда вы хотите вставить ULONG_MAX данных, если на графике всего 800 точек по горизонтали? Сжимать, или рисовать слева, где нет баров?
В любом случае, ни той ни той возможности нет.
Поэтому вариант 1: рисовать на графике инструмента, у которого больше всего истории (сам график можно скрыть, развернув подокно индикатора на 100%).
И вариант 2: ждать, пока сделают "свои котировки в МТ5", и слать свои бид/аск туда.
ОнКалкулейт можно вызывать самому откуда угодно.
Ответьте на мой вопрос: куда вы хотите вставить ULONG_MAX данных, если на графике всего 800 точек по горизонтали? Сжимать, или рисовать слева, где нет баров?
В любом случае, ни той ни той возможности нет.
Поэтому вариант 1: рисовать на графике инструмента, у которого больше всего истории (сам график можно скрыть, развернув подокно индикатора на 100%).
И вариант 2: ждать, пока сделают "свои котировки в МТ5", и слать свои бид/аск туда.
Вариант 1:
Отображаться будут последние 800 точек, а остальные будут в буфере "невидимыми" графически,
но доступными из кода.
2. Делать полный скролл, не отображая бары на чарте.
3. Делать асинхронный скролл, чарта и индикатора
4. Полуасинхронный скрол (самый лучший) Синхронное скролирование по количеству баров - а дальше только индикатор.
>> ОнКалкулейт можно вызывать самому откуда угодно.
Вызвать-то можно, но при этом буферы не меняют размера.
P/S Повторяю, что в 99% не интересна привязка ко времени, интересны только сами ценовые значения.
Да и визуально удобнее работать, когда ты видишь в реальном времени, изменения реального(заявки), а не пост (совершилась сделка) рынка.
P/S Не думаю, что у разработчиков могут возникнуть сложности с реализацией этой идеи (может и заблуждаюсь).
Но нужно (по флагу) отключать OnCalculate(), дать доступ к изменению размера буферов. И добавить функцию н-р Paint() - для отображения данных.
Ну и если совсем захотят улучшить и так отличный индикатор, то сделать полуасинхронное скролирование.
Нет флага - стандарные функции индикатора, есть флаг - работаем без времени на "всю катушку" :)
При этом все стандартные прелести индикатора всегда "под рукой".
Изначально неправильное направление для решения отображения котировок. Дать пользователю возможность менять размерность индикаторных буферов - это как вложить гранату в руку обезьяне.
Если и смотреть возможность реализации - то выше советовали: объекты, Canvas. В качестве образца - новый стакан в МТ5 с лентой сделок. Да, работы много, да, придётся самостоятельно решать много вопросов - но это всё проблема программиста и только его.
Не путайте пользователя и программиста!
НЕ ПОЛЬЗОВАТЕЛЬ будет переключать индикатор в этот режим.
P/S И большая просьба.
Не отвечайте за разработчиков.
Откуда Вы можете знать: Может им понравится моя идея?
Не путайте пользователя и программиста!
НЕ ПОЛЬЗОВАТЕЛЬ будет переключать индикатор в этот режим.
P/S И большая просьба.
Не отвечайте за разработчиков.
Откуда Вы можете знать: Может им понравится моя идея?