Как написать робота для торговли на бирже

от admin

Разработка инфраструктуры и торговых ботов для ИИ-трейдинга

Примечание: данная статья преследует исключительно образовательные и развлекательные цели, не являясь прямой финансовой рекомендацией. Редакция каналов Better Programming и Nuances of Programming не несет никакой ответственности за возможные последствия предпринимаемых вами действий в области биржевой торговли.

Алгоритмический трейдинг выстраивается на основе данных, которые для этого всесторонне анализируются. Систематическая торговля, снаряженная таким научным подходом, существенно выигрывает перед дискреционной, основанной на интуитивных методах.

Тем не менее было бы ошибочным и легкомысленным предположить, что ИИ-трейдинг базируется на одной только науке о данных. В основу этой стратегии ложится совокупность нескольких сложных принципов, что требует целостного подхода.

Освоение принципов торговли и их взаимосвязей должно стать первым и наиболее важным требованием при начале проекта по автоматизации трейдинга. Вторым условием будет инфраструктура ПО, которая поможет эти принципы задействовать.

Статья основана на трехлетнем опыте группы друзей, с головой погруженных в автоматизированную торговлю криптовалютой. Она ориентирована на разработчиков, ученых по данным и трейдеров, рассматривающих вход в область алгоритмического трейдинга.

В этой статье я по пунктам расскажу, что необходимо для становления ИИ-торговли, опираясь на сотни часов опыта, которые были проведены в исследовании различных подходов. Я также расскажу об уроках, которые усвоил в процессе формирования инфраструктуры автоматизированной коллективной торговли, и пролью свет на доступные для сообщества инструменты.

Для начала определимся со значениями трех терминов, которые зачастую употребляются неоднозначно, что может вносить неясность.

  • Торговая система — структура для обработки низкоуровневой логики, которая упорядочивает процесс и методы, используемые для реализации и внедрения торговых стратегий.
  • Торговая стратегия — описание набора действий или событий, выполняемого по стадиям. События активируются при выполнении точных условий, описывающих конкретные ситуации на рынке. Стратегии формируются, чтобы достичь определенной цели в рамках более обширного плана торговой системы посредством открытия позиций и управления ими.
  • Торговый бот — это программа, которая во время торговых сессий на основе доступных наборов данных применяет ту или иную логику, определенную в торговой стратегии. Сессии могут быть как тестовыми, где задействуются симуляции, так и реальными торговыми ситуациями, подразумевающими управление действительными ордерами на бирже.

Вид сверху

Говоря в общем, торговая стратегия реализует ряд инструкций для принятия решений на основе анализа данных рынка. Из этого следует, что качество торговой логики напрямую зависит от возможностей данного анализа.

Начнем с рассмотрения логики, программируемой человеком, а реализации ИИ оставим для других статей.

Торговые идеи формируются на основе анализа и визуализации данных.

Чтобы придумать правила, определяющие, когда покупать активы, а когда продавать, трейдеру нужно сформулировать гипотезу на основе торговых идей. Одна из наиболее актуальных областей для формирования торговых идей опирается на технический анализ.

Несмотря на то, что по мнению некоторых людей рынки ведут себя стохастически, большинство трейдеров верят, что поведение рынков во многом определяется человеческой психологией принятия торговых решений. Так как люди склонны следовать (по меньшей мере поддаваться влиянию) эмоциям, например страху или жадности, то и реагируют они предсказуемым образом, когда сталкиваются с определенными стимулами среды. В некотором смысле трейдеры верят, что это ведет к формированию среди хаотичных движений цены активов неких паттернов.

Несомненно, на цену влияют и другие факторы, которые могут приводить к формированию паттернов в разных временных масштабах. Например, микро- и макроэкономические принципы, влияющие на конкретный рынок, спрос и предложение, взаимодействие с другими рынками, глобальная политика, основные средства и др. Именно такие многосторонние и неограниченные наборы переменных и влияют на рынки, делая их прогнозирование столь сложным.

Так как алгоритмическая торговля основывается на аналитике данных, а в основе программируемой человеком логики лежат в основном наблюдения за паттернами, можно заключить, что визуализация данных также является важным компонентом. Есть причина, почему дискреционные трейдеры проводят бесчисленные часы, просто наблюдая графики рынков: они стремятся принимать решения на основе того, что видят. Как алгоритмический трейдер, вы тоже можете посматривать на графики, но тратить на это уже не так много времени, как традиционные рыночные дилеры. В вашем случае это поможет продумать торговые идеи, которые затем вы воплотите в качестве правил торговых стратегий.

Торговые стратегии вырабатываются в результате реализации, тестирования и доработки торговых идей.

Как только торговую идею удалось описать в форме правил, нужно протестировать стратегию и посмотреть, как она себя покажет в отношении исторических данных — то, что мы называем ретроспективным тестированием — и в отношении реальных данных, что мы называем бумажный трейдинг.

Тестирование торговых стратегий является важнейшим аспектом систематической торговли, поскольку точность и надежность тестов напрямую влияют на то, как они соотносятся с реальностью. Чтобы созданные тесты имели хоть какое-то значение в прогнозировании реального качества торговли, в них должны учитываться принципы реального трейдинга и все влияющие на торговые сессии переменные. В качестве примера можно привести комиссионные сборы за обмен валюты и проскальзывание, означающее разницу между курсом, по которому устанавливаются ордера, и тем, по которому они фактически исполняются биржевым механизмом сопоставления ордеров.

Эффективность живой торговли определяется оптимальностью внедрения автоматизированных торговых стратегий.

Внедрение таких стратегий в торговые сессии сравнимо с критически важным финансовым приложением, управляющим реальными деньгами. Торговый бот должен быть исключительно надежен, для чего необходимо его основательно тестировать и подвергать контролю качества.

Он также должен быть гибок и обладать функциональностью для отслеживания действий стратегий, таких как поддержание учетных записей, предоставление диапазона для администрирования, перемещения или отмены ордеров и т.д.

Чуть позже мы поговорим и о других важных моментах. Сейчас же стоит отметить, что алгоритмическая торговля требует серьезной инфраструктуры.

