Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
И ещё "читающий" Вы наш... Вопрос:
Для чего делают билд таймсерии, если данные готовы ( CopyTime(symbol,period,first_date+PeriodSeconds(period),1,times) )?
Они не готовы. Они, возможно, есть на диске. Даже, вполне вероятно, синхронизированы с историей сервера (если чарт открыт или другая программа недавно их запрашивала).
Но это не значит, что функция в это просто поверит. Нужно запросить данные с диска, построить кэш в памяти, и только тогда можно будет сказать, что история есть и начинается вот с такой даты.
Но вам не поможет ни этот мой ответ, ни многократные ответы разработчиков, ни работающий код, ни документация. Функция не работает так, как вы себе придумали, в этом месте сбой.
Внимательнее читайте документацию, не выборочно. Наличие данных истории на диске вовсе не означает для терминала "ТОЧНО есть". В данном случае (при обращении из индикатора), функции работают только с кэшем таймсерии в памяти. Т.е. происходит моментальное синхронное обращение к памяти, и если там нет подготовленной таймсерии, то и дату SERIES_FIRSTDATE (первого элемента массива) вам не вернут. Но запрос конечно инициирует подготовку-загрузку таймсерии в память.
Запрос SERIES_TERMINAL_FIRSTDATE связан с инициализацией базы и с синхронизацией ее с сервером, т.е. первое обращение в любом случае моментально не отработает.
Принципиальная возможность получения необходимой истории проверяется через SERIES_SERVER_FIRSTDATE. Т.е. можно конечно заложится и на X итераций запроса истории, но если терминал подтверждает наличие истории по SERIES_SERVER_FIRSTDATE, то доступность соответствующих данных таймсерии лишь вопрос времени (синхронизация базы м1 с сервером и генерация таймсерии).
Это я понял, но скажите, почему нельзя было сделать так, как я описал выше?
На скорость обработки информации это никак бы не повлияло:
Если была какая-либо информация по инструменту - заносим дату первого её появления и храним в памяти - 8 байт!
Можно даже не хранить, а когда делаешь SymbolSelect(), то заносить в память.
При обращении функцией SeriesInfoInteger ( SERIES_TERMINAL_FIRSTDATE ) получаем:
А -1 - нет никаких данных
Б. 0 - дпнные есть но не готовы
В. Дата первой информации
Тогда бы всё было ясно и прозрачно.
-1 - Идём на сервер
0 - Ждём следующей итерации, чтобы проверить и (или) построить таймсерию
> 0 Строим таймсерию
Из вашей справки я понял, что ВЫ почти так и сделали, оказывается нет.
Видимо один программист начинал писать, а кто-то другой закончил
Ваша реализация хороша для ФОРЕКС, но очень неудобна для ФОРТС.
На ФОРТС котировки могут долго не приходить, а таймсерия выгружается из паияти
и приходится весь процесс получения данных повторять снова, причём с заходом на сервер!
Ваша реализация хороша для ФОРЕКС, но очень неудобна для ФОРТС.
На ФОРТС котировки могут долго не приходить, а таймсерия выгружается из паияти
и приходится весь процесс получения данных повторять снова, причём с заходом на сервер!
Микалас, я все еще в вас верю. Вы обязательно прочтете все, что тут говорили.
ФОРТС Прошу помощи
Мультивалютный индикатор - это не так просто.
Для начала, проверьте доступность инструментов:
Потом откройте графики всех используемых инструментов (достаточно невидимого объекта-графика), чтоб нормально загружалась история.
И только потом пробуйте загружать историю с помощью CheckLoadHistory.
Но и этого может быть не достаточно.
А мне кстати тоже не нравится эта ситуация с мультивалютным анализом и построением индикаторов. Как это реализовано.
Ведь это танцы с бубном, прежде чем начать что то вычислять необходимо сделать кучу проверок... ни в одной другой платформе такого не встречал. Там все проще с точки зрения пользователя.
Не секрет что многие даже те кто изучили программирование на МТ4 пугаются сложности программирования в МТ5.
На месте разработчиков я бы постарался облегчить нам жизнь. Объединить все эти танцы с бубном в одну команду типа
GatData(RTS,1000)
и терминал решает эту задачу, делает проверки, если нужно открывает графики, подкачивает историю, обновляет и т.д.
И после её выполнения у меня есть актуальные данные с которыми можно работать.
З.Ы. Помнится был девиз терминал для домохозяек...
Микалас, я все еще в вас верю. Вы обязательно прочтете все, что тут говорили.
komposter!
(всё что дальше - без обид!)
Что Вы нашли ПЛОХОГО в моей модели получения информации по тамсериям?
Потому что оно не от Вас!?
Я пытаюсь "достучаться" до разработчиков чтобы они упростили всем нам
"жизнь", но ВСЕГДА находятся такие как Вы, которые САМЫЕ УМНЫЕ!
Поэтому будет так как есть!
А мне кстати тоже не нравится эта ситуация с мультивалютным анализом и построением индикаторов. Как это реализовано.
Ведь это танцы с бубном, прежде чем начать что то вычислять необходимо сделать кучу проверок... ни в одной другой платформе такого не встречал. Там все проще с точки зрения пользователя.
Не секрет что многие даже те кто изучили программирование на МТ4 пугаются сложности программирования в МТ5.
На месте разработчиков я бы постарался облегчить нам жизнь. Объединить все эти танцы с бубном в одну команду типа
GatData(RTS,1000)
и терминал решает эту задачу, делает проверки, если нужно открывает графики, подкачивает историю, обновляет и т.д.
И после её выполнения у меня есть актуальные данные с которыми можно работать.
З.Ы. Помнится был девиз терминал для домохозяек...
Привет!
Универсальный и простой подход сделает невозможным написание эффективных программ. Нельзя сделать одну функцию ДайДанные, в которой будут все проверки - это будут тормоза, в 95% случаев ненужные пользователю.
В случае с индикатором - он работает максимально быстро с данными своего графика. Он для этого создан, под это заточен. Если сделать его "готовым к любым ситуациям", то простая МА будет тормозить как сложный монстр.
Я не защищаю разработчиков, ни в коем случае. Мне тоже многое не нравится.
Но я стараюсь быть конструктивным, и понимаю, что не знаю всех внутренностей терминала.
В чем-то Микалас прав - зажмуривается (не читает) и продолжает кричать "Неудобно!", и дискуссии становятся популярными и заметными для разработчиков. И они что-то делают (уже несколько ошибок исправили по его наводкам).
Так что зря я бурчу, наверное )
komposter!
(всё что дальше - без обид!)
Что Вы нашли ПЛОХОГО в моей модели получения информации по тамсериям?
Потому что оно не от Вас!?
Я пытаюсь "достучаться" до разработчиков чтобы они упростили всем нам
"жизнь", но ВСЕГДА находятся такие как Вы, которые САМЫЕ УМНЫЕ!
Поэтому будет так как есть!
Я уже понял.
Просто была озвучена задача - написать индикатор. А оказалось, что надо улучшить язык.
В такой постановке вопроса я бы с советами не лез )
Я уже понял.
Просто была озвучена задача - написать индикатор. А оказалось, что надо улучшить язык.
В такой постановке вопроса я бы с советами не лез )
Андрей!
Вы потратили больше времени, опубликовывая здесь посты.
За это время Вы могли написать индикатор по "моим" кляузам (для ФОРТС)
И сами увидели те "костыли", про которые я говорю!
Андрей!
Вы потратили больше времени, опубликовывая здесь посты.
За это время Вы могли написать индикатор по "моим" кляузам (для ФОРТС)
И сами увидели те "костыли", про которые я говорю!
Я писал, именно поэтому и знаю, о чем говорю.
Вы бы тоже уже получили бы свой индикатор, если бы цель была получить индикатор, а не исправить язык.
Я писал, именно поэтому и знаю, о чем говорю.
Вы бы тоже уже получили бы свой индикатор, если бы цель была получить индикатор, а не исправить язык.
Я написал индикатор, НО им невозможно пользоваться.
За что ни возьмись - везде проблемы!
Есть OrderSendAsync() - нет механизма отслеживания, хотя есть ORDER_ID
Есть глобальная переменная - при закрытии терминала она обнуляется...
Есть "непонятные" задержки в исполнении приказов - половина сделали, а дальше
обвинение в шарлотанстве....
И так далее...
Я поднимаю вопросы потому что проблемы и ошибки ДЕЙСТВИТЕЛЬНО существуют.
(я не ВЫДУМЫВАЮ их!)
Я торгую на БИРЖЕ за РЕАЛЬНЫЕ деньги, а не за фантики!
И поэтому и мне и ВСЕМ, кто торгует АРХИВАЖНО, чтобы торговые функции
были БЕЗУПРЕЧНЫМИ.
Архитектура МТ5 - СУПЕР, мне очень нравится, но должно всё работать исправно и
доспуп к данным должен быть быстрым и простым.
И... Давайте закончим на этом, пожалуйста.