Бот python для криптовалюты

Биржевой бот на Python — часть 1

Пишем простого бота для поиска арбитражных ситуаций

Jan 30, 2018 · 3 min read

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

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

Терминология

Попробую описать необходимые для нас термины.

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

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

О р дер может быть описан следующими параметрами: пара, стоймость, объем, тип операции. Например:

Из данной таблицы видно, что вы можете купить 0.5 ETH за 1 BTC.

Пара читается справа налево при совершении операции. Например:

Если вы откроете страницу торгов на бирже Poloniex, то увидите ордера на продажу — SELL ORDERS и ордера на покупку — BUY ORDERS, которые выставляют трейдеры. Данные таблицы называются биржевым стаканом и отображают информацию о том сколько и за какую цену хотят купить / продать валюту.

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

Арбитражная ситуация — это ситуация, при которой за счет разницы в оценке актива (в данном случае валюты) трейдер может получить прибыль.

Например на бирже Poloniex есть три пары валют: BTC, BCH, ETH. И представим, что в биржевом стакане были созданы следующие ордера:

Данная таблица демонстрирует арбитражную ситуацию внутри биржы. Если вы выполните ордера, выставленные трейдерами (совершите с ними сделку) :

то останетесь в прибыли на 0.6 BTC, так как изначально имели 1 BTC.

На Poloniex доступна документация API. В рамках нашей задачи нас интересует раздел Public API Methods, метод returnOrderBook .

Order Book — является описанным выше биржевым стаканом, который возвращается в JSON формате, а не на web-интерфейс.

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

  • asks — ордера на продажу;
  • bids — ордера на покупку;

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

Замечание: существует пара BTC_ETH , но обратной ETH_BTC нет. Поэтому если вы хотите выполнить покупку ETH_BTC , вам необходимо сделать продажу в BTC_ETH .

Задача

В итоге нам необходимо решить следующие задачи:

  • Выполнить парсинг API криптовалютной биржи Poloniex, а именно метода returnOrderBook и реализация алгоритма поиска арбитражных ситуации;
  • Реализовать архитектуру, при которой один поток парсит API и создает отдельные потоки, которые ищут арбитражные ситуации для разных валют;
  • Решить проблему с отсутствием обратной пары. Например: существует пара BTC_ETH, но обратной ETH_BTC нет;
  • Выводить результат поиска в консоль или в Telegram Bot.

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

Источник

100 строк Python-кода: Автоматизируем биржевую торговлю

Если вы знакомы с финансовым рынком и владеете Python, вы можете легко автоматизировать финансовую торговлю.

Алгоритмическая торговля

Алгоритмическая торговля (алготрейдинг, algorithmic trading ) – это автоматизированная с помощью компьютерных средств торговля финансовыми инструментами на основе определенного алгоритма или правила с незначительным участием или без участия человека. Торговать в автоматическом режиме можно почти любыми финансовыми инструментами: акциями, валютами, сырьем, кредитными продуктами или волатильностью. В некоторых сегментах рынка львиная доля сделок совершается именно алгоритмами. Книги «Кванты» («The Quants») Скотта Паттерсона (Scott Patterson) и «More Money Than God» Себастиана Маллаби (Sebastian Mallaby) дают хорошее представление об алгоритмической торговле и личностях, стоявших у ее истоков.

Читайте также:  Расчет дохода майнинга эфира

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

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

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

• Торговые онлайн-платформы. В настоящее время существует множество онлайн-платформ, которые предоставляют простой стандартизированный доступ к историческим данным (посредством RESTful API), данным реального времени (посредством socket API), а также обеспечивают широкий спектр средств для торговли и работы с портфелями (посредством программного API).

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

Рассмотрим основные составляющие проекта:

• Стратегия. Мы выбрали моментум-стратегию (momentum strategy), представленную в публикации Moskowitz e t al . « Time Series Momentum », 2012. В рамках данной стратегии мы предполагаем, что финансовый инструмент, демонстрировавший в прошлом определенную (позитивную или негативную) тенденцию, в дальнейшем будет следовать этой же тенденции.

