Caros programadores, gostaria de discutir com vocês um tópico bastante estranho - a programação em russo . Os falantes de inglês escrevem programas em sua língua nativa, enquanto não existe tal prática entre os programadores que falam russo. Mas a
Caros desenvolvedores, no limiar do salto no desenvolvimento de software comercial, espera-se que os robôs que criamos venham a ganhar muitas novas funcionalidades. Não importa se os comerciantes algorítmicos comuns precisam ou não destas
O que está acontecendo lá, caros comerciantes? Há vários anos, fiquei fascinado ao observar o preço do milho futuro no mercado de CME, e comecei a notar muitas coisas estranhas, para as quais não consegui encontrar uma explicação. Há vários meses
Muito impressionado com este artigo sobre os hubs https://habr.com/ru/company/smileexpo/blog/409051/ a partir de 2017. Já se passaram 3 anos e qual é o progresso? Onde está a IA conversacional? Porque é que ainda não foi visto e ouvido? Tal
Todos nós começamos como comerciantes de mercado em algum momento de nossas vidas. Estávamos todos numa curva de aprendizagem e éramos um pouco românticos. Nós acreditamos em nós mesmos e nas nossas ideias "excepcionais" e "brilhantes". E todos
Таблица параметров OCHL последних 10-ти баров на текущем графике и текущем таймфрейме. Также, показывает параметр tick.volume и количество пунктов каждого бара.
Далее по плану, - документация к стакану цен и сам стакан. Все вместе с этой документацией будет в одном индикаторе.
При закрытии окна, его можно переоткрыть через контекстное меню, вызвав его двойным кликом на график.
Если кому то нужна такая видео-инструкция к программе, могу реализовать в виде индикатора, который пользователь сам добавит на график. Обращайтесь, помогу. Бесплатно.
Окна с демонстрацией зацикленного видео-ряда внутри MQL-программы. Может пригодиться в документациях к программам. Очень удобно наглядно передавать инструкцию...
Единственная причина по которой еще не опубликовал обещанный стакан в кодо-базе, так это потому, что хочу сделать его приложением принципиально нового уровня. Уровня, ранее не досягаемого ни для одного программиста на MQL. Что это значит? В первую очередь, - API. Стакан будет самостоятельной программой-индикатором, которая будет предоставлять другой программе (советнику или индикатору) подключение с двусторонней взаимосвязью. Со стороны стакана можно будет получать события кнопок и данные, а со стороны клиента будут передаваться маркеры для цен в стакане. По мимо этого, стакан должен иметь как собственную иллюстрированную документацию, так и подробную документацию API. Все это требует от меня очень серьезного подхода. Нужно было расширить методику печатания на канвасе через конструктор с установкой свойств текста, текствых блоков, раскраской ключ.слов, ссылками для перехода между обзацами, сжатие больших картинок, создание гифов и многое другое. Нужно понимать, что каждая новая идея, даже воплощаемая удачно, приносит не только вдохновение и прогресс, но и проблемы, в виде больших переделок, исправлений и новых багов. Все это забирает время. Но в итоге, стакан получится приложением MQL такого уровня, какого еще не было. А потом, постепенно, все серьезные mql-приложения станут писать на таком уровне. API, документация, взаимодействие с пользователем через интерфейс, двусторонняя передача данных + отдельные платные функции... Так мне кажется...))
ЗЫ. Рекламные баннеры забыл добавить. Теперь это уже легко сделать.
Вот пример сжатия гифа. Здесь гиф состоит из 17 картинок размером 800х600 пикселей каждая. Мне удалось их так сжать, что 17 картинок занимают около 320 кб. То есть, ~80 000 ячеек int в массиве. Совсем немного для гифа таких размеров. Это означает, что и картинки я могу также. Конyhечно, они сжимаются компилятором при добавлении в программу через директиву #resource, но когда я создаю загрузочный файл для движка, мне необходимо выбрать из всех ресурсов конструктора только нужные для движка изображения, и следовательно, приходится брать их и сжимать самому. Иначе, в движке нужно каждый раз писать эту дерективу для каждой картинки или лейбла из конструктора, а это слишком утомительно.
Я разработал свои гифы. Повторяющиеся видео-фрагменты внутри MQL - программы. Они работают на канвасе моих окон и добавляю я их туда из КИБ-кода. Производство гифа происходит следующим образом:
Сначала подготавливаются картинки. Для короткого гифа нужно 8-10 картинок одного размера. Картинки редактируются в сторонней программе обработки фото или графическом редакторе. Далее, я сохраняю их в формате bmp в папке Images. Потом, запускаю специальный скрипт, который сжимает картинки по моему алгоритму и производит гиф. Гиф загружается ресурсом в программму и проигрывается на канвасе специальным алгоритмом. Все.)
Ниже показан один из гифов которые я добавил в документацию своего движка.
Должен сказать, что сжатие гифа достаточно мощное, и 10 картинок гифа в сумме занимают меньше места чем одна исходная картинка. Далее, приведу еще пример.
Это пример документации, которую сейчас создаю. При первом открытии могут возникнуть красные квадратики, но при наведение на скрол бар или переоткрытии вкладки, это не повторяется. Думаю, как исправить...
Да, так у меня бывает. Начал делать стакан цен и в итоге переделал массу вещей в конструкторе и движке, а стакан ещё не закончил.))
Однако, система генерации GUI упрощена на треть. Генератор ядра граф.интерфейса перестал быть необходим. Одна функция добавленная в конструктор заменила огромный блок, который из KIB-кода, с нуля создавал два ядра - графическое и параметров. Суть в том, что это мог делать конструктор, но он создаёт пользовательское ядро внутри своего ядра, а эффективно разделить их была большая проблема. Поэтому, я сделал отдельный генератор, собирающий сугубо пользовательское ядро из KIB-кода, которое и переноситься в движок. Теперь, пользовательское ядро можно извлекать прямо из ядра конструктора и обойтись без его генерации с первой ступени, - с киб-кода.
Это огромный шаг вперёд, к студии.
Ещё один шаг вперёд, вместо двух файлов подключения польз.приложения к движку, теперь используется один, и самое важное, его печатает сам движок.
В каждом движке будет два вспомогательных окна: с документацией того приложения, которое выполнено в движке (стакан цен, торговая панель, новостной Календарь и т.д.) и инструкция подключения через АPI для пользователей.