Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
. . .
HST-файл обновляется при этом точно. Но график после Refresh - нет. Терминал всего один раз считывает данные из HST-файла - когда первый раз открывается нужный график. Далее HST-файл никак не участвует в формировании данных. И если, например, аварийно завершить работу терминала, то HST-файл останется со старыми данными.
Так вот вопрос, как заставить обновить данные графика из его HST-файла? Или перефразировав - как добавить (удалить) на online-графике бар?
Да, действительно, терминал считывает данные из *.hst файла только при первом открытии графика.
Поэтому заставить терминал в дальнейшем считывать историю из файла для online-графика нельзя.
В свое время, когда я экспериментировал "подсовыванием" своих скорректированных данных в историю инструмента, обнаружил следующее.
Терминал сохраняет свои текущие данные в *.hst файле и считывает историю инструмента заново при смене профиля. Таким образом, создав
два профиля с разными инструментами, я модифицировал историю одного при работе другого. Затем производил смену профиля. Данные на графике
при этом корректировались. Однако этот способ работал неустойчиво и требовал рутинных манипуляций с терминалом. Достаточно было вызвать
команду Refresh, как модифицированные данные тут же корректировались терминалом. Да и к тому же, терминал при смене профиля всегда обновлял
последние где-то 15-20 баров на графике.
В конечном счете, по-крайней мере для себя, я решил, что лучшее решение - это создание offline-графиков по мотивам period_converter.
Их можно обновлять в реальном времени. Графики всегда будут строиться из истории и ни каких неожиданных обновлений из сервера котировок
не будет. И если терминал вдруг аварийно завершит работу, то данные не будут утеряны.
Ilnur, cпасибо за ответ.
Если менять бары относительно далекого прошлого, то на них команда Refresh не сказывается.
Пытался когда-то отловить "свои" (не WM_COMMAND) сообщения терминала при первом открытии графика или смене профиля - безрезультатно.
Найти флаг, который отвечает за считывание данных из HST-файла, не получилось.
Вот простая функция на MQL4, которая возвращает список всех символов, предоставляемых ДЦ.
Символы считываются из файла symbols.raw (идея kaisa).
Спасибо что упомянули,
а мы все по-старинке _llseek да _lreed даже не знал что у них есть FileReadString
интересно как эта функция действует на встечающиеся в середине 00 проверять не хочется (комбат все хотел узнать описание этих символов)
я уж как то к delphi приспособился логинишься проверяешь этот simbol.raw на изменение начинаешь пробивать
О ЖИЗНИ
просто хочу создать сайт о mt
всем будет жутко интересно
информация у меня о 320 компаниях которые используют() mt
а соратников нет
onix сдох, mt4stats.com лажа
Спасибо что упомянули,
а мы все по-старинке _llseek да _lreed даже не знал что у них есть FileReadString
интересно как эта функция действует на встечающиеся в середине 00 проверять не хочется (комбат все хотел узнать описание этих символов)
Если функция в процессе считывания встречает 00, то воспримет его как конец строки.
Жаль только, что проблема вылавливания группы инструментов, что я там озвучил, так и повисла. Никто не копал дальше?
Группа инструментов: offset 0x64 (100) для первого
ну и соответсвенно 1936*номер инструмента+0x64
Группа инструментов: offset 0x64 (100) для первого
ну и соответсвенно 1936*номер инструмента+0x64
Вот благодарю! А то в этом symbols.raw черт ногу сломит - столько мусора...
Получилось следующее. Проверил на восьми кухнях, вроде работает. Причесывать и оптимизировать не стал (коды fGetSymbols() и fGetGroups() практически идентичны).
fGetSymbols() и fGetGroups() работают только вместе, поскольку последняя использует максимальный номер группы, определенный в fGetSymbols() - такова структура файла SymGroups.raw, в нем много скрытых и неиспользуемых групп.
Структура получаемых массивов:
sSym[i][0] - наименование символа
sSym[i][1] - описание символа
sSym[i][2] - номер группы символа (k); счет ведется с нуля, так у них задумано
sGrp[k][0] - наименование группы
sGrp[k][1] - описание группы
Последняя функция fPrintThisFuckingList() сугубо демонстрационная. В таком ее варианте на выходе получим следующее:
Group 1 - Indexes (Indexes); _SP500 ()
Group 7 - Forex3 (); USDZAR (US Dollar vs South Africa Rand)
Group 5 - Forex2 (Foreign Exchange Second); USDRUB (US Dollar vs Russian Ruble)
Group 0 - Forex (Foreign Exchange); USDJPY (US Dollar vs Japanese Yen)
Group 4 - Metals (Gold & Silver); SILVER (SPOT Silver Once vs Us Dollar )
Group 5 - Forex2 (Foreign Exchange Second); NZDJPY (New Zealand Dollar vs Japanese Yen)
Group 6 - Oil (нефть); Brent (Brent Crude Oil )
Group 2 - CFD (Contract For Difference); #XOM (ExxonMobil Corporation)
Собственно код:
Описалово по символу.
Тож не причесывал, вроде без проблем...
Скрипт для теста ...Вот благодарю! А то в этом symbols.raw черт ногу сломит - столько мусора...
Да всего-то 1936 байт, разобраться можно если нужно, хотя и мусора действительно хватает (это broco)
че-за "водники"
Запустить бы MT4Admistrator, там все эти параметры и устанавливаются,
полегче бы было, а filemon от sysinternal покажет offset.
Описалово по символу.
Тож не причесывал, вроде без проблем...
Скрипт для теста ...Здравжлм, вашбродь!
Описание символа - это тоже хорошо. Я поправил пост - добавил небольшую сопроводиловку.
P.S. А я-то думал, вот обрадую комбата :), а то он всякими правдами и неправдами пытается установить принадлежность символа к определенной группе.
Ты бы хоть запустил мой код для интересу :(