Написал я тут маленькую прогу помощника, парсит сайт http://www.investing.com/
что требуется:
ОС Win7 или выше
подключение к интернет
что умеет:
пока только показывать что там наонализировал сайт
обновление раз в минуту
как смотреть:
всё просто. Три строки Moving Averages, Technical Indicators, Summary. Пять периодов 5м, 15м, 1ч, День, Месяц.
пустой квадратик - нейтрально
на половину зелёный/красный - покупать/продавать
полностью зелёный/красный - активно покупать/продавать
галочка внизу каждого - для удобства, просто поставить или убрать чтобы отметить пару
с права список всех выведенных пар
вроде пока всё
прошу протестировать, кому интересно
Маленький помощник
интересная штука. уже как-то обсуждалось тут, мол написать алгоритм, торгующий по сигналам/изменению сигналов с руинвестинга.
было бы прикольно дописать сову-доску на mql4, которая бы показывала все тоже самое но уже в терминале мт4.
не смог удержаться... слово "наонализировал" от слова "онал"? :)) :)) :))
в общем я не настолько силён в MQL чтобы написать советника со всеми красивостями, но могу сделать так чтобы прога давала команду мт4 выставить лот по определённой паре
P.S. ну по поводу наонализировал, у меня были подобные ассоциации, решил оставить в качестве крупицы юмора :)
в общем я не настолько силён в MQL чтобы написать советника со всеми красивостями, но могу сделать так чтобы прога давала команду мт4 выставить лот по определённой паре
P.S. ну по поводу наонализировал, у меня были подобные ассоциации, решил оставить в качестве крупицы юмора :)
парсить сайт гораздо сложнее чем наваять доску на mql4 )))
хм... а такой вопрос - твоё ПО не в режиме же онлайн показывает значения с руинвестинга? какое время стоит на обновление инфы? ты же не ежесекундно спамишь сайт своими запросами, ведь так?
ну да, не спамлю, раз в минуту запрос делаю
ну да, не спамлю, раз в минуту запрос делаю
окей. раз ты можешь посылать завпрос терминалу на открытие ордера, может тогда ты сможешь создавать глобальные переменные в терминале?
ну типа с таким вот видом:
имя переменной(оно стринговое) "пара_ТФ", а значение переменной(оно дабловое) одно из трех: ноль - флет(пустой квадрат как у тебя), "-1"- продавать, "1" - покупать.
просто если и связывать код mql4 с твоим то лучше это делтаь либо через прямые запросы к твоим dll-кам(а я знаю это делать только в теории, на практике не страдал этим на mql4), либо через файл(сразу можно отбрасывать ибо это каменный век), либо через глобальные перменные самого терминала мт4, либо тебе самому рисовать и менять данные объектов в терминале.
вобще, на самом деле по сути доска- это всего лишь набор объектов на окне(в основном Label), значение которых меняется. то есть суть-то вобще очень простая: однократно создать объекты с нужным позиционированием и потом просто в OnTimer() менять их значения на текущие(ну там раз в минуту как у тебя).
там все очень просто, ну, по крайней мере, в разы проще, чем написанное тобой ПО.
первая мысль о передачи команды была как раз о создании фаила который парсит советник и по итогам парсинга выставляет ордер, если почитать то может можно и глобальные переменные подёргать.
Я прекрасно знаю, что очень просто сделать что либо, когда знаешь как это работает, у меня написание этой проги заняло 2-3ч аса :) , а как нарисовать советник и тем более парсить сайт с MQL мне ещё надо разобраться - от сюда и сложности, кому-то MQL просто - кому :)то QT :)
ладно, смотри, выложу в исходниках простые доски честно стыренные с FF, чтобы ты понимал о чем я говорю. никаких классов и ООП, голый mql4.
первая с удаленным кодом, вторая вроде как оригинал но с закомментированием половины кода, которые мне тупо были не нужны(ну я вроде ничего не грохал, просто комемнтил то что мне было не нужно... эдак полгода назад :))).
суть простая: рисование лейблов и буттонов.
на обилие кода не пугайся - там все очень просто и большинство функций связаны с работой с кнопками с перекрашиванием цвета кнопок/лейблов.
ну я думаю человеку с твоим опытом там все будет просто и понятно.
ну и понятное дело надо чтобы все 28 пар были доступны в окне данных.
спасибо, почитаю, но скорого решения в виде советника не обещаю :-/
Добавлено: 17-05-2016 11:52:53
Вопрос по ходу дела - что считать сигналом ко входу?
Например:
строчка sum вся красная(все квадратики полностью красные) - продаём
строчка sum вся красная, кроме 5м, она на половину зелёная - продаём
....
Добавлено: 17-05-2016 12:20:07
это по отношению к советнику конечно, я как то не доверяю исключительно анализу сайта
Изменено 17 мая, 2016 пользователем Rezus666
Вопрос по ходу дела - что считать сигналом ко входу?
Например:
строчка sum вся красная(все квадратики полностью красные) - продаём
строчка sum вся красная, кроме 5м, она на половину зелёная - продаём
ну это лучше оставить на усмотрение пользователя. сделать на выбор использовать/не использовать определенный ТФ для входа.
дальше будут вопрсоы по поводу выхода :d
вобще, глянь если интересно как сделаны доски от aeseme на FF. там куча индикаторов(тысячи их!!!!), и каждый можно настраивать, использхвоать не использовать, параметры самого индюка и т.д. но не это суть главное.
я сам могу написать доску по твоей затее, но вот как тащить сигналы из твоих dll я не знаю... просто получается, если я каждый раз буду обращаться к твоей какой-либо функции, то будет происходить парсинг страницы руинвестинга - это не есть хорошо с точки зрения оптимизации кода.
а вот если бы твой код хранил бы текущие сигналы где-нибудь(какой-нибудь буфер)- я бы мог их брать и пихать в доску.
это основная задача, а уже как входить/выходить - дело второстепенной важности(с технической точки зрения).
можно попробовать реализовать пока что через файл. как начало. просто попробовать.
ты можешь дописать свою прогу, чтобы она постоянно перезаписывала бы текстовый файл, я бы свои mql-ным кодом парсил бы и выводил значения на доску уже в терминале. мне надо только читать файл, писать я его не буду(это к будущим вопросам разделения доступа).
то есть как первый начальный этап попробовать реализовать это.
а дальше, если ты поймешь как своим кодом создавать глобальные переменные в мт4, можно будет переписать уже мой код под уже вторую реализацию этой идеи(и работать будет гораздо быстрее и с точки зрения написания кода - стабильнее).
если копнуть глубже, то для реализации второй идеи(через глобальные переменные терминала) при запуске ПО хорошо бы чтобы выплывало окно, где нужно было бы выбрать нужный терминал(гипотетически, на ПК работает несколько терминалов, тебе нужно работать только с одним из них, и именно с нужным а не рандомным(ID процесса нужно тащить или чего? я не особо силен с winAPI), так как у каждого терминала свои глобальные переменные), ну это так, лирика.
по поводу winapi это не ко мне :d прога на линуксе писана ;) , просто под кроскомпиляцию чтоб и линукс и винда
что касается взаимодействия, пробежался быстро по справочнику и пока не нашёл как изменить глобальные переменные из вне, но есть вариант с фаилом который обновляется моей прогой, а потом парсится отдельным советником, который в свою очередь создаёт глобальные переменные, тем самым увеличим количество советников до N+1, где N советник с доской, но и избавляемся от чтения фаила каждым советником в отдельности.... как то так.... не сильно замудрённо?
по поводу winapi это не ко мне :d прога на линуксе писана ;) , просто под кроскомпиляцию чтоб и линукс и винда
что касается взаимодействия, пробежался быстро по справочнику и пока не нашёл как изменить глобальные переменные из вне, но есть вариант с фаилом который обновляется моей прогой, а потом парсится отдельным советником, который в свою очередь создаёт глобальные переменные, тем самым увеличим количество советников до N+1, где N советник с доской, но и избавляемся от чтения фаила каждым советником в отдельности.... как то так.... не сильно замудрённо?
да, можно и так. только у меня никаких файлов не создается и не обновляется когда я использую твоё ПО...
я ещё не доделал это - работа мешает :d
Плюсую, прикольная идея.
Было бы еще круто отдельно видеть значение "Прогноз пользователей".
Писать данные в обычный блокнот, имхо, вполне нормальное решение, все равно обновлять чаще 1 раза в минуту смысла мало, как и мучить глобальную.
Вот только мне интересно, как вы будете определять время входа на ТФ старше М5? Т.е. с М1 понятно: вижу сигнал - вхожу, появился противоположный - выхожу, а вот выше уже непонятно.
По сути, для ускорения работы можно вообще обойтись без посторонних программ. Просто в MQL запихать весь этот список индюков и брать их направление >:d
а по ТФ всё просто, каждый юзер сам для себя выбирает, сколько суммарно должно быть сигналов для открытия ордера, как это реализовано в досках от aeseme. то есть например есть три сигнала по na м5-м30-h1 значит входим, как только пропадает один из них - выходим.
но это уже обсуждение самой ТС, а не реализации всей этой кучи в коде.
А в чем проблема сразу на mql распарсить страничку http://ru.investing.com/technical/Сводный-Технический-Анализ ?
Зачем этот промежуточный помощник?
В лаболатории есть opensource советник Supremacy, там парситься похожая табличка с myfxbook, можете посмотреть как пример.
Зачем этот промежуточный помощник?
изначально программа не задумывалась как промежуточная, а исключительно для удобства, чтобы все в одном окне и наглядно, свою функцию она выполняет :)
дорисовал проге вкладку settings в ней нажимаем кнопку find указываем место где должен лежать фаил и вводим желаемое имя фаила в строке внизу формы. Можно указать существующий фаил и согласится с заменой
В фаиле будут строчки следующего формата:
XXX-XXX|y1|y2|y3......|y15
где XXX-XXX пара, у1-у15 значение прогноза от -2 до 2, -2 - активно продаём, 2 - активно покупаем
Компилил под винду уже дома, а тут у меня другой компилятор надеюсь у вас пойдёт
Изменено 17 мая, 2016 пользователем Rezus666
при запуске фатал еррор.
винда win 7 ultimate 64bit
ага видел, сеичас библиотечки собираю чтоб запустилось :">
Добавлено: 17-05-2016 18:05:51
подкинул все библиотеки, ругается что должно стоять QT с mingw, разбираться не охота, завтра на работе откомпилю...
Добавлено: 17-05-2016 18:26:06
можно еще попробовать подкинуть эту библиотечку к проге, но шанс что заработает не большой, скорее выдаст другую ошибку :d
Добавлено: 18-05-2016 07:08:25
откомпилил, пробуйте....
Изменено 18 мая, 2016 пользователем Rezus666
А можно ли получить исходник именно момента парсинга данных? Можно было бы тогда под mql адаптацию сделать
Проблем с парсингом на МКЛ нет. загоняете страничку в текстовую строку и ищите заранее известные теги. Вот что будет у Вас в текстовой строке по ЕВРЮСД ( фрагмент странички ):
1,1221
Ищите id нужного периода в разделе "Резюме" ( 15 мин = "'tech-sum-ts_1_1" ), ну и рекомендацию перед закрытием тега spain - ">Покупать".
Работа кропотливая, но вполне выполнимая.
Вообще парсить теханализ с investing'а нет смысла. Там почти все индикаторы стандартные, и даже настройки указаны (http://ru.investing.com/currencies/eur-usd-technical).
:d
тема парсинга этого сайта многократно горячо обсуждалась - и, наконец-то, master_255 внес полную ясность!
=))
Я повторюсь, программа написана с целью видеть прогноз с сайта компактно, исключительно для удобства, кому такой подход не нравиться и ему удобней смотреть на сайте смотрите на сайте. Попросили вывести данные по прогнозу в фаил я это сделал, но честно скажу заниматься парсингом страниц в MQL не имею желания, тем более зачем загружать советник запросами к сайту и парсингом, когда вот он готовый легкий фаил с удобной для разбора структурой, бери и читай!
Исходники выложить могу, но дадут ли они толк вам? Там парсинг специфическими для QT функциями.
:d
тема парсинга этого сайта многократно горячо обсуждалась - и, наконец-то, master_255 внес полную ясность!
=))
Теперь осталось до конца понять при каком соотношении добавляется слово "Активно"
Для публикации сообщений создайте учётную запись или авторизуйтесь
Перейти к списку тем