Освоение ключевых принципов

Как следует из раздела “Взгляд сверху”, для надежного проектирования, тестирования и внедрения торговых стратегий требуется основательная инфраструктура ПО. Мы вкратце рассмотрим ее наиболее важные элементы, которые в совокупности будем называть платформой.

Подключение биржи

Интерес общества к тем или иным биржам криптовалют то разгорается, то затухает. Когда мы только начали работать с торговыми ботами, Poloniex находилась в верху пищевой цепочки. Через несколько месяцев, к моменту, когда наша инфраструктура находилась в пригодной к использованию начальной стадии, Poloniex уже выпала из Топ-20 биржевого списка.

Причина, по которой важно торговать именно на популярных биржах, заключается в том, что только они могут предложить надлежащую ликвидность, то есть достаточный объем заявок (ордеров на покупку) и запросов (ордеров продажи). Таким образом один ордер уже не сможет существенно повлиять на стоимость.

Вам не обязательно придерживаться какой-то конкретной биржи. По меньшей мере ваша платформа должна иметь возможность подключаться к более, чем одной популярной бирже. Это особенно важно, если вы хотите воспользоваться неэффективностью бирж, например определять, приводят ли одни из них к более широким движениям цен, чем другие.

Биржи предоставляют API, который может со временем изменяться. Поэтому поддерживание различных коннекторов является долгосрочной задачей.

Ваша платформа должна уметь обрабатывать всевозможные проблемы подключений и постоянно гарантировать целостность извлекаемых из бирж данных, а также транзакций.

Подключение через интернет особо важных приложений несет в себе ряд сложностей. Существует немало регулярно возникающих проблем, которые могут оборвать, затянуть или нарушить соединение с биржей на прикладном уровне, сетевом, на уровнях API биржи и внутренних систем, а также между любым их этих уровней.

Сбор данных

Вам необходимы надежные рыночные данные, как для тестирования реализации торговой идеи, так и для принятия торговых решений. Это означает, что вам нужно обрабатывать исторические наборы данных, а также те, что поступают с бирж в реальном времени.

Биржи предоставляют сырые торговые данные или свечи небольшими частями. Вам же нужен доступ ко всей истории рынка, чтобы можно было провести статистические исследования и использовать долгосрочные индикаторы, такие как скользящие средние.

Один пробел в данных может изменить их анализ непредвиденным образом, поэтому процесс извлечения информации с бирж и построения датасетов должен быть сверхнадежен.

Сырая информация рынка является лишь стартовой точкой для бесчисленных трансформаций, которые вам необходимо сделать в поиске паттернов, корреляций и торговых возможностей.

Ваша платформа должна обеспечивать типичные исследования технического анализа, но также предоставлять инструменты для проведения собственных.

Именно это будет отличать сведения, которые вы сможете получить из данных, от того, что стандартно доступно для рядовых трейдеров.

Визуализация данных

Люди — визуальные создания. Хоть наш мозг и заключен в “черный ящик”, у нас есть развитые сенсоры для восприятия среды и отправки ценной информации в центральную нервную систему для интерпретации. Зрение при этом является нашим основным сенсором.

Алгоритмы хороши в вычислении чисел, но как человек, вы имеете существенное преимущество за счет способности визуализировать данные. Именно это и нужно, чтобы обнаружить в них ключевые моменты и придумать эффективные торговые идеи.

Для максимально эффективного анализа данных в вашей платформе должна быть интегрирована система графиков. Идеальным сценарием будет проводить расчеты с использованием признаков, позволяющих отражать всевозможные данные на типичных рыночных графиках. С помощью них вы сможете сравнивать наборы данных в поиске визуальных ключей, которых может не хватать в алгоритмах.

Тестирование стратегии

У вас должна быть возможность беспрепятственного тестирования алгоритмов в ретроспективе на исторических датасетах. Кроме того, нужно иметь возможность тестировать стратегию на перспективу, используя живые данные, как без размещения на бирже действительных ордеров — то есть без бумажной торговли — так и с размещением реальных ордеров с небольшой долей капитала, что называется форвард-тестированием.

Ни показатели ретроспективного, ни форвард-тестирования нельзя считать точными предикторами будущей эффективности, но если ваши стратегии не покажут себя хорошо в тестах, то уж точно не будет смысла доверять им свой капитал в реальных торгах.

Торговый бот должен уметь симулировать живую торговлю максимально точно как при ретроспективном тестировании, так и во время бумажной торговли. Он должен симулировать события биржи, такие как исполнение ордеров, учитывая нюансы отслеживания ордеров и администрирование, что будет описано в следующем разделе. Чем ближе симуляции будут к реальности, тем вероятнее их прогнозы будут соответствовать эффективности при живой торговле.

Это основная функциональность тестирования, необходимая до начала внедрения стратегий в реальные торги. Тем не менее есть и более продвинутые возможности платформ, которые могут оказать огромное влияние на эффективность стратегий. Некоторые из них будут полезны на ранних стадиях при проектировании стратегий и в фазе их доработки.

В качестве примера можно назвать анализ поведения стратегии не только в виде обобщенного отчета по результативности ретроспективного теста, а также на основе графической симуляции каждой сделки непосредственно в виде графиков. Такой функционал делает возможным тонкий анализ торговых правил, продвигая тонкую настройку и оптимизацию на новый уровень.

Аналогичным образом очень желательно задействовать надежное решение по отладке стратегии. Чрезвычайно важно иметь постоянный доступ к информации среды выполнения, обрабатываемой торговым ботом, чтобы эффективно обнаруживать потенциальные недостатки в определениях правил.

Управление ордерами

Размещение ордеров на первый взгляд может показаться несложной задачей. Однако торговый бот должен обладать достаточным интеллектом, чтобы также отслеживать ордера и управлять ими.

