Вам влом просто вежливо ответить на корректно заданный вопрос.
Но зато не влом прийти и написать много букав на тостере про "100500 дистров со своими приколами"
а ваш бинанс_ф откуда?
кстати я легко переделал для маргина-добавил пару строк
если вам нужна только статистика, то крайне рекомендую использовать вебсокеты. при запуске шустрого клиента получал бан изза превышения к-ва запросов
# print(colored.red,('USDT_BORR====',USDT_BOR))
print('USDT_FREE===',USDT_FREE)
## print('USDT_netAsset',USDT_NET)
# print('USDT_LOCK=',USDT_LOCK)
"""
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
продажа с трейлом
"""
Подробная информация о боте на сайте bablofil.ru/bot-dlya-binance
"""
import sqlite3
import logging
import time
import os
import math
settings = dict(
symbol='LTCUSDT', # Пара для отслеживания
strategy="Long", # Стратегия - Long (повышение), Short (понижение)
stop_loss_perc = 0.1, # % оставания от цены
stop_loss_fixed = 0, # Изначальный stop-loss, можно установить руками нужную сумму, потом бот подтянет.
# Можно указать 0, тогда бот высчитает, возьмет текущую цену и применит к ней процент
amount = 0.26, # Кол-во монет, которое планируем продать (в случае Long) или купить (в случае Short)
# Если указываем Long, то альты для продажи (Например, продать 0.1 ETH в паре ETHBTC)
#amount = 11 # Если Short, то кол-во, на которое покупать, например купить на 0.1 BTC по паре ETHBTC
startrate = 0 # Нефиг продавать себе в убыток
)
multiplier = -1 if settings['strategy'] == "Long" else 1
mstart = 1 if settings['strategy'] == "Long" else -1 # startrate множитель
print("Получаем настройки пар с биржи")
symbols = bot.exchangeInfo()['symbols']
step_sizes = {symbol['symbol']:symbol for symbol in symbols}
for symbol in symbols:
for f in symbol['filters']:
if f['filterType'] == 'LOT_SIZE':
step_sizes[symbol['symbol']] = float(f['stepSize'])
while True:
try:
print('Проверяю пару {pair}, стратегия {strategy}'.format(pair=settings['symbol'], strategy=settings['strategy']))
# Получаем текущие курсы по паре
current_rates = bot.depth(symbol=settings['symbol'], limit=5)
# Если играем на повышение, то ориентируемся на цены, по которым продают, иначе на цены, по которым покупают
curr_rate = bid if settings['strategy'] == "Long" else ask
# Считаем, каким был бы stop-loss, если применить к нему %
curr_rate_applied = (curr_rate/100) * (settings['stop_loss_perc']*multiplier+100)
if settings['strategy'] == "Long":
# Выбрана стратегия Long, пытаемся продать монеты как можно выгоднее
if curr_rate > settings['stop_loss_fixed']:
print("Текущая цена выше цены Stop-Loss")
if curr_rate_applied > settings['startrate']:
if curr_rate_applied > settings['stop_loss_fixed']:
print("Пора изменять stop-loss, новое значение {sl:0.8f}".format(sl=curr_rate_applied))
settings['stop_loss_fixed'] = curr_rate_applied
else:
# Текущая цена ниже или равна stop loss, продажа по рынку
res = bot.createOrder(
symbol=settings['symbol'], # symbol=orders_info[order]['order_pair'],
recvWindow=15000,
side='SELL',
type='MARKET',
quantity=settings['amount']
)
print('Результат создания ордера', res)
if 'orderId' in res:
# Создание ордера прошло успешно, выход
break
else:
# Выбрана стратегия Short, пытаемся купить монеты как можно выгоднее
if curr_rate < settings['stop_loss_fixed']:
print("Текущая цена ниже stop-loss")
if curr_rate_applied < settings['stop_loss_fixed']:
print("Пора изменять stop-loss, новое значение {sl:0.8f}".format(sl=curr_rate_applied))
settings['stop_loss_fixed'] = curr_rate_applied
else:
# Цена поднялась выше Stop-Loss, Покупка по рынку
quantity = math.floor((settings['amount']/curr_rate)*(1/step_sizes[settings['symbol']]))/(1/step_sizes[settings['symbol']])
print("Цена поднялась выше Stop-Loss, Покупка по рынку, кол-во монет {quantity:0.8f}".format(quantity=quantity))
# math.Floor(coins*(1/stepSize)) / (1 / stepSize)
res = bot.createOrder(
symbol=settings['symbol'],
recvWindow=15000,
side='BUY',
type='MARKET',
quantity=quantity
)
print('Результат создания ордера', res)
if 'orderId' in res:
# Создание ордера прошло успешно, выход
break
except Exception as e:
print(e)
time.sleep(1)
#print(bot.myTrades(symbol='PPTETH'))
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
Но зато не влом прийти и написать много букав на тостере про "100500 дистров со своими приколами"