Binance api bot python

Open source бот для торгов на Binance. Часть 1

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

Для создания бота для api binance, который работает по стратегии усреднения, нам понадобится использовать следующие компоненты:

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

2. Python — это язык программирования, которым владеет большинство молочных (и я в том числе) фрилансеров мы его будем использовать для написания скрипта, который будет работать с Binance API.

3. Библиотеки Python — мы будем юзать библиотеки для Python, такие как ccxt, для работы с Binance API.

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

Читайте также:  Получить координаты opencv python

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

Вот примерный план действий для создания бота:

1. Создаем аккаунт на binance.com и получи API ключ и секретный ключ. Есть конечно риски что для РФ бинанс может закрыть доступ, так что если есть второе гражданство то в путь, у меня его нет.

2. Установим библиотеку ccxt для работы с Binance API.

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

4. Напишем алгоритм усреднения, который будет определять цену покупки и продажи, а также объем монет для докупки.

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

6. Проверка или тесты — обязательно нужно протестировать все что мы сварили с Вами для того что бы не обанкротится.

Давайте начнем с импорта необходимых библиотек:

Затем создаем экземпляр класса Binance с помощью библиотеки ccxt и устанавливаем ключи API:

Теперь мы можем запрашивать данные о балансах, ордерах и сделках с помощью методов ccxt:

balance = exchange.fetch_balance() open_orders = exchange.fetch_open_orders() closed_orders = exchange.fetch_closed_orders()

Для реализации стратегии усреднения нам нужен алгоритм, который будет определять цену покупки и продажи, а также объем монет для докупки. Вот пример такого алгоритма:

def calculate_order(exchange, symbol, buy_price, profit_percent, amount): ticker = exchange.fetch_ticker(symbol) current_price = ticker['last'] if current_price >= buy_price * (1 + profit_percent / 100): return None else: new_buy_price = (buy_price * amount + current_price * amount * 2) / (amount * 3) new_amount = amount * 2 return

Этот алгоритм проверяет текущую цену и определяет, нужно ли докупать монеты или нет. Если текущая цена выше, чем цена покупки умноженная на (1 + процент прибыли), то мы не делаем никаких действий. В противном случае мы вычисляем новую цену покупки и новый объем монет для докупки. Возвращаемый результат — это словарь с данными для размещения ордера на покупку.

Теперь мы можем использовать этот алгоритм, чтобы разместить ордер на покупку:

symbol = 'BTC/USDT' # выбираем торговую пару buy_price = 55000 # устанавливаем начальную цену покупки profit_percent = 1 # задаем процент прибыли amount = 0.01 # устанавливаем объем монет для покупки order = calculate_order(exchange, symbol, buy_price, profit_percent, amount) if order: exchange.create_order(**order) 

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

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

while True: order = calculate_order(exchange, symbol, buy_price, profit_percent, amount) if order: exchange.create_order(**order) time.sleep(60) # ждем 60 секунд перед следующей проверкой цены

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

Вот и весь код для реализации стратегии усреднения с помощью python и Binance API. Он является базовым и может быть доработан в соответствии с вашими требованиями и настройками.

Для управления ботом и установки лимитов усреднений можно использовать конфигурационный файл в формате JSON. Например, такой:

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

Теперь мы можем изменять параметры бота, редактируя этот файл.

Напишем функцию для отправки уведомлений в телеграм

```python import requests def send_telegram_message(token, chat_id, message): url = f"https://api.telegram.org/bot/sendMessage" data = response = requests.post(url, data=data) return response.json() ```

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

Теперь нам нужно изменить функцию `calculate_order`, чтобы она учитывала максимальное количество усреднений:

```python def calculate_order(exchange, symbol, buy_price, profit_percent, amount, max_average_count): ticker = exchange.fetch_ticker(symbol) current_price = ticker['last'] if current_price >= buy_price * (1 + profit_percent / 100): return None else: orders = exchange.fetch_open_orders(symbol) average_price = 0 total_amount = 0 for order in orders: if order['side'] == 'buy': average_price += order['price'] * order['amount'] total_amount += order['amount'] if total_amount >= amount * max_average_count: return None new_buy_price = (buy_price * total_amount + current_price * amount) / (total_amount + amount) new_amount = amount return ```

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

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

```python import json with open('config.json', 'r') as f: config = json.load(f) symbol = config['symbol'] buy_price = config['buy_price'] profit_percent = config['profit_percent'] amount = config['amount'] max_average_count = config['max_average_count'] telegram_token = config['telegram_token'] telegram_chat_id = config['telegram_chat_id'] while True: order = calculate_order(exchange, symbol, buy_price, profit_percent, amount, max_average_count) if order: exchange.create_order(**order) message = f"New order created:\nSymbol: \nPrice: \nAmount: " send_telegram_message(telegram_token, telegram_chat_id, message) time.sleep(60) ```

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

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

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

попробую написать полноценный скрипт и выложить в открытый доступ на GitHub*е и продолжу его развивать. Подписывайтесь. СПАСИБО!

Источник

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

Python bot for trading on the Binance cryptocurrency exchange

License

Reidmcc/Binance-bot

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

Python bot for trading on the Binance cryptocurrency exchange.

There are two strategies, cross-pair arbitrage and breakout trend trading.

The point is to turn altcoins into more altcoins. In optimal conditions it can cycle multiple times a minute. It only works in a very specific context:

  • You have to be in a low-fee environment. Any fee above 0.1% kills it, it works on a 0.5% margin trigger over three trades.
  • The altcoin you’re going for has to trade against two base coins that also trade against each other.

So if you’re doing XLM on Binance examples are:

rockfish icon long flip

WARNING: This strategy is super risky. It works best when all three pairs are trading sideways or trending gently. The bot knows nothing about market status other than current price ratios; rapid price swings can easily leave you mid-cycle holding a bag you don’t want. Like this strategy? Check out Rockfish, which implements a similar strategy for the Stellar Decentralized Exchange.

This strategy looks for X period high/low breakouts and bets with the break direction. It’s inspired by the turtle traders who did commodities in the 1980s (http://www.tradingblox.com/originalturtles/). They were trading on 10-day breakouts, which is far too slow for cryptocurrency exchanges, so the bot is set to X hours, not days. Problem is that according to my testing it barely breaks even (or goes negative) on all breakout ranges I’ve tested.

WARNING: As this strategy currently stands it does not profit. If you want to try it backtest it hard!

Both strategies need these files:

(Standard disclaimer saying this isn’t investment advice and bots can lose your money real fast. No warranties, etc. etc.)

Install instructions as requested in an issue:

There is no fancy install; you set up a local Python virtual environment as you would any other, drop the .py files into the directory, revise the parameter sections that refer to certain coins and the rules for them, and run the desired executor file (run_mult_arbit.py or run_turtle.py). You need to create an API key on your Binance account and add the key and secret where indicated near the top of the files as [API key] and [API secret]. The log text files will generate into the directory.

For my developer environment I use PyCharm: https://www.jetbrains.com/pycharm/. There are many other IDEs, or you can do it on the command line as explained at https://packaging.python.org/guides/installing-using-pip-and-virtualenv/.

If you’re new to crypto trading I strongly recommend you acclimate with some manual trading; if you just run the bot without context knowledge you’ll have a bad time.

About

Python bot for trading on the Binance cryptocurrency exchange

Источник

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