Ордера могут исполняться по разным ставкам, могут исполняться с постепенным повышением за период времени или не исполняться совсем. При каждом частичном исполнении биржа взимает соответствующую комиссию, которую тоже нужно учитывать. При этом курс может не совпадать с запланированным алгоритмом по нескольким причинам, включая проскальзывание, округление десятичных разрядов и т.п. Все эти случаи должны обрабатываться ботом, чтобы торговая сессия синхронизировалась с происходящими на бирже событиями.

Более того, бот должен выполнять хотя бы некоторые базовые операции учета балансов, чтобы выделенный капитал использовался в торговых сессиях должным образом.

Масштабируемое внедрение

Одно из основных преимуществ автоматизированного трейдинга по сравнению с ручным — это возможность работать с практически неограниченным числом стратегий. На этапе готовности ваша операция может состоять из нескольких стратегий, реализующихся на нескольких рынках ряда бирж. Для воплощения этой возможности вам потребуется инфраструктура ПО, координирующая использование ресурсов, эффективное управление которыми также является частью торгового ИИ.

Вашей платформе необходима возможность координировать развертывание сбора данных и торговые задачи на нескольких машинах, чтобы общий процесс мог масштабироваться по мере развития стратегий. При этом координирование должно происходить эффективно, позволяя стратегиям, работающим на одном рынке и бирже, использовать общий источник данных.

Масштабируемость инфраструктуры

Успешная платформа автоматизированного трейдинга должна иметь возможность опробовать различные подходы в поиске и использовании торговых возможностей. Описанные ранее ключевые принципы составляют фундамент инфраструктуры, подходящей для технического, статистического, сентимент-анализа и практически любого подхода, основанного на сборе данных.

С чего начать

Есть много путей, по которым можно пойти в направлении успешного алгоритмического криптотрейдинга. Первым вопросом потребуется обозначить цели, то есть решить, чего именно вы хотите достичь.

Если вы хотите просто попробовать свои силы и посмотреть, как оно пойдет, тогда вам наверняка не стоит утруждать себя всем тем, о чем мы здесь написали.

В серьез же обратить внимание на этот материал стоит, если вы хотите преуспеть именно в алгоритмической торговле. Успех подразумевает достижение положительных и стабильных торговых результатов. На непрофессиональном языке можно сказать просто, что успех влечет за собой последовательное зарабатывание денег.

К счастью, для освоения основных принципов, способствующих созданию торгового ИИ, вам не обязательно выстраивать всю инфраструктуру самим. На деле есть смысл и даже желательно этого избежать.

Написание кода, отстройка и стабилизация настолько объемной системы может занять годы даже для опытного разработчика. Таков уж уровень сложности. Вместо этого можно использовать открытые инструменты или принимать участие в их развитии, равно как и в становлении целых платформ.

Ваш фокус должен быть на реализации сбора данных, которые позволят развить торговые идеи, а также на воплощении этих идей в торговые стратегии. Это не только является занятной частью алгоритмической торговли, но также и фактором, определяющим то, приносят ли ваши усилия положительные и стабильные результаты. Остальное считается само собой разумеющимся.

Если вы хотите сосредоточиться на разработке именно торгового интеллекта, а не целой инфраструктуры, тогда следующим шагом будет изучение открытых платформ алгоритмической торговли в поиске наиболее подходящей для ваших нужд.

Приглашаем всех в наш основной репозиторий GitHub — возможно, вас заинтересуют наши разработки. Мы выпустили все свои продукты под лицензией Apache 2.0.

Как коренной обитатель крипто-вселенной я бы даже не подумал доверить свои стратегии корпоративным агентам, которые могут изменить условия, коммерческие политики, бизнес-модель или даже ограничить в любой момент доступ. И это отнюдь не легкие опасения. В худшем сценарии корпорация может пойти по агрессивному пути и использовать знание ваших стратегий для их опережения или даже продать эти стратегии без вашего ведома. Открытое ПО устраняет все эти опасения.

Как создать первое приложение для торговли на бирже: начальные шаги и простые инструменты ⁠ ⁠

Современные биржи – очень технологичны и привлекают внимание людей, которые ранее не имели опыта инвестиций. Многих интересует тема написания торговых роботов – кто-то хочет самостоятельно попытаться заработать на бирже, кто-то не прочь делать это на заказ. Сегодня мы поговорим о том, как стоит подойти к созданию первого такого продукта – обсудим возможный стек технологий, снижение порога входа и способы минимизации возможных потерь.

Примечание: пост для тех, кто уже хотя бы примерно представляет себе устройство биржи, наличие рисков, имеет возможность экспериментировать не на последние деньги и, в целом, обладает здравым смыслом.

Изучите возможный стек технологий

Как и в любом ИТ-проекте, при разработке приложений для торговли на бирже, выбор конкретных инструментов диктует конечная цель. Прежде чем начинать разрабатывать торгового робота, нужно спроектировать всю систему, понять, какие модули в ней будут, как они будут взаимодействовать.

Пишите вы высокочастотного робота, которому важна каждая миллисекунда? На каких рынках каких стран будет работать торговая система? Будет ли в ней лишь торговый движок, или еще нужно добавить модуль риск-менеджмента?

В каждом из этих случаев набор технологий может различаться. Хорошо подход к выбору описан в статье на профильном ресурсе QuantStart (конечно, на английском – для разработки финансовых приложений этим языком лучше неплохо овладеть).

В общем и целом, выбирать вам скорее всего придется из такого списка технологий:

Для первого раза будет проще использовать встроенные языки программирования

Создание мощной торговой системы – это по-умолчанию достаточно масштабный проект. Однако если ваша цель – в принципе познакомиться с разработкой для сферы финансов, изучить различные моменты при создании торговых роботов, то вполне можно обойтись и так называемыми встроенными языками программирования.

Существуют торговые терминалы, которые можно не только использовать для совершения сделок в ручном режиме, но и применять встроенные в них скриптовые языки для создания несложных роботов.

Один из самых популярных на российском фондовом рынке терминалов – это QUIK, и в нем есть алгоритмический язык QPILE ( QUIK Programmable Interface and Logic Environment). С его помощью можно автоматизировать несложные торговые системы. Также в QUIK встроен интерпретатор скриптового языка LUA – он называется QLUA. В терминал скрипты на нем можно загружать как в виде исходного кода, так и уже в виде скомпилированного байт-кода.

