P.P.S. Чтобы лучше представить открывающиеся перспективы, можно представить себе пользовательские индикаторы, обрабатывающие эти данные. Конечно для того, чтобы отказаться от программ типа матлаба пользователям придётся здорово попотеть над кодированием алгоритмов :), но простую обработку дешевле делать прямо в МТ.
Самый простой вариант, нет такого символа, как ты передаешь в качестве имени файла. Это я к тому, что может и не в функции дело.
Я в Вашем коде не смог отыскать команду обновления графика
PostMessageA(hwnd, WM_COMMAND, 33324, 0);
Можете глянуть как строить автономные графики например вот здесь:
"MQL4: Графики без "дыр""
Самый простой вариант, нет такого символа, как ты передаешь в качестве имени файла. Это я к тому, что может и не в функции дело.
Может быть. По крайней мере когда я замаскировал его под EURUSD1, номер прошёл. Но что-то мне кажется, что раньше я это тоже пробовал и номер не проходил. Вопрос с обновлением на форуме уже всплывал, такое ощущение что иногда какой-то трудновоспроизводимый заскок случается.
Я в Вашем коде не смог отыскать команду обновления графика
PostMessageA(hwnd, WM_COMMAND, 33324, 0);
Можете глянуть как строить автономные графики например вот здесь:
"MQL4: Графики без "дыр""
Это немного не то, задача функции гораздо скромнее - записать формально правильный файл hst. Cмотреться этот файл должен другими средствами.
Для пущей наглядности прелести идеи аппроксимировал данные полиномом с помощью индюка ang_PR (Din)-v1.mq4 :)
Чтобы закончить тему. На самом деле всё гораздо проще. Не знаю, почему меня на hst замкнуло. Элементарный код:
//+------------------------------------------------------------------+ //| ShowData.mq4 | //| Candid | //| likh@yandex.ru | //+------------------------------------------------------------------+ #property copyright "Candid" #property link "likh@yandex.ru" #property indicator_separate_window #property show_inputs #property indicator_buffers 1 #property indicator_color1 Blue extern string FileName = "Data.txt"; int pos; int handle; double Data[]; int init() { IndicatorShortName(FileName); SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,Data); handle = FileOpen(FileName,FILE_CSV|FILE_READ,';'); return(0); } int deinit() { FileClose(handle); return(0); } int start() { pos = 0; while (FileIsEnding(handle) == false) { Data[pos] = FileReadNumber(handle); pos++; } Data[pos] = EMPTY_VALUE; return(0); }
и любуемся данными
Правда на них теперь нельзя бросить индикатор для обработки, но код настолько прост, что его несложно добавлять в индикаторы, реализующие нужные прцедуры. Пожалуй в таком виде этим пользоваться можно.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Теперь пытаюсь открыть файл автономно. При первой попытке он вроде открылся, но я не учёл наличие отрицательных значений и решил поправить. После этого стабильно получаю "Ожидание обновления".
Понимаю, что разработчики не обязаны помогать нештатному использованию продукта, но всё таки непонятно, почему нужно обновлять автономный график.
P.S. Понимаю, что предлагать такое разработчикам опасно :), но штатная возможность просмотра графика произвольных данных наверное была бы полезна многим пользователям.