Все новости

Алготрейдинг: Начало

Теперь у меня появилось немного свободного времени и я решил предложить несколько преимуществ начинающим трейдерам-программистам. Кто является целевой аудиторией этой темы?!1. Вчерашний студент-айтишник 2. ИТ-специалисты, испытавшие усталость или истощение3. ИТ-специалист на пенсии, чей сезон садоводства подходит к логическому завершению4. Остальные из нас, обладающие навыками программирования и интересующиеся торговлей Now, не являются целевой аудиторией.1. Опытный алгоритмический трейдер2. Инвестор – это человек, который покупает и владеет активами3. Трейдеры-фундаменталисты и технические аналитики. Это происходит не потому, что они считают свои методы торговли неправильными или сомнительными, а потому, что для одних они тривиальны, а для других малоинтересны в принципе. Это единственный подход к автоматической торговле, но далеко не единственный. Если инвестиция не очень интересна, но у вас есть некоторый капитал, отнесите деньги в банк под проценты. Если вас волнует вопрос сохранения нажитого каторжным трудом, покупайте недвижимость. Если вы заинтересованы в долгосрочном инвестировании, покупайте акции или облигации, держите их и получайте купоны и дивиденды. Если у вас мало свободных денег, но есть навыки программирования, попробуйте автоматический трейдинг. Что значит попробуй?! Это означает, что существуют естественные причины предотвратить это. И первое из них – свободное время. Большую часть времени мы проводим во время работы и сна. Остальное - семье: детям, жене и родителям. Еще одна часть, касающаяся еды, друзей и вас самих, заключается в том, что алгоритмическая торговля требует времени. сколько?! много. Никто не может сказать наверняка. У каждого разные стартовые возможности, в том числе разный уровень образования и интеллекта. Но это все равно займет много времени. Если у вас нет свободного времени, сразу отправляйтесь к инвестору и попытайте счастья там. Если у вас нет семьи (хотя она вам совершенно не нужна), вы можете позволить себе «вторую». Возьмите смену после работы... или если вы готовы посвятить выходные кодированию или чтению технической литературы... или перерыв в основной работе (не рекомендую, но сам делал это несколько раз) раз). )... Или, если вы пенсионер и ваш мозг еще не ослаб и вы все еще хоть сколько-то интересуетесь научными (или околонаучными) исследованиями... вы можете попробовать алгоритмический трейдинг. Если у вас есть временное «окно» на работе, вы можете попробовать это сделать, но хотя продуктивность такой попытки обычно не впечатляет, на вашей основной работе она наверняка окажет негативное влияние. Не думайте о прибыли. Подумайте о своих системах и будущих реализациях технологий. И это не означает, что вам нужно потратить время на открытие брокерского счета, но вы должны иметь общее представление о том, какой бесплатный (и важный) интерфейс для торговли акциями они предлагают. Оцените тарифы и комиссии на разных рынках (основные разделы вашего брокерского счета — акции, долг, форекс, особенно срочные). Ну, я могу понять. Проведение такого анализа требует базовых знаний о том, как торгуют фондовые биржи, чем они торгуют и т. д. Оно все равно будет там. Это означает, что на этом этапе вам следует прочитать несколько книг, и некоторый торговый опыт (понимание того, что значит разместить, отменить или выполнить ордер) желателен, но не строго необходим. Цель этого шага – выбор тарифа без абонентской платы и бесплатных терминалов для транзакций. При выборе терминала важно убедиться, что он поддерживается множеством брокеров и существует уже давно. Это позволит вам позже легко переключиться с одного брокера на другого, если захотите. Вам действительно нужен брокер, чтобы начать? ни за что. Например (не в рекламных целях) компания ARQA предоставляет доступ к демо-торговле через торговый терминал QUIK, который поддерживается многими брокерами и уже существует и находится в разработке (конечно, он не совсем в разработке, но это плюс - стабильность) на долгое время. Вы можете скачать дистрибутив с их сайта и затем получить доступ (ключ). Про другие терминалы говорить не буду. Не исключаю, что что-то подобное есть и у других производителей. В общем, начать создавать собственную торговую систему можно, даже не имея брокерского счета. Здесь вы также можете освоить навыки подачи заявки вручную. Рекомендую начать с этого, чтобы обеспечить плавный переход к вашему брокерскому терминалу. Демо-торговля ARQA отличается от реальной торговли набором инструментов, параметрами, интенсивностью и сроками. Даже если вы зайдете в брокерский терминал, совершать реальную транзакцию совершенно не обязательно. Это может предоставить будущим системам возможность заключения виртуальных транзакций на основе реальных данных. Выбор неправильного инструмента может привести к потере времени и полному краху вашей торговой деятельности. Если ваша основная работа предполагает написание приложений на языках высокого уровня (например, 1С, SQL, Java-фреймворки для веб-разработки и т. д.), было бы неплохо подготовиться к освоению языка более низкого уровня. Нет необходимости сразу переходить к C или C++, но имеет смысл рассмотреть что-то вроде C# или Java. Существует также специализированный язык. Например, многие люди используют язык и библиотеки самого терминала. В упомянутом выше QUIK это LUA. Однако любой встроенный язык всегда имеет потенциальные ограничения, с которыми рано или поздно придется иметь дело. Также не забывайте, что в идеале ваша торговая система должна быть терминало-независимой или легко портироваться на другие терминалы (конечно, для этого не требуется глубокого владения новым языком). Например, в C# достаточно изучить основы (классические конструкции процедурных языков, классы, коллекции, события). Ну, и самая важная часть — это поток. Вам необходимо понимать, как работают потоки и как ими управляют. В качестве частного случая поймите, как работает однопоточный апартамент (это когда метод класса вызывается самим экземпляром в потоке). Кроме того, у вас есть некоторые знания о том, как интегрировать DLL в приложение (есть). их много в интернете). Вот пример). Можно ли писать современным, сложным языком?!Это зависит от вашей цели. Я имею в виду, что начинающие эксперты по алгоритмам не имеют четкого представления о своей будущей торговой стратегии. Если вы попытаетесь поставить перед собой цель подключить ИИ к своей системе с помощью условного Python, не понимая толком, что и как на этом можно заработать, это кажется бессмысленной затеей. Можете ли вы загрузить исторические данные с устройства и использовать интеллектуальные библиотеки искусственного интеллекта для выявления закономерностей? Вы можете это сделать. Здесь вопрос не в языке или библиотеке, а в вашем опыте. Достаточно ли вы математически, интеллектуальны и осведомлены, чтобы понять, что вы ищете и что делаете? Я, например, не эксперт. Для меня ИИ — это приближение и не более того. И если сначала придется освоить все прелести ИИ-библиотек для поиска закономерностей, а потом писать торговую систему, то процесс однозначно затянется. Теперь мы пойдем кратчайшим путем, известным путем. Важно понимать, что в процессе создания торговой системы (не путать с торговой стратегией) вы одновременно будете изучать исторические данные (неважно на VBA). Excel, Python или более конкретный язык/платформа), читайте спецификации инструментов, правила исполнения брокеров и контрактов, выстраивайте и тестируйте гипотезы. Однако без работающего приложения (торговой системы), способного проверить гипотезу в реальной торговле (т.е. выставлении и снятии ордеров), многочисленные исследования «свечей» так и останутся гипотезами. Более того, как показывает практика (моя, а не ваша), многие гипотезы, не имеющие строгого математического обоснования, являются не чем иным, как выдачей желаемого за действительное, то есть начиная от частного к общему. Например, мы ориентируемся на получение данных от терминала. В моем случае это были протоколы QUIK и DDE. Торговый терминал состоит из окон, которые вы создаете и настраиваете самостоятельно. Чтобы ваше приложение (торговая система) могло работать с этими данными, вам необходимо научиться получать данные из этих окон в режиме онлайн. Затем вы можете инициировать заказы в своем приложении в QUIK и слушать реакции (события) на их исполнение (или неисполнение). В результате у вас есть два разных, относительно полезных куска кода, каждый из которых состоит из нескольких классов. Следующий шаг — формализовать это как своего рода промежуточный шаг. По сути, это сведение и «объединение» уже проделанной работы. Поверх должен быть построен уровень обмена данными с терминалом. Название может быть не самое удачное, но смысл этого слоя заключается в создании терминалонезависимого интерфейса, содержащего методы выставления ордеров, вывода, событий для заключенных сделок, отмены ордеров, событий изменения котировок, транзакций и т.д. Затем нам нужно создать балансы счетов и другие вещи. Реализация этого интерфейса может представлять собой абстрактный класс с общим именем. Все методы этого класса должны вызываться из основного потока. То есть экземпляр класса создает поток, через который другие потоки (например, не только уровень глубокого уровня транзакций, но и этот уровень) могут передавать данные. Это возможно только через прокси-вызовы. Это называется маршалингом. Например, я не использовал стандартные средства для маршалинга, а реализовал свои (классическим способом — через очереди). Каждая реализация класса алгоритма имеет свой список продуктов, свой заказ, свой список транзакций и т. д. Торговая система — это приложение, поэтому проще всего ее внедрить в консольную версию (торопиться некуда, но хочется быстрее увидеть результаты). Консольное приложение подразумевает несколько способов взаимодействия с приложением. Самый простой способ взаимодействия — командная строка. Поэтому нам нужно создать еще один. Этот уровень отвечает за запуск и остановку алгоритмов, мониторинг активности, а также имеет набор сервисных функций, позволяющих получать статистические данные о продуктах и ​​ходе транзакций. Этот уровень также интегрирован с другими уровнями обслуживания для записи хода транзакции (файлы) или хранения результатов транзакций (продуктов, заказов, транзакций и т. д.) в локальной базе данных в контексте каждого алгоритма. Все интеграции выполняются посредством межпоточного взаимодействия, аналогично тому, что было ранее описано для класса алгоритма. Естественно, вам необходимо предоставить классы обслуживания для разных классов продуктов, заказов и транзакций, которые содержат базовую логику расчета прибыльности и комиссий. , открытые позиции и прочее реализовано, но все это уже включено в класс алгоритма, как и контейнер. Для получения данных по свечам и барам анализа необходимо создать свой класс обслуживания и предоставить всю расчетную часть. На этом этапе вы можете задавать такие вопросы, как: Может, мне все-таки стоило изучить LUA и не бездельничать?! Этот пост в целом заставляет читателя задуматься и принять правильное (или неправильное) решение. Например, свечной анализ не обязателен. У меня когда-то одновременно работало около 20 алгоритмов, и на слабом компьютере загрузка системы никогда не превышала 3-5%, даже не помню, какой это был год. Потребление памяти также минимально (ну, это зависит от логики, которую вы планируете использовать, и от того, сколько данных вы хотите ввести). После того как все необходимые пункты заполнены, можно приступать к тестовому запуску. Для этого просто создайте новый класс, унаследовав класс Algorithm. На начальном этапе достаточно реализовать простую версию алгоритма усреднения по ряду заранее выбранных акций. Его основная задача — автоматическая обработка транзакций и мониторинг системы, а не получение прибыли. Вероятно появление первой прибыли (или убытка). Конечно, будут возникать различные проблемы и вы их решите. Но в итоге все начнет работать надежно (если вы делали это аккуратно и не торопясь). Тогда пришло время создать второй алгоритм, скопировав первый алгоритм. Мы вносим несколько корректировок и заставляем обе стратегии работать одновременно.По завершению работы появится понимание, почему все началось, и если работа помешает торговому процессу, дальнейшие «умные» стратегии и сложность самой системы будут полностью зависеть от вас. Процесс транзакции. Для вашей торговой системы вам потребуется создать оболочку со скриптовым языком, которая будет запускать терминалы, приложения, соединять их друг с другом, начинать получать данные (запускать торговый процесс), останавливать торговлю в конце сессии и сохранять результаты торговли. Если в локальной базе возникают ошибки, перезапустите все (в основном ошибки канала связи и QUIK). И да, не пользуйтесь Yota. Никогда и ни при каких обстоятельствах не используйте модем Yota. Не повторяйте чужих ошибок. Да, пользуюсь, но давно хотел бросить. Ну а если звезды так сошлись, что вам нужен мобильный интернет, то написанное выше – не панацея. Можно использовать Python или что-то более подходящее для биржевой торговли, скачать данные из Финама или того же QUIK и посидеть на нем "шаманить" по поиску корреляций, декорреляций и прочей фелляции. Тогда возьмите за правило каждый день выгружать данные по интересующим инструментам, получать торговые сигналы и вводить их (возможно, вручную) в свой торговый терминал. Также необязательно. Но мне эта схема не подошла. Я хочу, чтобы полная автоматизация была на рынке в любой момент. И помните, для создания прибыльной стратегии необходимы две вещи: умение читать (спецификации, правила брокеров, тарифы) и здравый смысл. PS: Как написали в конце... всё описанное выше не является торговой идеей. Итак... все написанное выше - это торговая идея. Вам остается только реализация. PS2: О моей торговле и прибыльности. Сделки совершаются автоматически и прибыль есть, но она очень маленькая. Никогда и ни при каких обстоятельствах не используйте модемы Yota. Не повторяйте чужих ошибок. Да, пользуюсь, но давно хотел бросить. Ну а если звезды так сошлись, что вам нужен мобильный интернет, то написанное выше – не панацея. Можно использовать Python или что-то более подходящее для биржевой торговли, скачивать данные из Финама или того же QUIK и сидеть на нем "шаманить" по поиску корреляций, декорреляций и прочей фелляции. Тогда возьмите за правило каждый день выгружать данные по интересующим инструментам, получать торговые сигналы и вводить их (возможно, вручную) в свой торговый терминал. Также необязательно. Но мне эта схема не подошла. Я хочу, чтобы полная автоматизация была на рынке в любой момент. И помните, для создания прибыльной стратегии необходимы две вещи: умение читать (спецификации, правила брокеров, тарифы) и здравый смысл. PS: Как написали в конце... всё описанное выше не является торговой идеей. Итак... все написанное выше - это торговая идея. Вам остается только реализация. PS2: О моей торговле и прибыльности. Сделки совершаются автоматически и прибыль есть, но она очень маленькая. Никогда и ни при каких обстоятельствах не используйте модемы Yota. Не повторяйте чужих ошибок. Да, пользуюсь, но давно хотел бросить. Ну а если звезды так сошлись, что вам нужен мобильный интернет, то написанное выше – не панацея. Можно использовать Python или что-то более подходящее для биржевой торговли, скачать данные из Финама или того же QUIK и посидеть на нем "шаманить" по поиску корреляций, декорреляций и прочей фелляции. Тогда возьмите за правило каждый день выгружать данные по интересующим инструментам, получать торговые сигналы и вводить их (возможно, вручную) в свой торговый терминал. Также необязательно. Но мне эта схема не подошла. Я хочу, чтобы полная автоматизация была на рынке в любой момент. И помните, для создания прибыльной стратегии необходимы две вещи: умение читать (спецификации, правила брокеров, тарифы) и здравый смысл. PS: Как написали в конце... всё описанное выше не является торговой идеей. Итак... все написанное выше - это торговая идея. Вам остается только реализация. PS2: О моей торговле и прибыльности. Сделки происходят автоматически и прибыль есть, но она очень маленькая.Помните, вам нужны две вещи: тарифы) и здравый смысл. PS: Как написали в конце... всё описанное выше не является торговой идеей. Итак... все написанное выше - это торговая идея. Вам остается только реализация. PS2: О моей торговле и прибыльности. Сделки совершаются автоматически и прибыль есть, но она очень маленькая. Никогда и ни при каких обстоятельствах не используйте модемы Yota. Не повторяйте чужих ошибок. Да, пользуюсь, но давно хотел бросить. Ну а если звезды так сошлись, что вам нужен мобильный интернет, то написанное выше – не панацея. Можно использовать Python или что-то более подходящее для биржевой торговли, скачивать данные из Финама или того же QUIK и сидеть на нем "шаманить" по поиску корреляций, декорреляций и прочей фелляции. Тогда возьмите за правило каждый день выгружать данные по интересующим инструментам, получать торговые сигналы и вводить их (возможно, вручную) в свой торговый терминал. Также необязательно. Но мне эта схема не подошла. Я хочу, чтобы полная автоматизация была на рынке в любой момент. И помните, для создания прибыльной стратегии необходимы две вещи: умение читать (спецификации, правила брокеров, тарифы) и здравый смысл. PS: Как написали в конце... всё описанное выше не является торговой идеей. Итак... все написанное выше - это торговая идея. Вам остается только реализация. PS2: О моей торговле и прибыльности. Сделки совершаются автоматически и прибыль есть, но она очень маленькая. Никогда и ни при каких обстоятельствах не используйте модемы Yota. Не повторяйте чужих ошибок. Да, пользуюсь, но давно хотел бросить. Ну а если звезды так сошлись, что вам нужен мобильный интернет, то написанное выше – не панацея. Можно использовать Python или что-то более подходящее для биржевой торговли, скачать данные из Финама или того же QUIK и посидеть на нем "шаманить" по поиску корреляций, декорреляций и прочей фелляции. Тогда возьмите за правило каждый день выгружать данные по интересующим инструментам, получать торговые сигналы и вводить их (возможно, вручную) в свой торговый терминал. Также необязательно. Но мне эта схема не подошла. Я хочу, чтобы полная автоматизация была на рынке в любой момент. И помните, для создания прибыльной стратегии необходимы две вещи: умение читать (спецификации, правила брокеров, тарифы) и здравый смысл. PS: Как написали в конце... всё описанное выше не является торговой идеей. Итак... все написанное выше - это торговая идея. Вам остается только реализация. PS2: О моей торговле и прибыльности. Сделки происходят автоматически и прибыль есть, но она очень маленькая.Помните, вам нужны две вещи: тарифы) и здравый смысл. PS: Как написали в конце... всё описанное выше не является торговой идеей. Итак... все написанное выше - это торговая идея. Вам остается только реализация. PS2: О моей торговле и прибыльности. Сделки совершаются автоматически и прибыль есть, но она очень маленькая. Никогда и ни при каких обстоятельствах не используйте модемы Yota. Не повторяйте чужих ошибок. Да, пользуюсь, но давно хотел бросить. Ну а если звезды так сошлись, что вам нужен мобильный интернет, то написанное выше – не панацея. Можно использовать Python или что-то более подходящее для биржевой торговли, скачивать данные из Финама или того же QUIK и сидеть на нем "шаманить" по поиску корреляций, декорреляций и прочей фелляции. Тогда возьмите за правило каждый день выгружать данные по интересующим инструментам, получать торговые сигналы и вводить их (возможно, вручную) в свой торговый терминал. Также необязательно. Но мне эта схема не подошла. Я хочу, чтобы полная автоматизация была на рынке в любой момент. И помните, для создания прибыльной стратегии необходимы две вещи: умение читать (спецификации, правила брокеров, тарифы) и здравый смысл. PS: Как написали в конце... всё описанное выше не является торговой идеей. Итак... все написанное выше - это торговая идея. Вам остается только реализация. PS2: О моей торговле и прибыльности. Сделки совершаются автоматически и прибыль есть, но она очень маленькая. Никогда и ни при каких обстоятельствах не используйте модемы Yota. Не повторяйте чужих ошибок. Да, пользуюсь, но давно хотел бросить. Ну а если звезды так сошлись, что вам нужен мобильный интернет, то написанное выше – не панацея. Можно использовать Python или что-то более подходящее для биржевой торговли, скачать данные из Финама или того же QUIK и посидеть на нем "шаманить" по поиску корреляций, декорреляций и прочей фелляции. Тогда возьмите за правило каждый день выгружать данные по интересующим инструментам, получать торговые сигналы и вводить их (возможно, вручную) в свой торговый терминал. Также необязательно. Но мне эта схема не подошла. Я хочу, чтобы полная автоматизация была на рынке в любой момент. И помните, для создания прибыльной стратегии необходимы две вещи: умение читать (спецификации, правила брокеров, тарифы) и здравый смысл. PS: Как написали в конце... всё описанное выше не является торговой идеей. Итак... все написанное выше - это торговая идея. Вам остается только реализация. PS2: О моей торговле и прибыльности. Сделки происходят автоматически и прибыль есть, но она очень маленькая.


Источник: sMart-lab.ru - Блоги Инвесторов, Форумы по акциям, КотировкиsMart-lab.ru - Блоги Инвесторов, Форумы по акциям, Котировки

Loading...