Добрый день!
Начну сразу с сути. Начал изучать программирование. Цель — написание торговых роботов. Опыта в программировании никакого. Остановился на Pythonе. Читаю, изучаю, пытаюсь что то писать. Что-то даже автоматизировал для своей основной работы — простейшие вещи ) — благо таких примеров в сети полно. Но как все это дело приладить к трейдингу вообще не понимаю. Примеров посмотреть негде. Как подключиться к квику, получить котировки, накапливать историю, сохранять ее, отправлять заявки и т.д. В связи с этим вопрос: может кто-либо поможет с этим разобраться или даст простого робота (без логики принятия решений) для самостоятельного изучения. Естественно все это на возмездной основе. Очень надеюсь что здесь есть люди готовые помочь. Для дальнейшего общения пишите, пожалуйста, в личку.
P.S. Если не сложно поставьте плюс что бы вывести на главную, а то хорошие люди могут и не увидеть.
krasoffka, Да он вроде как довольно простой относительно всяких там си и си плюсов и т/д/ плюс это ООП А на самом деле мне просто его посоветовали и сказали что это самое то))
professor facepalm, я начинал со сток шарпа был такой персонаж марсель тазетдинов в складчине мы учились но он потом слился и киданул всех. Спасибо за ссылку, буду смотреть обязательно. Может и на си шарп перейду )
iSly, то что он в складчине дал, вы все изучили? на чем строятся ваши системы? на сколько сложен их уровень? на той же складчине есть ТСлаб с апи, смотря что вы собираетесь строить, может и начать стоит с тслаба, он очень не плох…Ваш пост слишком пустой, даже если и хочется посоветовать то непонятно что вам интересно, опыт, навыки и тд, а писать про все сами понимаете нет желания.
krasoffka, По языку там был вводный курс. А примеров конкретных роботов так и не получили к сожалению. ТС лаб доже думал, использую его для проверки простых стратегий. А мои стратегии не сильно и сложны. Основа-парный трейдинг но с моими примочками. Сложноватые на опционоах. Но вот сегодня прочитал что Каленкович и ТС лаб все таки реализовали опционный модуль. Может быть и действительно к ТС лабу повнимательнее присмотреться
«Начну сразу с сути. Начал изучать программирование. Цель — написание торговых роботов. Опыта в программировании никакого. „
Начать нужно с торговой идеи, потом уже ее реализовывать.
А по сути, если еще не программируете:
начните с Quik-DDE-Excel,
разберетесь сначала с экспортом DDE, простейшими алгоритмами, обработкой, постановкой заявок, потом создадите свой DDE сервер на том же C#, и свое приложение и т.д. Сразу объять всё, может быть затруднительно.
AlexeyT, да идеи то есть. Они не очень и сложны. Вот как их реализовать непонятно пока что. А в ексель через дде я вывожу данные на данном этапе, он отображает их считает то что мне надо а дальше я сам руками заявки ставлю это же не дело))
AlexeyT, Квик + ДДЕ + Эксель — это адская трешовая связка на мой взгляд, никто еще не написал что ему удалось собрать из нее стабильный автомат для торговли.
SergeyEgorov, нормальная связка, только надо знать особенности и понимать как их обходить.
Впрочем это верно (связка и особенности) про любое непрямое подключение.
AlexeyT, я читал твой блог Опционная торговля на QUIK-Excel (VBA) — II он у меня в закладках. Мощно конечно, ничего не скажешь. Буду двигаться в твоем направлении (в плане развития). Но я не программер. Наверное пока тс лаб попользую а параллельно что буду другое делать может даже и эксель, он ближе)
Алексей Ван, очень надеялся что Вы ответите. Спасибо отдельное за майнеры. Не каждый готов такие вещи выкладывать. Смело, хотя критика в Ваш адрес присутствует (пустая на мой взгляд) посмотрю на ссылки обязательно
Начнем с того, что это большой и длинный путь. В идеале тебе должно быть вообще фиолетово на каком языке писать. Скажу на своем примере. Я все тестирую в амиброкере, там свой язык. Что бы закачать туда историю использую javascript. Ну а сами роботы работают в транзаке, опять же и там свой язык. А вся аналитика моих реальных сделок, заявок, стопов и результатов торговли в 1с
Скажу тебе как программист с конекторами к плазе квику метатрейдеру и тслабу и собственной системой тестинга.
Пиши под метатрейдер лучше 5, его брокеры выдают некоторые к бирже.
Да там будут левые данные часто, не будет ленты сделок и опционов.
НО
Зато 90% сделано за тебя уже + готовые примеры в справке+ встроенный тестер + глюки легко ловить, зарабатывать за счёт умения кодить ты не сможешь по началу точно, потом как освоишся перейдёшь на что то нормальное, а быстро начать изучение лучше там.
Под что начинать писать не надо точно это под Квик. Это сложно и долго, и всё твоё время уйдёт на решение программистских проблем а не сути. Там можно написать либо чтото очень простое, либо надо потратить крайне много времени вникуда чтобы вышло что то нормальное.
Остальные решения почти все приемлемы.
Программировать лучше на с++ или с# они очень похожи, но есть небольшие отличия, питон и прочее можешь использовать только если отыщешь хороший переходник к платформе, что трудно и нет смысла по началу.
И ещё момент.
Если у тебя нет чёткой системы, лучше не начинай кодить, а посиди сперва и сделай её, программирование с 0 это сотни часов вникуда пока разберёшься.
farok, спасибо. есть четкие страты я давно на рынке. Никак все не решался заняться алгоритмизацией. Но время пришло. Не могу уже руками и постоянно пялиться в монитор (тупо жалко времени и не всегда оно есть). Понял уже тоже, что по началу крутовато замазнулся.Начну наверное опять с ТС ЛАба, а параллельно буду изучать и пробывать посерьезнее что то свое (в плане программ)
farok, С++ и C# похожи не более чем синтаксически. Программируя на C++ у программиста значительно больше возможностей прострелить себе ногу, если он не представляет себе как вообще происходит исполнение программ и что такое работа с памятью. Получить из программы на C# segmentation fault практически невозможно и почти любой говнокод будет как-нибудь исполняться, при программировании на C++ все новички начинают с segmentation fault. В написанной на C++ программе никакая среда исполнения не будет за программистом «мусор собирать».
SergeyEgorov, Массивы заданного заранее размера присутствуют в обоих вариантах, новичок всё равно не сможет круто пользоваться памятью. Зато потом перспективы на порядок лучше.
farok, Массивы наверное есть в любом языке программирования. Я когда начинал программировать первого робота, мне хотелось побыстрее его торговать поставить, поэтому я договор заключил с брокером, который API предоставлял, ну а язык программирования выбирать не пришлось, кроме C# ничего не предлагалось.
AFL и амиброкер лучший выбор для новичка. Простой функциональный язык, интерфейс к квику и уйма готовых систем. Лучше него только MQL по количеству написанных систем, но и язык сложнее и интерфейс к российскому рынку только для старого терминала.
Я не люблю связки «что-то и терминал», не встречал еще ни одной такой чтобы была надежной. То рыночные данные пропадут, то заявка не ушла, то еще какая-нибудь хрень. Чем больше компонентов в системе, тем выше вероятность отказа. Такие вещи можно практиковать на начальном этапе, когда только присматриваешься к «рыночному программированию». В алгоритмической торговле есть масса тонких моментов, особенно если практиковать стопы, и если торговать волатильные инструменты. Сразу возникает необходимость оперативно и надежно ставить, снимать, двигать заявки в зависимости того, что там на рынке намечается. Если есть ощущение что алгоритмической торговлей будешь заниматься всерьез и долго, лучше сразу начать постепенно разбираться с каким-нибудь более менее приличным API и нормальным языком, а скриптовые вещи использовать как предварительное знакомство с рыночным программированием.
P.S. На Python-е, если я правильно помню можно торговать америку через Quantopian, если есть договор к примеру с IB. Там же и стратегии тестировать можно.
Вы правильно выбрали python, он действительно простой и позволит отвлечься от технических деталей и полностью сосредоточится на самой стратегии, а не на технических особенностях терминала. Обычно торговые роботы состоят из нескольких частей, минимально связанных друг с другом:
— блок получения котировок
— блок принятия решения
— блок определения параметров сделки в соответствии с риск менеджментом
— блок управления ордерами (отправка и исполнение)
Конечно все интересно и хочется со всем разобраться, однако нужно сфокусироваться на самых важных вещах, а именно на блоке принятия решений, иначе есть риск, что вы потратите время на то, что бы разобраться с особенностями терминала, но это никак не поможет вашей торговле. Более того, блок принятия решений как правило делают независимым от терминала, что бы можно было перенести на другого брокера легко. Напишите как с Вами связаться — я могу помочь с python и разработкой стратегии — бесплатно, я Вам дам скрипты для теста стратегий — это существенно сэкономит Вам время. Вообще старайтесь избегать работы, которая «около» Вашей основной задачи, а в данном случае Ваша задача — именно стратегия, а не отправка ордеров. Удачи и помните, сложные проценты и положительное мат. ожидание — самые важные вещи.
sheffield, не смог письмо отправить, не хватает рейтинга. Рискну почту оставить, а вдруг не заспамят i.slyusarev@mail.ru напишите, пожалуйста, а там и определимся как более продуктивно пообщаться. И, конечно, спасибо за желание помочь.
iSly, подскажите на чем остановились — что выбрали в итоге? актуальный подняли вопрос. в python много библиотек с математикой, что наверное плюс для анализа и теста…
wyg, несмотря на советы не использовать питон я все таки на нем остановился. Пока правда из-за работы не получается в плане роботов работать, хватет времени только на изучение самого языка
Не тратьте время зря. Не заработаете и выучите не лучший язык.
Программирование это сложное ремесло. Настолько сложное что хорошо программируя у вас не останется сил на разработку каких либо стратегий и пр. А программируя плохо вы обречены на постоянный бег по граблям. Поверьте, программистам не зря хорошие деньги платят за нажимание кнопок )
Кубики вам в руки!
Изико, Это да программисты не просто так получают крайне неплохо где бы они не работали, геморой тот ещё.
Времени на исправление всяких ляпов будет потрачено больше чем на торговлю.
Просто чтоб стартануть могут уйти сотни часов.
Python только пробую, C# уже немножко знаю...
сам думал про использование Python, возникает вопрос с инфраструктурой, где брать коннекторы к бирже...
сам скорее всего буду использовать его для математических расчетов.
На другом портале нашел: www.bot4sale.ru/blog-menu/ami/amibroker-list/142-amisharp.html
библиотека для работы с терминалом Quik,
У автора эта библиотека в связке с AmiBroker работает.
В AmiBroker свой встроенный векторный язык AFL + можно использовать синтаксис похожий на C#
Наверное библиотеку эту AmiSharp можно будет и на Python использовать.
Каторга, такие страдальцы удивляют конечно, так не надо лезть в сделку на всё депо и не надо переносить позы на таких инструментах через ночь и уж тем более выходные, все здоровые люди в курсе, что...
RTS продолжаем движение вверх Лонг RTS
Старшие тайм-фреймы находятся в импульсе, внутри дня продолжаем работать по тренду.
Покупка от указанных уровней:
87400
86620
Уход ниже значения 86450 ...
Пока у всех после корпоратива не до работы продолжу
Жадины не платят дивиденды 3/4 списка, до свидания.
Из дивидендных:
-) Тупиковые: МГТС, Телеграф, Башнефть, Татнефть, через десятки лет туда ж...
Забудь про питон и иди сюда kbrobot.ru/forum/
Куча примеров
Пример: www.itinvest.ru/editorfiles/File/smartcom/TestConnect_source.zip
Начать нужно с торговой идеи, потом уже ее реализовывать.
начните с Quik-DDE-Excel,
разберетесь сначала с экспортом DDE, простейшими алгоритмами, обработкой, постановкой заявок, потом создадите свой DDE сервер на том же C#, и свое приложение и т.д. Сразу объять всё, может быть затруднительно.
Впрочем это верно (связка и особенности) про любое непрямое подключение.
Помимо него можно также посмотреть TradeScript:
habrahabr.ru/company/itinvest/blog/214601/
habrahabr.ru/company/itinvest/blog/237689/
sib-algo.ru/must-read/язык-программирования-алготрейдера.html
forum.qlua.org
ilovelua.narod.ru/about_lua.html
ilovelua.wordpress.com/
Там все есть.
Тут еще чел под ником orekton выкладывал уроки по Qlua, поищи его…
robostroy.ru/community/article.aspx?id=773
Пиши под метатрейдер лучше 5, его брокеры выдают некоторые к бирже.
Да там будут левые данные часто, не будет ленты сделок и опционов.
НО
Зато 90% сделано за тебя уже + готовые примеры в справке+ встроенный тестер + глюки легко ловить, зарабатывать за счёт умения кодить ты не сможешь по началу точно, потом как освоишся перейдёшь на что то нормальное, а быстро начать изучение лучше там.
Под что начинать писать не надо точно это под Квик. Это сложно и долго, и всё твоё время уйдёт на решение программистских проблем а не сути. Там можно написать либо чтото очень простое, либо надо потратить крайне много времени вникуда чтобы вышло что то нормальное.
Остальные решения почти все приемлемы.
Программировать лучше на с++ или с# они очень похожи, но есть небольшие отличия, питон и прочее можешь использовать только если отыщешь хороший переходник к платформе, что трудно и нет смысла по началу.
И ещё момент.
Если у тебя нет чёткой системы, лучше не начинай кодить, а посиди сперва и сделай её, программирование с 0 это сотни часов вникуда пока разберёшься.
P.S. На Python-е, если я правильно помню можно торговать америку через Quantopian, если есть договор к примеру с IB. Там же и стратегии тестировать можно.
— блок получения котировок
— блок принятия решения
— блок определения параметров сделки в соответствии с риск менеджментом
— блок управления ордерами (отправка и исполнение)
Конечно все интересно и хочется со всем разобраться, однако нужно сфокусироваться на самых важных вещах, а именно на блоке принятия решений, иначе есть риск, что вы потратите время на то, что бы разобраться с особенностями терминала, но это никак не поможет вашей торговле. Более того, блок принятия решений как правило делают независимым от терминала, что бы можно было перенести на другого брокера легко. Напишите как с Вами связаться — я могу помочь с python и разработкой стратегии — бесплатно, я Вам дам скрипты для теста стратегий — это существенно сэкономит Вам время. Вообще старайтесь избегать работы, которая «около» Вашей основной задачи, а в данном случае Ваша задача — именно стратегия, а не отправка ордеров. Удачи и помните, сложные проценты и положительное мат. ожидание — самые важные вещи.
Программирование это сложное ремесло. Настолько сложное что хорошо программируя у вас не останется сил на разработку каких либо стратегий и пр. А программируя плохо вы обречены на постоянный бег по граблям. Поверьте, программистам не зря хорошие деньги платят за нажимание кнопок )
Кубики вам в руки!
Времени на исправление всяких ляпов будет потрачено больше чем на торговлю.
Просто чтоб стартануть могут уйти сотни часов.
ubertrader.org/tag/python/
а здесь видео про python на английском
www.youtube.com/user/sentdex/playlists
сам думал про использование Python, возникает вопрос с инфраструктурой, где брать коннекторы к бирже...
сам скорее всего буду использовать его для математических расчетов.
На другом портале нашел:
www.bot4sale.ru/blog-menu/ami/amibroker-list/142-amisharp.html
библиотека для работы с терминалом Quik,
У автора эта библиотека в связке с AmiBroker работает.
В AmiBroker свой встроенный векторный язык AFL + можно использовать синтаксис похожий на C#
Наверное библиотеку эту AmiSharp можно будет и на Python использовать.
здесь исходники C# под SmartCom: bitbucket.org/SazanProject
на библиотеку эту наткнулся здесь на этом портале,
автор smart-lab.ru/my/SergeyEgorov/blog/all/
есть виде по использованию библиотеки:
www.youtube.com/user/codetraidingsystem/playlists