Комментарии 30
Лучше бы вы начали с чтения багтрекера openapi. Столько фатальных проблем, висящих месяцами. Ещё и разработка полностью заглохла - последний релиз в начале 2020 года. И фьючерсами торговать нельзя (обещают в api v2, но когда оно будет неизвестно).
Думаю, у вас всё застрянет на побаловался и бросил.
У брокера Алор есть REST/WEBSOCKET API, с фьючерсами. Правда, судя по телеграм каналу, такое же глючное и падающее.
Серьезный подход - это купить у ММВБ шлюз fix или plaza II. Небесплатно, но вы деньги свои туда понесёте.
Я читал :). Особенно "порадовали" про API 2.0 и фьючерсы.
Но тут вот в чем дело, я не рассматриваю торгового робота, как грааль, который поможет заработать стопицот миллионов, смысл данной задачи лишь в том, чтобы удовлетворить запрос читателей на просьбу сделать пример торгового робота. Для меня лично API - это источник данных о котировках и портфеле для анализа.
Что касается проблем, висящих месяцами, как человек, разрабатывающий ПО для банков, могу сказать, что аналогичная ситуация характерна для любого, подчеркну, для абсолютно любого банка. И оперативно решаются лишь суперкритические задачи, которые не позволяют обслужить клиента, сдать корректную отчетность или закрыть операционный день. Очевидно, что проблемы пользователей API не относятся к таскам высокого приоритета. Я видел, задачи, которые висели годами, пока система не изменялась до такой степени, что баг не то что смоделировать невозможно, невозможно было понять о чем речь идет, так и закрывали.
Что касается других API, могу сказать, что буду проектировать систему таким образом, чтобы разработанные интерфейсы позволяли подменить API на альтернативные, если потребуется. Ну а до plaza не дорос я еще... Идея в проекте :).
Уверен, что подобные статьи побуждают интерес сотрудников TINKOFF к доработке продукта, ведь скорее всего, этот материал просмотрят несколько десятков тысяч человек, что не останется незамеченным в банке, как и наши с Вами комментарии.
И напоследок, могу сказать, что разработчики TINKOFF – крутые, не смотря на то, что я пишу ПО для других банков, не могу не отметить того факта, что многие бизнес-процессы организованы очень классно! Что называется, снимаю шляпу перед коллегами по цеху. Будем надеяться, что и API доработают.
Ещё могу добавить, что сгенерить клиента сваггером, чем брать java SDK.
У java SDK 2 года назад были лютейшие глюки вида: шлем ордер, прилетает ошибка 500, а ордер в реале отработан. И наоборот, шлем ордер, прилетает ОК, а ордер не отработан. Учитывая заброшенность всего этого хозяйства, баги могут быть не починенными.
"разработчики TINKOFF – крутые"
Хуже брокера не встречал для интрадея, даже если трейдить через оф приложение и веб терминал.
А как Вам скорость ввода и вывода средств? Открытия или закрытия счетов? Работа службы поддержки, и т.п.? Стоит признать, что нет в Мире совершенства. Может я не настолько активно торгую, что не налетал на баги... Единственный баг, который я заметил - это отрисовка последней свечи на графике, я об этом писал в отзыве о клиенте, но получил стандартную отписку в виде бла, бла, бла, опишите проблему, заведите заявку на саппорте...
В общем, радует одно - в конкуренции рождаются новые продукты и улучшаются существующие. Кстати, а какого брокера Вы порекомендуете? У меня основная претензия к ТИНЬКОФФ - это конские комиссии, в том числе за ведение счета...
Именно так. Вот скоро уже почти как 2 года исполнится багу:
https://github.com/TinkoffCreditSystems/invest-openapi/issues/118
С этим багом автоматическая торговая чуть более, чем бесполезна.
Но как площадка, чтобы просто пощупать API работы с биржей и поиграться, Тинькофф идеален, потому что требует минимум финансовых затрат.
два вопроса к аудитории:
тема статьи соответствует содержимому?
как вставить картинку "рука-лицо"?
если серьёзно, то ув. автор! разработка торгового робота это: разработка торговой стратегии, проверка торговой стратегии на исторических данных и организации торговли в реалтайм
а Ваша статья, судя по поставленным задачам, это лишь получение исторических данных по торговому инструменту и визуализация их.
упомянутый Метатрейдер (всуе) - делает это из "коробки", плюс...даже огромный плюс - он умеет тестировать торговые стратегии и в "два клика" подключает любую .dll написанную на С++ или С#
ну и конечное есть еще Python и большое комьюнити алготрейдинга, где можно загрузить исторические данные по торговому инструменту и создать торгового робота
ну и наконец то сам вопрос - когда будет разрабатываться сам торговый робот, а не торговое окружение и визуализация? - примерные сроки, темой интересуюсь, но увы, только в части торговых роботов
заранее спасибо
Не все сразу, думаю, что в 3-й или 4-й части будет торговый алгоритм. С перерывом на отпуск и праздники, это ориентировочно февраль-март 2022 года, к счастью, есть ещё работа помимо хабоа, а написание статей требует времени, при этом никак не влияет на кошелек.
Что касается MetaTrader, я пробовал с ним работать. Не понравилось, C-подобный прикладной язык лично мне не подошел, хотя, если кому-то нравится, то в чем проблема?
По поводу торговой стратегии. Я не зацикливаюсь на конкретной, суть в том, чтобы можно было на вход подавать любой торговый алгоритм, т.е. для себя я ставлю задачу несколько шире, нежели реализация конкретного алгоритма.
На счёт Python, равно как и других языков, тут и вовсе спорить не о чем. Вы ведь слышали о микросервисной архитектуре, понимаете в чем суть? Не важно на чем писать, главное, чтобы была возможность интеграции.
Ну и раз уж Вы проявляете интерес к данной теме, давайте совместно разработаем и протестируем торговый алгоритм? Как насчёт этого?
Ну и раз уж Вы проявляете интерес к данной теме, давайте совместно разработаем и протестируем торговый алгоритм? Как насчёт этого?
протестировать алгоритм могу, МТ5/МТ4 знаю на 99% +1% багов терминалов, с Python не хватает времени закончить изучение, но все решаемо
разрабатывать торговый алгоритм ... я пас - протестировано 100500 идей за 5 или 6 лет, единственное понимание, чтобы всегда торговать в профит - нужно знать будущее, а вот с этим как то пока не получается
3 месяца не срок, понаблюдаю за циклом статей, может и я не прав, а у Вас все по полочкам - нужно только подождать :)
Ну ведь не допотопными QUIK и MetaQuote с их конструкциями из костылей на LUA и MQL пользоваться в 21 веке?
Не совсем понятно чем не угодил MQL. Понятно что урезанный язык. Вот только работает корректно, без этих диких сюрпризов что вы описали выше. Более того все эти ваши пляски с бубном в MQL решаеются одной строчкой:
Print(SymbolInfoDouble("EURUSD",SYMBOL_BID));
Следующую статью я планирую посвятить теме получения исторических данных и online котировок,
Не мучайтесь, вашу следующую статьи можно сократить до:
Print(iClose("EURUSD",PERIOD_D1,7));
Прямо из коробки! Вот прям сел, написал, запустил. Все. Вот они которовки!
Не нравится чистый MQL — теперь можно на Phyton.
А что вы будете делать когда надо будет тестировать стратегию? Свой тестер писать?
А график наложить — свое GUI?
Я не спорю, что при профессиональной торговле это определенно может потребоваться. Только уже есть готовые решения, к чему свой велосипед? Вы только на тестирование кода потратите не один год: правильный расчет свопов, расчет кроскурсов, дивиденды, тиковые истории, кэши истории… да там столько всего.
Ну ок, возможно у вас много времени и энергии. Но при указанных вами багах я бы даже не подходил к такому АПИ. Правильно вам выше сказали — курите FIX уважаемых брокеров.
И я не топлю за MQL. Про Квик вообще не скажу. Претензия заключается в том, что вы охаяли нормальное и рабочее в целом решенее, предлагая в замен позаниматься сексом с вообще каким-то трэшем:
Имеются инструменты, в которых шаг изменения цены попросту не задан.
Не надо так. Люди смотрят.
Справедливое замечание!
Мне не понравился MQL. Прикладной язык обладает известными ограничениями в интеграции с внешними системами. В остальном, с вашими доводами сложно спорить.
Касаемо тестеров стратегий, я планирую использовать библиотеку TA4J. Судя по описанию, необходимые инструменты в ней имеются, но на практике я с ней ещё не знаком. Посмотрим, попробуем.
Для GUI, на JAVA полно библиотек для визуализации, например, JFREECHART о котором я писал.
Не думаю, что я кого-то обидел, высказыв свое мнение про MQL. Попробовав писать на нем, я пришел к заключению, что не стоит ждать его развития. Возможно, я заблуждаюсь... Посмотрим.
Мне не понравился MQL. Прикладной язык обладает известными ограничениями в интеграции с внешними системами. В остальном, с вашими доводами сложно спорить.
Вы точно видели MQL ?
не видел МТ3, но по утверждениям разработчиков даже в нем было реализован вызов внешних динамических библиотек .dll
в МТ5 давно уже реализована интеграция с C# (правда только с .NET Framework) - все упрощено до "два клика", не нужно описывать даже сигнатуры функций подключаемой библиотеки на .NET Framework - все подключение пишется в одной команде:
#import "имя_файла.dll"
.... пока остановлюсь, обещал же пару месяцев понаблюдать
Прикладной язык обладает известными ограничениями в интеграции с внешними системами
Это не так:
//-------------------------------------------------
#import "Wininet.dll"
int InternetOpenW(string, int, string, string, int);
int InternetConnectW(int, string, int, string, string, int, int, int);
bool InternetReadFile(int, uchar &buffer[], int, int& one_int[]);
int InternetCloseHandle(int);
int HttpOpenRequestW(int, string, string, string, string, char& AcceptTypes[], int, int);
bool HttpSendRequestW(int, string, int, string, int);
int InternetSetOptionW(int hInternet, int dwOption, int& lpBuffer[], int dwBufferLength);
#import
//-------------------------------------------------
#import "kernel32.dll"
int GetLastError(void);
#import
//-------------------------------------------------
#import "foo.dll"
int bar(void);
#import
… и весь мир у ваших ног
Здорово! Если честно, я не погружался, настолько глубоко в MQL, возможно, мои выводы насчёт ограниченности несколько поспешны. Очевидно, в вопросах MQL у Вас больше опыта.
Напомните, мне, как можно установить робота, разработанного на MQL на арендованный сервер, например Digital Ocean, и т.п.?
Напомните, мне, как можно установить робота, разработанного на MQL на арендованный сервер, например Digital Ocean, и т.п.?
Metatrader работает только под Windows, можно запустить под Wine - разработчики утверждают, что добились стабильной работы. А так все на "уровне домохозяйки" - установили терминал, положили робота в папку Expert - открыли чарт торгуемого инструмента и перетянули мышкой робота на чарт из навигатора терминала.
Metatrader юзерфрендли софт, а негатив о нем по другую сторону терминала - не стационарность временных рядов, помноженная на большое количество жуликов - ДЦ
Напомните, мне, как можно установить робота, разработанного на MQL на арендованный сервер, например Digital Ocean, и т.п.?
Создается впечатление, что вы не просто не интересовались MQL, а даже не заходили на их сайт, начав пилить свой велосипед. Но, не беспокойтесь — я сам такой же.
Есть как минимум два варианта:
— Арендовать любой VPS на Windows
— Использовать встроенный VPS в MetaTrader: MetaTrader 5 Virtual Hosting: Run your trading robots and signal subscriptions 24/7 (Forex VPS)
В последнем варианте вообще минимум телодвижений.
Фразы ниже в комментариях типа: «Не стал учить MQL...» вообще честно говоря звучат странно. Чего там учить — весь MQL это набор из сотни — другой специальных функций с Cpp подобным синтаксисом. Если вы владеете Java — вы простого робота напишите за один вечер.
Но я не об этом. Вы вот сейчас горите идеей своей стратегии которая принесет вам миллионы. Как и многие, многие и очень многие до вас) И пошли по длинному пути.
Я вам ОЧЕНЬ рекомендую сделать черновик на любом доступном софте потратив как можно меньше времени, прогнать свою стратегию в тестере и убедиться, что она не работает ни черта и забыть об этом.
Ну или двигаться дальше.
Начинать ковырять АПИ без рабочей и проверенной страегии — время в пустоту.
Да знаю я про VPS. Привязка к платформе, отсутствие возможности интеграции с внешними системами, да что я по 10 раз повторяю одно и то же?
Речь ведь про Tinkoff invest API и Java, а не Meta Trader и MQL.
Да знаю я про VPS
То для чего вы спрашиваете:
Напомните, мне, как можно установить робота, разработанного на MQL на арендованный сервер
отсутствие возможности интеграции с внешними системами
Вы ни разу так и не сказали в чем собственно вы испытываете ограничение. Пока, судя по комментариям, все ваши ограничения из-за узкого кругозора.
Как написать интерфейс к данной системе? А подключить телеграмм-бота, а загрузить данные в СУБД? Или запустить вне windows? А может Вы нашли способ работать с нескольким десятком инструментов в своей стратегии? Вы не видите этих ограничений?
И даже если Вы найдете как обойти часть этих ограничений, это не отменит того факта, что MQL - прикладной язык, который служит для определенных целей, и сравнивать его с Java не имеет никакого смысла.
Python все умеет "из коробки"
повторюсь еще раз - это все умеет MetaTrader 5 "из коробки" , MetaTrader 4 все умеет то же самое, кроме штатных встроенных в язык функций для работы с SQLite и тестирования стратегий на нескольких торговых инструментах - именно тестирования. Это все без подключения сторонних библиотек, все средствами языка MQL = С++ начала 2000-х годов.
.... хотя так то да... без операционной системы Windows (Wine ?) - MetaTrader не имееют смысла
ЗЫ: а без установленной Java Platform слабо запустить взаимодействие с Tinkoff Invest API ?
ЗЫЗЫ: увлекаться начал, нужно останавливаться, у каждого есть свой путь с удачно разбросанными граблями. Не обращайте внимания!
Вы не видите этих ограничений?
Да нет их.
Вы, уважаемый, либо упорно не желаете пользоваться Гуглом, либо это потенциальное желание оставаться слепым:
отсутствие возможности интеграции с внешними системами, да что я по 10 раз повторяю одно и то же?
Вот и я удивляюсь. Перестаньте повторять и забейте каждый из ваших вопросов выше в соседнюю вкладку браузера, не сюда. Здесь за вас искать не будут. Вы удивитесь.
MQL — прикладной язык, который служит для определенных целей
Так ктож с этим спорит! До вас пытаются донести, что конкретно в вашем случае это НЕ недостаток, а специально оптимизированный инструмент под конкретно вашу задачу.
То что вы пытаетесь сделать в вашей статье лишено смысла. Что делает и статью в целом безполезной.
Но я не об этом. Вы вот сейчас горите идеей своей стратегии которая принесет вам миллионы. Как и многие, многие и очень многие до вас) И пошли по длинному пути.
Я вам ОЧЕНЬ рекомендую сделать черновик на любом доступном софте потратив как можно меньше времени, прогнать свою стратегию в тестере и убедиться, что она не работает ни черта и забыть об этом.
Хотя ешьте кактусы…
Поддержу автора в желании написать софт на языке, запрос по названию которого (java) выдаст огромный список вакансий на любом сайте поиска специалистов/работы. (Запрос программист java).
Сам как программист 1с в тоже не стал учить ни MQL ни LUA. балуюсь этой же темой на 1С+Python
Я пробовал писать на MQL, сначал был в полном восторге, затем пришел к выводу, что существующие ограничения мне не очень нравятся. Так и пришел к Тинькофф API. Хотя, судя по комментариям, очень многие успешно пользуются MQL и, возможно, я был несправедливо резок в своем высказывании относительно MQL.
TINKOFF-INVEST. Разработка торгового робота на JAVA. Часть 1