• Платформа. Мы остановили свой выбор на платформе Oanda. Данная платформа позволяет торговать различные контракты на разницу цен (contract for difference, CFD), что, по сути, позволяет оперировать широким спектром финансовых инструментов, таких как валюты, фондовые индексы, сырье и др.

• Данные. Все исторические данные и данные реального времени для нас обеспечит платформа Oanda.

• Программное обеспечение. Мы будем использовать Python, мощную аналитическую библиотеку Pandas, а также несколько дополнительных библиотек.

В дальнейшем мы предполагаем, что у вас установлен Python 3.5 и основные библиотеки, такие как NumPy и Pandas. Если у вас еще нет этих средств, вы можете установить все необходимое, используя, например, дистрибутив Anaconda.

Аккаунт Oanda

На платформе Oanda (http://oanda.com) любой желающий может бесплатно зарегистрировать демо аккаунт, обеспечивающий доступ к имитации торгового процесса. После того, как аккаунт зарегистрирован, чтобы получить программный доступ к Oanda API, необходимо установить соответствующую Python -библиотеку:

Перед началом работы с библиотекой необходимо создать файл конфигурации oanda.cfg со следующим содержимым:

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

Выполнив следующий код, мы получаем основной объект для программного взаимодействия с платформой:

У нас уже есть все необходимое, чтобы начать тестирование моментум-стратегии. В частности, мы можем получить исторические данные, предоставляемые платформой. Мы будем использовать инструмент EUR_USD, основанный на обменном курсе EUR/USD.

Первым делом мы загружаем набор исторических данных и преобразуем его в DataFrame. Мы получаем дынные за два дня: 8 и 9 декабря 2016 года. Дискретность данных составляет 1 минуту. Выполним следующий код :

Читайте также:  Пассивные инвестиции индексные фонды

В результате получим подробную характеристику набора данных:

Далее мы формализуем моментум-стратегию, вычисляя для каждого момента времени среднее логарифма доходности (mean log return) за последние 15, 30, 60 и 120 минут. Например, среднее логарифма доходности за последние 15 минут – это среднее 15 последних значений логарифма доходности. Если эта величина положительна, мы играем на повышение (go/stay long), если отрицательна – на понижение (go/stay short). Чтобы не усложнять код, мы полагаемся лишь на значение столбца closeAsk.

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

Получим следующую диаграмму:

Проанализировав диаграмму, мы видим, что в течение рассматриваемого периода, сам инструмент имеет отрицательную доходность около -2%. Моментум-стратегия, основанная на 120-минутных интервалах, показывает наилучший результат, демонстрируя положительную доходность около 1.5% (без учета разницы между спросом и предложением (bid/ask spread)). По сути, данная стратегия показывает «реальную альфу»: она обеспечивает положительную доходность даже тогда, когда сам инструмент имеет отрицательную доходность.

Автоматическая торговля

Выбрав торговую стратегию, мы можем полностью автоматизировать торговые операции. Чтобы ускорить процесс, мы используем данные с дискретностью 5 секунд, вместо 1 минуты, как было при тестировании. Автоматизировать торговлю можно с помощью одного достаточно компактного класса:

Следующий фрагмент кода запускает класс MomentumTrader на выполнение. Расчет моментум-стратегии выполняется на основе интервалов по 12 наблюдений. Класс автоматически прекращает торговлю после получения 250 блоков данных. Это значение выбрано произвольно, чтобы быстро продемонстрировать работу класса MomentumTrader.

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

На рисунке ниже показано приложение Oanda fxTrade Practice, где мы видим класс MomentumTrader в действии.

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

Заключение

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

О популярности алгоритмической торговли свидетельствует появление различных типов торговых платформ. Например, создатели Quantopian – онлайн-платформы для тестирования стратегий алгоритмической торговли – сообщили в конце 2016 года о привлечении более 100000 пользователей. Торговые онлайн-платформы, подобные Oanda, а также специализирующиеся на криптовалюте, такие как Gemini, позволяют очень быстро начать торговлю на реальном рынке, присоединившись к тысячам трейдеров, живущих во всех точках земного шара.

Источник

Бот python для криптовалюты

Cryptocurrency / Bitcoin Trading Bots in Python

Algo / Automated Cryptocurrency Trading with Python-Based Open Source Software

Guides and Instructional YouTube Videos by @BlockchainEng Joaquin Roibal focusing on crypto trading strategies such as Triangular Arbitrage, Market Making, etc.

Hello and welcome to the code repository of @BlockchainEng Joaquin Roibal.

This Github Repository is used as a collection of python codes that you may find useful for making your own cryptocurrency trading bots or applying advanced trading strategies (Triangular Arbitrage, Market Making) to the cryptocurrency markets. Among other useful tools.

Читайте также:  Обменник для криптовалюты рекомендую всем

You may want to begin by watching my youtube video channel on introduction to crypto bot trading or advanced strategies such as triangular arbitrage, which will help you to understand the purpose and reasoning behind the code in this repo.

Getting Started with Crypto Trading Bot Software

The purpose of these bots is to implement an advanced strategy of cryptocurrency trading on a cryptocurrency exchange, such as Binance. You will need a computer, a binance account, and a copy of this code. You will be able to run this bot as a software to make profitable trades for you.

Blockchain Engineer Crypto Trading Bot Python Binance Code

TO SUPPORT THIS PROJECT SEND BTC: 1BYrAED4pi5DMKu2qZPv8pwe6rEeuxoCiD

This Portfolio contains Beginner & Advanced Cryptocurrency Trading Bots Written in Python. You are most likely interested in one of three main files/implementations of particular strategies:

Triangular Arbitrage — Crypto_Triangular_Arbitrage_Bot.py is the newest form of the crypto triangular arbitrage bots, and has all functionality to trade and output results via twitter. (Read More: https://medium.com/@BlockchainEng/triangular-arbitrage-with-cryptocurrency-on-binance-exchange-with-python-videos-and-code-real-bc63d0905d05 ) NOTE: This is the most up to date tri arb code available; Historic versions available in Historic-Legacy folder.

Beginner — RoibalBot_BinanceBot.py (converted from original — Roibal Bot) (Read More About Binance Trading Bot Here: )

Advanced — AdvancedCryptocurrencyTradingBot.py (converted from RoibalBot_BinanceBot.py) (Read More About Advanced Cryptocurrency Trading Bot Course Here: )

Online Cryptocurrency Trading Bot Resources

To help you to learn to implement this code as a profitable crypto trader, I have many online resources available. For example:

Historic — Legacy Folder

The Historic-Legacy Folder contains previous/out-dated copies of the bots that are located within this folder, you may be interested to develop from an earlier point, or edit before a certain modification to the code was made.

Installing and Running Crypto Trading Bot — Crypto Triangular Arbitrage, Basic Bitcoin Bot

STEP BY STEP TUTORIAL OF INSTALLATION AVAILABLE ON YOUTUBE HERE: https://www.youtube.com/watch?v=u7ZOQar5V7w

pip install ccxt

place desired bot (Roibal_BinanceBot.py, Private_TriArbBot.py) in python-binance/examples folder

then in your console, type python Roibal_BinanceBot.py or load in your favorite python IDE (such as Pycharm)

To run any of these bots, first download the Roibal fork of ‘Python-Binance’, install or unzip this code on your computer. Then place whatever bot from this folder (RoibalBot.py) in the Python-Binance/Examples folder and run/edit that file with whatever python IDE you would like. For the more advanced bots you will need to install CCXT (can be installed via pip or pycharm install).

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.

Visualization of Order Book and Scalping Functionality: https://youtu.be/zslp0FA_Nkw

See also the list of contributors who participated in this project.

This project is licensed under the MIT License — see the LICENSE.md file for details

  • For Readme Format: Billie Thompson — PurpleBooth
  • Python-Binance
  • CCTX

USE AT YOUR OWN RISK — NOT RESPONSIBLE FOR ANY FINANCIAL LOSSES YOU MAY INCUR

About

Crypto Trading Bots in Python — Triangular Arbitrage, Beginner & Advanced Cryptocurrency Trading Bots Written in Python

Источник

Оцените статью