Пример кода на QPILE:

Оба языка обладают достаточно развитым коммьюнити пользователей, вопросы можно задавать в тредах на официальном форуме.

Помимо QUIK, на российских биржах можно торговать через терминал SMARTx. В нем используется встроенный скриптовый язык TradeScript. Синтаксис у него простой, но количество доступных слов и операндов, кодировать можно довольно сложные стратегии. Вот так может выглядеть код простой стратегии на TradeScript:

Самый важный этап: тестирование и отладка

Разработка приложений для сферы финансов и особенно инструментов для торговли на бирже сложна тем, что тут за ошибки в прямом смысле нужно расплачиваться деньгами. Это не написание кода для очередного веб-стартапа, где при сбой может пройти незамеченным. Любая ошибка в коде торгового робота будет выливаться в потерю денег. Поэтому отладка и тестирование – самый важный этап при создании такого софта.

Безусловно, следует применять все лучшие практики, создавать тесты, правильно проводить приемку кода (пусть даже вы разрабатываете проект в одиночку). И самое главное – перед началом тестов на реальных деньгах, «погоняйте» программу на виртуальных.

Сегодня многие российские брокеры предлагают бесплатную услугу тестового доступа (например, такой есть у компании-разработчика терминала SMARTx), когда вам дают счет, который почти ничем не отличается от реального, но деньги на нем виртуальные. Как правило, при работе с таким счетом можно торговать на основных рынках – фондовом, валютном, срочном – и работать с основными акциями, фьючерсами и т.п.

В некоторых случаях, можно даже тестировать торговлю с привлечением заемных средств (то есть плечом) – но при создании первого робота еще вопрос, нужно ли добавлять в него такие функции.

301 пост 4.5K подписчиков

Правила сообщества

-Ставьте наши теги, если Ваш пост о программе, приложении или браузере(в том числе о расширениях, дополнениях в нему), его недоработке, баге, обновлении. Это может быть пост — обзор или отзыв.

-При возникновении споров относитесь с уважением друг к другу, а так же приводите аргументы.

Разрешено всё, что не запрещено правилами Пикабу.

Если бы открытые программы были такими прибыльными — сейчас бы все вокруг были миллионерами.. Однако этого не происходит.

Я понимаю, что стратегию разрабатывает человек, но математическая модель сигналов создана «чужой» командой.
Какой % в месяц с такого трейда поднимает автор? Процент в студию, потом обсуждаем дальше.

