Мне всегда было интересно, как работают криптовалютные боты, и однажды я решил попробовать шот на близком мне скриптовом языке; питон. Конечно, у меня также был некоторый опыт торговли с фьючерсами binance, где я искал быстрые деньги, с коротким периодом владения и где торговля основывалась на коротких и длинных сделках. Таким образом, это означает, что вы также можете зарабатывать деньги в случае, когда цена монеты падает, а не только в случае, когда цена растет. Цель состояла в том, чтобы автоматизировать торговлю, создав бота, который будет действовать и думать как я, и совершать покупку и продажу в той же точке, что и я. И да, это означает покупать/продавать около сотни раз в день.

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

Итак, как я начал. Во-первых, я нашел и установил эту замечательную библиотеку фьючерсов binance для Python. Затем я создал бесплатную учетную запись тестовой среды бинанс-фьючерсов, где вы получаете 10 тысяч долларов виртуальных денег для тестирования вашего проекта, чтобы вы могли играть с ним сколько угодно. Когда вы создаете учетную запись, вы также получаете ключ API и секретный ключ, которые вам нужны для торговли и управления вашей учетной записью.

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

Примечание. Чтобы использовать приведенные ниже примеры, необходимо заменить api_key=g_api_key, secret_key=g_secret_key реальным.

  1. Получить цену маркировки

и вы получите что-то вроде этого…

{“символ”:”ETHUSDT”,”markPrice”:”2947.85609568”,indexPrice”:”2947.72350562”,estimatedSettlePrice”:”2956.95096393”,lastFundingRate”:”0.00010000”,interestRate”:”0.00010000”,nextF undingTime”:1650844800000, ”time”:1650831270000}
======= Mark Price =======
json_parse:‹function MarkPrice.json_parse at 0x7680d618›
lastFundingRate:0.0001
markPrice:2947.85609568
nextFundingTime:1650844800000
symbol:ETHUSDT
time:1650831270000
===================== =====

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

2. Баланс аккаунта

Вот пример того, как вы получаете баланс счета. И снова вывод в json. Вам решать, как и какую часть этого вывода вы будете использовать.

3. UnPnL – нереализованная прибыль и убыток

Одно из самых важных значений в моем боте — это UnPnL. Это значение обозначает нереализованную прибыль и убыток. Я получаю это значение из вывода баланса счета, опять же, моим уродливым путем :).

3. Как купить/продать

Вот пример как купить монету. В этом примере я купил 0,5 ETH по цене 3000 USDT. Но в реальной жизни (бот) я использую переменные вместо этих значений (количество, цена).

На данный момент я не устанавливал стоп-цену/цену продажи. Вы можете создать этот заказ после покупки следующим образом.

result_sell = request_client.post_order(symbol="ETHUSDT", side="SELL", ordertype="STOP_MARKET", stopPrice=3010, closePosition=True, positionSide="BOTH")

В этом примере я установил стоимость продажи на уровне 3010 долларов США. И, конечно же, в реальной жизни я вместо этого устанавливаю переменную.

Вы также можете изменить цену продажи, отменив ордера и установив новое значение stopPrice.

result_cancle = request_client.cancel_all_orders(symbol="ETHUSDT")
result_sell2 = request_client.post_order(symbol="ETHUSDT", side="SELL", ordertype="STOP_MARKET", stopPrice=3020, closePosition=True, positionSide="BOTH")

4. Как открыть короткую позицию

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

Вот пример того, как шортить/продать монету. В этом примере я продаю 0,5 ETH по цене 3000 USDT.

А также вот в этот момент я не устанавливал стоп-цену/цену покупки. Вы можете создать этот ордер после продажи следующим образом.

result_buy = request_client.post_order(symbol="ETHUSDT", side="BUY", ordertype="STOP_MARKET", stopPrice=2900, closePosition=True, positionSide="BOTH")

Вы также можете изменить цену покупки, отменив ордера и установив новое значение для stopPrice.

result_cancle = request_client.cancel_all_orders(symbol="ETHUSDT")
result_buy2 = request_client.post_order(symbol="ETHUSDT", side="BUY", ordertype="STOP_MARKET", stopPrice=2800, closePosition=True, positionSide="BOTH")

Заключение

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