Меня хотят засудить за пост о тухляке в сети разливаек :(⁠ ⁠

Меня хотят засудить за пост о тухляке в сети разливаек :( Пиво, Суд, Екатеринбург, Негатив, Коммерческая тайна

Не прошло и пару дней, как наш доблестный ИП Парфëнов, владелец 5ти магазинов по продаже тухляка решил объявиться и грозно постучаться в вотсап.

Говорит, что хочет засудить по закону о коммерческой тайне.

К сожалению, кажется, он меня сразу же заблокировал и мое сообщение до него не доходит, поэтому, раз он читает мои посты, продублирую сообщение сюда.

Добрый день, А. А. , не мне вас учить как составлять досудебную претензию. Прошу направить претензию на моë имя с описью вложеного до востребования в отделении Почты России
ул. 8 Марта, 57, 620063. Прошу вложить в конверт, мою копию ГПХ, подписанную Вами и с печатью (Наконец-то я увижу его в таком виде в первый раз) . А также информацию передачи о начале и прекращению договора в СФР, подтверждение уплаты НДФЛ и Страховых взносов (вы же это делали?). В претензии приложить документ с моей подписью, где я уведомлен о коммерческой тайне. Приложить перечень что в компании считается коммерческой тайной.

И купить хотя бы печать, чтобы можно маркировать что коммерческая тайна, а что нет, но это я так. Вы же не упустили этот момент?

Отец в Нью-Гэмпшире (США) пришёл на заседание школьного совета в костюме Юлия Цезаря в знак протеста против гендерной политики учителя⁠ ⁠

Майкл Гульельмо назвал себя древнеримским императором и женщиной, а потом заявил, что верить в это нелепо. Мужчина призвал к отставке директора школы и преподавателя, который с недавних пор приходит на уроки в женской одежде.

Отец в Нью-Гэмпшире (США) пришёл на заседание школьного совета в костюме Юлия Цезаря в знак протеста против гендерной политики учителя Гай Юлий Цезарь, Гендерные вопросы, ЛГБТ, США, Школа, Отец

«Ваш долг — действовать в интересах детей. Учить правде, а не лжи. Фактам, а не выдумкам. Биологии, а не социальной повестке. Будучи налогоплательщиками, мы заслуживаем, чтобы наших детей учили тому, за что мы платим. И это не социальная повестка, будь она с правым или левым уклоном», — отметил Гульельмо.

Американцы показали доказательства, что украинцы все таки взорвали Северный поток⁠ ⁠

Американцы показали доказательства, что украинцы все таки взорвали Северный поток

Плохое настроение⁠ ⁠

В студенческие годы я жил в oбщaгe, сосед по комнате был немного дeпpeccивным и былa у него особенная фишкa. Cтoилo eму поругаться co cвoeй дeвушкoй, в учебе где то не успевал или пpocтo не было нacтpoeниe, то он садился и нaчинaл лeпить пeльмeни. B мopoзилкe вceгдa лeжaл гoтoвый фapш, в шкафу у нас всегда был пакет муки, пoэтoму oн включaл ceбe гpуcтную музыку и мог просидеть так больше двух часов за столом. Зa такой один присест мoг cлeпить 300-400 штук, пoтoм когда они замораживались, он раскладывал пo пакетам и oтдaвaл мнe и нашим соседям по этажу. Зoлoтoй был чeлoвeк, вспоминаю его по сей день. Жaль, чтo кoгдa у мoeй жeны плoxoe нacтpoeниe, oнa нe лeпит пeльмeни, a пpocтo пи*дит.

Читать:
Как создать свой плейлист m3u для iptv

Это гениально я считаю⁠ ⁠

Это гениально я считаю Atomic Heart, Юмор, Близняшки (Atomic Heart), Твикс, Картинка с текстом

Это гениально я считаю Atomic Heart, Юмор, Близняшки (Atomic Heart), Твикс, Картинка с текстом

Константин Плотников, сыгравший Михаила Горшенёва в сериале «Король и Шут», подрабатывает дворником⁠ ⁠

Константин Плотников, сыгравший Михаила Горшенёва в сериале «Король и Шут», подрабатывает дворником Король и Шут, Актеры и актрисы, Российское кино, Михаил Горшенев, Дворник, Из сети, Фотография, Русские сериалы

Костя убирает территорию возле Александро-Невской лавры в Санкт-Петербурге. После премьеры сериала ему даже повысили зарплату.

Купите, твари, наушники⁠ ⁠

Бесит. Прям пичот.
Сколько раз уже сталкиваюсь с таким. Придут, сядут рядом/в комнате/на лавочке/в заведении, достанут телефон, откроют блядский тик-ток, Ютуб, что ещё там есть и, сука, громко смотрят ролики. Особенно это касается коротких роликов, которые на минуту и друг за другом идут подряд. Пять секунд одной громкой хрени, три секунды второй, опять три секунды первой хрени (нахуй ты блядь листал дальше и теперь опять возвращаешься и снова дальше листаешь, у тебя кретин ёбаный что, пальцы не слушаются?). И так короткими звуковыми волнами вся эта блядская музыка/басы/голоса выносят мозг. И что характерно, они даже звук не убавляют. Фильм смотрят- регулируют громче/тише, а тут пол часа телефон орёт разрывается, и сидят как ёбаные зомби, смотрят.
Купите, сука, наушники! Они продаются! Их можно прийти и прям с полки своими двумя руками взять. Боженька дал вам две руки именно для этого, чтобы вы могли ими что-нибудь взять. Так возьмите, блять, наушники и засуньте их себе в блядские уши.
Всё, я ебанулся, пойду водички попью.

Ответ kaegoorn48 в «Ситуации, когда человек строит из себя эксперта, не зная, что вы в этом деле профессионал» корчишь из себя профи⁠ ⁠

Произошло не со мной но при мне. Сварщ ки из жэка варили стояки в соседней квартире, там бабулька-божий одуванчик. Слышу она громко и матерно объясняет слесарям откуда у них руки растут. Что навешали они соплёй и что она сама себе заварит и чтоб они ей при этом не мешали. Мужики не долго ржали, бабуля с15 лет на танковом заводе начала сварщицей, варила броневую сталь и имела собственное клеймо, варила первые магистральные газопроводы. Такие вот у нас бабушки

Считаем бумагу⁠ ⁠

Бумага формата А4 под названием «Снегурочка», от компании Mondi.

Заявлено: 500 шт.

Считаем бумагу Бумага, Длиннопост, Обман, Подсчет, Лига Счетоводов

В стопке 25 листов. Пересчитывал 2 раза.

Считаем бумагу Бумага, Длиннопост, Обман, Подсчет, Лига Счетоводов

Я раньше считал бумагу на регулярной основе и именно у Снегурочки всегда было меньше, чем заявлено (на 10 листов бывало). Кому не лень — посчитайте свою. Это мне так не везёт или они всегда меньше фасуют, чем заявлено и оплачено?

PS: Без рекомендованных тегов не даёт опубликовать а предлагает не то, что нужно.

И жили они долго. ⁠ ⁠

И жили они долго. Юмор, Картинка с текстом, Брак (супружество), Археология, Мумия, Зашакалено

«Мегафон» решил передавать данные клиентов компаниям по выдаче микрозаймов, спрятав галочку «не согласен» в тексте⁠ ⁠

«Мегафон» решил передавать данные клиентов компаниям по выдаче микрозаймов, спрятав галочку «не согласен» в тексте Негатив, Мегафон, Длиннопост, Пользовательское соглашение, Скриншот, Персональные данные

Компания «Мегафон» обновила мобильное приложение и решила передавать персональные данные (ПД) клиентов компаниям по выдаче микрозаймов и кредитов. Разработчики скрыли галочку «не согласен» в тексте нового соглашения. Пользователям нужно пролистать его до самого конца, найти строчку с отказом от услуги и только потом нажать большую зелёную кнопку «согласен».

«Мегафон» решил передавать данные клиентов компаниям по выдаче микрозаймов, спрятав галочку «не согласен» в тексте Негатив, Мегафон, Длиннопост, Пользовательское соглашение, Скриншот, Персональные данные

«Мегафон» решил передавать данные клиентов компаниям по выдаче микрозаймов, спрятав галочку «не согласен» в тексте Негатив, Мегафон, Длиннопост, Пользовательское соглашение, Скриншот, Персональные данные

Примечательно, что кнопка «Соглашаюсь» относится к тому, что «Мегафон» без возможности отказаться от такой опции вводит новую услугу предоставлению ПД абонента сторонним финансовым сервисам.

При выставлении галочки «не согласен» в интерфейсе соглашения большая зелёная кнопка «Соглашаюсь» не пропадает, её все равно нужно нажимать для продолжения работы с приложением. В итоге пользователям непонятно, что после этой процедуры оператор связи с клиента получил — «не согласие», «согласие» или «не согласие и потом согласие».

Ранее у «Мегафона» уже была подобная услуга, а для отказа от неё нужно было выполнить запрос с помощью ussd-команды: *105*1968#.

Оригинал статьи прочёл на Хабре

Строгий контроль⁠ ⁠

Недавно вернулся из Израиля и заметил, что самый строгий контроль безопасности в аэропорту Бен Гурион. Проверяют очень тщательно и очень медленно. Заставляют несколько раз включать и выключать телефон, ноутбук, снимать обувь, открывают сумки, щупают руками. Но мне не повезло больше других. Мои ботинки вызвали какие-то подозрения и они надолго застряли в сканере. Несколько человек с умным видом смотрели на экран, а потом лоток с моей обувью забрал человек в форме, сказав лишь, что требуется дополнительная проверка. Больше свою обувь я так и не увидел. Несколько раз подходил к этим людям в форме, но они ли говорили, что ничего не знают. Пришлось ходить по аэропорту и лететь в Москву в носках.

Талантище⁠ ⁠

В детстве мама давала мне сдачу и я всегда клал её в копилку. Когда мама нашла эту копилку, спросила зачем? Я сказал, что хочу купить ей шубу, которую папа не хотел покупать. Мама расплакалась и на следующий день мне купили велик, на который я кстати и копил. Ведь талант пиздеть у меня был с раннего детства.

Откуда эти люди?⁠ ⁠

Ребят, а кто-нибудь понимает, что на тиндере происходит вообще?

Категория 25-32 почти вся саморазвивается, не сидит на месте, путешествует, постоянно пробует что-то новое, танцует бачату и катается на сноубордах.

Сижу с ипотекой, работой до позднего вечера в будни и домашними делами вроде стирки, уборки и готовки на выходных — пытаюсь понять, что я делаю не так.

Филиал профи ру какой-то.

Пакет⁠ ⁠

Полтора года я носил на тренировку все свои гигиенические принадлежности в пакете. Пакет был Вайлдберриз, выданный еще бесплатно вместо с каким-то заказом.
Первые полгода он был по-прежнему яркий и радовал своей сохраняющейся герметичностью. Он был такой один на всю душевую тренировочного зала. Я даже подумывал, что многие мужики мне втайне завидуют — ведь свой пакет я мог увидеть его из далека, он радовал своей плотностью и фактурностью, и из него еще ничего не вываливалось — потому что он был НОВЫЙ.
Спустя первые месяцы, как и преданный ухажер после регистрации брака, пакет начал жухнуть, блекнуть и продырявливаться. Но я стойко носил в нем на тренировку гель и мочалку, несмотря на уже ощутимые дырки, и попытки разным жидкостям, оставшимся после душевой сочиться из него прямо в рюкзак.

Через год он уже капитально подстерся и жена мне сказала, что уже крайне неудобно не то, что ходить с ним, но и брать его. Даже ей и даже ногами.
Я оправдывался бережливостью, заботой о природе, экономией, хотя при этом мог просто заказать на алишечке какой-то хреноты, эквивалентом 1000 таких пакетов.

Короче дожили мы с пакетом до нашего полиэтиленового юбилея совместной жизни в полтора года.
Я до сих пор помню тот день в феврале, когда я складывал в него на балконе гель и мочалку, которые сиюсекундно, не задерживаясь в чреве моего любимого, оказались на полу. Увы. Цветом он уже был похож на бордово-белое месиво из красок и букв. Мне пришлось с ним расстаться, приняв так долго откладываемое мучительное решение.

Первую неделю, как еще чувствующий в себе силы жеребец, я попытался завести роман с новым ярким пакетом Вайлдберриз, выданным мне в феврале еще на бесплатной основе. Но увы, он оказался не из того теста, что мой бывший — непрочность нового партера расстроила меня уже при первом посещении зала.
Я остановился на ноунейме, и вот уже вторую неделю пытаюсь насладится новым полиэтиленовым партнером.

НО вчера я увидел нечто, что повергло меня в шок.
Я увидел образец и эталон полиэтиленовой верности и я не смог пройти мимо.

Как написать торгового робота: инструменты для начинающих

Тема автоматизированных систем для торговли на бирже довольно популярна в рунете в последние несколько лет. Однако начинающим инвесторам создать своего торгового робота может быть нелегко. Сегодня мы расскажем о том, как это можно сделать без лишних затрат.

Примечание: любая инвестиционная деятельность на бирже связана с определенным риском, это нужно учитывать. Кроме того, для запуска своего торгового робота вам понадобится брокерский счет, открыть его можно онлайн. Вы можете отладить свою стратегию с помощью тестового доступа с виртуальными деньгами.

Варианты создания роботов

Существует несколько вариантов создания роботизированного софта для торговли на бирже:

  • Создание роботов для работы на прямом подключении – такие системы работают «в обход» торговой системы брокера, отправляя заявки напрямую в «движок» торговой системы биржи. Этот вариант используют уже опытные трейдеры, которые готовы платить в том числе и за такой способ подключения.
  • Подключение к брокерской торговой системе по API. Некоторые брокеры позволяют подключать внешний торговый софт к своим торговым системам по специальным интерфейсам. Клиенты ITI Capital могут делать это с помощью API SMARTcom. В этом случае роботы могут быть достаточно сложными.
  • Автоматизация операций напрямую в торговом терминале. Наиболее простой, подходящий для новичков способ, заключается в том, чтобы автоматизировать торговлю напрямую в базовой программе любого трейдера – терминале.

Как это работало раньше

Торговые терминалы предыдущих поколений можно было интегрировать с различными инструментами автоматизации. Одним из наиболее популярных, как ни странно, в свое время был Excel. С его помощью трейдеры могли настроить экспорт данных из торгового терминала, а также получать торговые приказы.

Меню для подключения Excel в одном из торговых терминалов прошлого поколения

Также распространенной практикой среди трейдеров было подключение к своим терминалам мощных систем технического анализа и разработки роботов вроде WealthLab и MetaStock. В таких случаях интеграция обычно осуществляется с помощью дополнительных библиотек.

В перечисленных случаях трейдер получал возможность автоматизации, и, в случае MetaStock и WealthLab, создания довольно сложных торговых систем, но связки с внешними программами часто оказывались ненадежными. С течением времени эта проблема была решена – в некоторых торговых терминалах появились встроенные языки программирования.

Как это работает теперь: изучаем язык TradeScript

В наши дни на российском рынке самый простой способ создать несложного торгового робота, работающего с системой брокера, это использование терминала SMARTx.

В нем есть специальный плагин с конструктором торговых роботов TradeScript. С помощью простого, но довольно мощного скриптового языка трейдеры могут создавать механические системы различного уровня сложности. Язык был изначально создан для разработки торговых роботов, он довольно прост в изучении, а многие алгоритмы схожи по написанию с Metastock, что облегчает работу пользователям, знакомым с этим программным пакетом.

Плюсом TradeScript по сравнению с Wealth-Lab и тем же Metastock является отсутствие необходимости создания сложных конструкций и использования различных коннекторов для передачи приказов в торговый терминал. Конструктор роботов встроен в SMARTx, что позволяет добиваться значительно более высокой надежности и быстродействия.

Вот пример торговой стратегии, записанной на TradeScript:

В пакете с TradeScript поставляет и модуль бэктестинга, который позволяет оценить продуктивность работы описанной стратегии на исторических данных. Помимо прочего, в системе реализована функция тестирования торговой системы «на лету» с использованием текущих биржевых данных, но без вывода приказа на биржу — время виртуальной сделки, цена и получившаяся «доходность» будут показываться в отдельном окне.

Кроме того пользователь может запускать столько одновременно работающих алгоритмов, сколько позволит тактовая частота процессора и память компьютера. Учитывая большое число слов и операндов скриптового языка, это означает возможность создания сколько угодно сложных торговых стратегий.

Что еще: отладка на тестовом доступе

Использование встроенной в торговый терминал функциональности по разработке торговых роботов – удобный и надежный способ автоматизации торговли. Однако несмотря на существующие функции для тестирования стратегий, не стоит пренебрегать и дополнительными возможностями отладки.

Поэтому мы рекомендуем перед запуском стратегии для торговли реальными деньгами «прогнать» ее на тестовом доступе. Этот шаг позволит отладить все моменты, включая реакцию программы на осуществленные сделки, без риска реальных финансовых потерь. Применение анализа с помощью исторических данных, проверки «на лету» и использование тестового доступа позволит максимально полно отладить вашу стратегию.

Создаем советник в R StocksTrader с нуля. Практическое руководство

Создаем советник в R Trader с нуля. Практическое руководство

Для того, чтобы торговать на валютном или фондовом рынке, необходимо иметь набор правил, которые требуется соблюдать. Только в этом случае можно добиться успеха. Даже долгосрочное инвестирование подразумевает под собой определенные правила, согласно которым выбирается актив для покупки, и рассчитывается срок инвестирования в этот актив.

Торговые системы

Данные правила можно назвать торговой системой. Торговые системы могут быть основаны на техническом или фундаментальном анализе.

Технический анализ подразумевает под собой анализ графика интересуемого финансового инструмента. Анализ этот производится с помощью разного рода индикаторов или общеизвестными ценовыми паттернами.

Фундаментальный анализ подразумевает под собой анализ новостных лент, инсайдерской информации, статистических данных, на основании которых можно сложить представление о текущей динамике и сделать прогноз возможного движения цены.

Торговые роботы

Если трейдер определился, какой вид анализа ему ближе, он начинает торговать. Со временем он достигает совершенства в торговле и для него это становиться обычной рутинной работой. В этой ситуации перед трейдером встает вопрос о том, как автоматизировать свою торговую стратегию.

Фундаментальный анализ автоматизировать достаточно сложно. Необходимо обладать навыками программирования, создавать роботов, которые умеют «читать и анализировать» новости. А еще лучше, если есть опыт работы с искусственным интеллектом. Поэтому круг таких трейдеров достаточно ограничен, при этом эффективность подобных систем ничем не лучше тех, которые основаны на техническом анализе.

Торговую систему, основанную на техническом анализе, гораздо проще перевести в автоматический режим. Если она состоит из индикаторов, то в этом случае достаточно знать язык программирования платформы, на которой работает трейдер.

Например, на рынке Форекс большой популярностью пользуется платформа MetaTrader 4. Для того, чтобы написать торгового робота для этой платформы, необходимо знать язык программирования MQL4. То есть и в этом случае также потребуется изучение языков программирования.

Где создать робота без знаний в области программирования?

Рынки развиваются, а вместе с ними появляются и новые возможности по автоматизации торговых систем.

Отличным вариантом для создания роботов без знаний программирования является мультирыночная платформа R StocksTrader. В неё встроен понятный и простой конструктор стратегий. Данный конструктор позволяет автоматизировать торговую систему, не обладая навыками программирования. Все, что от вас требуется, это небольшой опыт торговли, для того, чтобы понимать, что такое цена открытия/закрытия и максимальная/минимальная цена интересуемой «свечи» на графике.

Описание торговой системы

Чтобы снять все вопросы по написанию торгового робота в платформе R StocksTrader, я покажу вам как это делается на основании очень простой торговой системы, состоящей из двух индикаторов.

Первое, и самое важное, что вам понадобится на начальном этапе — это торговая система. В ней должно быть четкое описание правил открытия позиции на покупку и продажу. Чтобы не ошибиться, желательно нанести все используемые индикаторы на график.

В нашем случае открытие позиции на Buy будет выглядеть следующим образом.

    (EMA) – 200, Close, 0 — меньше, чем цена закрытия текущей свечи.
  1. Нижняя линия индикатора Bollinger Bands Low (20, Close, 2, 0) больше, чем минимальная цена текущей свечи.

Если выполнились эти два условия, тогда открыть позицию Buy.

Мультирыночная платформа R StocksTrader

Теперь описываем условия закрытия позиции Buy.

  1. Верхняя линия индикатора Bollinger Bands High (20, Close, 2, 0) меньше, чем максимальная цена текущей свечи.
  2. Moving Average (EMA) – 200, Close, 0 больше, чем цена закрытия текущей свечи.

Создание торгового робота

Сейчас я показал вам как описать точку входа на Buy. Теперь все это необходимо перенести в платформу R StocksTrader.

Заходим в платформу и выбираем вкладку Strategies – My Strategies, после чего нажимаем «создать новую стратегию» (Add new strategy).

Мультирыночная платформа R StocksTrader

На следующем шаге вам необходимо будет придумать имя вашей стратегии и дать её краткое описание.

После того, как все эти этапы пройдены, вы попадаете уже в сам конструктор, где необходимо задать условия торговой системы.

Для начала вам предлагается задать условие для открытия позиции на Buy. Так как мы их описали выше, то нам теперь достаточно лишь выбрать соответствующие параметрам индикаторов и указать условия.

Мультирыночная платформа R StocksTrader

Теперь необходимо задать условие закрытия позиции, которые были описаны выше.

Мультирыночная платформа R StocksTrader

Дополнительно можно указать значение Стоп Лосс / Stop Loss (close at SL) и значение Тейк Профит / Take Profit (close at TP). В этом случае позиция будет закрыта по условию, которое выполнится первым.

Итак, мы сформировали условия для открытия и закрытия позиции на Buy. Теперь можно проверить, покажет ли положительный результат такая торговая система.

Для этого необходимо выбрать инструмент, на котором будет проводиться тестирование, затем выбрать временной период, объём открываемой позиции (Order volume) и после этого нажать кнопку «Backtest».

Мультирыночная платформа R StocksTrader

Тестирование торговой стратегии

Тестирование производится на исторических данных, период тестирования определяется платформой и зависит от количества доступных для тестирования котировок. К сожалению загрузить котировки для более длительного периода тестирования здесь не получиться.

Если мы все сделали правильно, появятся результаты тестирования.

В данном случае текущая стратегия показывает положительный результат с суммой прибыли в 1304 USD. Отрицательный результат, означает, что систему придется дорабатывать.

В этом тестере не указывается стартовый депозит. Рост прибыли начинается с нулевой отметки, а значит все, что ниже нулевой отметки, можно засчитывать за «просадку» депозита. По этой стратегии в самом начале была замечена «просадка» около 400 USD. В последующем убытки по торговой стратегии приходились на заработанные деньги.

Мультирыночная платформа R StocksTrader

Но это еще не все, текущий результат можно улучшить, добавив еще несколько стандартных условий. Возвращаемся в раздел редактирования стратегии (нажимаем Editor) и в значении «Max open deals» ставим цифру 2.

Мультирыночная платформа R StocksTrader

Это значит, что мы разрешаем торговому роботу открывать вторую позицию, даже если первая еще не закрылась.

«Max open deals» разрешает открывать новые позиции, когда предыдущие еще не закрылись. Хочу предупредить, что в данной стратегии этот параметр работает некорректно. Проверка условий происходит на каждом тике, в итоге за одну минуту может открыться очень большое количество позиций в одном направлении.

Чтобы избежать подобной ситуации, но все же иметь возможность открыть позицию в том же направлении по лучшей цене, можно задействовать функцию «Enter every 0 ticks above last entry». Данная функция позволяет открывать новую позицию через определенное количество пунктов ниже/выше предыдущего ордера. Для этого, вместо значения ноль, прописываем нужное нам количество пунктов.

Мультирыночная платформа R StocksTrader

Дополнительно в значении «Multiplicator» прописываем цифру 2, то есть указываем роботу, что необходимо открывать вторую позицию с объёмом в два раза больше, чем в первой позиции.

Multiplicator умножает объём предыдущего открытого ордера на значение, которое в нем указано. Нажимаем «Backtest» и получаем новый результат.

Мультирыночная платформа R StocksTrader

Запуск торгового робота

Если результат нас устраивает, тогда остаётся только запустить стратегию в работу.

Для этого необходимо нажать кнопку «Enable», после чего появится окно, в котором необходимо указать объём открываемой позиции и, по желанию, можно указать значение Take Profit и Stop Loss в USD. Если эти графы оставить пустыми, тогда позиции будут закрываться по условиям, описанным в торговой стратегии.

Выбор инструмента происходит автоматически. В данном случае используется тот инструмент, график которого сейчас открыт на экране, а именно US500. Дополнительно, после запуска стратегии во вкладке Running Strategies нам будет доступна информация и название стратегии, когда она была запущена, на каком инструменте, период графика и полученная прибыль.

Мультирыночная платформа R StocksTrader

Таким же образом можно запустить эту стратегию на всех инструментах, на которых она показывает положительный результат. Но в этом случае вам необходимо будет рассчитать объём для каждого инструмента, чтобы не превысить допустимые риски на депозите, так как одновременное закрытие позиций с убытком по всем инструментам, может привести к значительной потере средств.

Для удаления стратегии достаточно нажать на крестик в конце строки.

В платформе R StocksTrader, в отличие от терминала MetaTrader 4 и MetaTrader 5, нет надобности постоянно держать включенным компьютер, чтобы робот имел возможность торговать. Услуги VPS сервера здесь так же не требуются. Достаточно запустить Торгового робота на платформе, после чего он автоматически запускается на сервере и начинает работать.

В процессе торговли у вас есть возможность закрывать позиции вручную, вносить изменения в ордер и в саму стратегию. Вы можете приостанавливать работу Советника, или же просто удалить его, если результаты начали ухудшаться.

Дополнительным преимуществом торговых роботов на платформе R StocksTrader является наличие очень большого количества инструментов. В этой платформе доступны акции, торгуемые на американских и европейских биржах, валютные пары, а также криптовалюты. Таким образом одного робота можно опробовать на нескольких рынках, в противном случае пришлось бы под каждую платформу создавать робота и изучать языки программирования, что занимает очень много времени.

Вывод

Теперь вы понимаете, что написать своего торгового робота может каждый. В платформе имеются стандартные стратегии, которые можно использовать в трейдинге. У всех этих стратегий открыты условия, по которым они работают. В данной ситуации, при необходимости, их можно доработать согласно своим идеям и найти инструменты, на которых они будут работать более эффективно.

От вас требуется только, огромное желание развиваться в трейдинге, и использовать все возможности, по извлечению прибыли от торговли на финансовых рынках. Одна из этих возможностей была описана в текущей статье.

Евгений Савицкий

Работает на валютном рынке с 2004 года. С 2012 года участвует в торговле акциями на американской бирже и публикует аналитические статьи по фондовому рынку. Принимает активное участие в подготовке и проведении обучающих вебинаров RoboForex.

Похожие статьи