Python_Scripts
8.22K subscribers
1.01K photos
5 videos
674 files
1.55K links
Скрипты 💾 на Python 🐍
- боты 🛠
- парсеры📁
- чекеры🔍
- автоматизация🔧
- многое другое💻

Ваши предложения📝 @cmd_dark @CMD_Vega
Download Telegram
TG-VK-bot-integration-master.zip
80.4 KB
📌 Скрипт бот ВК для оперативного реагирования на заявки клиентов

💻  ЯП:  Python 3.11+🐍
💾  Модули: aiogram, telebot, vk-api
📂  База данных: aiosqlite

📌 Скрипт автоматизирует процесс обработки сообщения от клиентов, перенеся часть задач в Telegram. Это позволяет администраторам быстрее реагировать на запросы, управлять диалогами и обеспечивать высокий уровень обслуживания.
Автоматическая отправка сообщений от клиентов в чат-бота VK.

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

📌 Вся информация приведена исключительно в ознакомительных целях❗️❗️❗️

#telegram #vk

📌
Подпишись  Python_Scripts❗️
🔥62
🔍 Google — В С Ё ?

В 2024 году невозможно найти что-то полезное, просто загуглив: выдача поиска забита мусором из ChatGPT, а все годные материалы не попадают в топы поиска.

Хорошо, что есть База Знаний — сеть каналов, в которой команда опытных айтишников постит лучшее из мира IT. Для вашего удобства всё отсортировано по категориям:

👩‍💻 Все языки: @main_it_baza

🖥 Python: @python_baza

👩‍💻 Frontend: @frontend_baza

👩‍💻 Backend: @backend_baza

🎨 Дизайн: @design_baza

📊 Архив: @archive_baza

🕔 Ссылки будут активны ещё 48 часов, успейте сохранить себе, чтобы не потерять
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🤩42😁2
📌Расчёт среднего истинного диапазона (ATR). ATR — это индикатор, который помогает измерять волатильность рынка. Он часто используется для установки уровней стоп-лоссов или определения трендов.
Используется публичное API Bybit👨‍💻
import requests
import pandas as pd

# Константы
BASE_URL = "https://api.bybit.com/v5/market/kline"
SYMBOL = "BTCUSDT" # Торговая пара
CATEGORY = "spot" # Тип рынка
INTERVAL = "60" # Интервал свечей (60 минут)
LIMIT = 14 # Количество свечей для ATR (по умолчанию 14 периодов)

def get_historical_data():
"""Получить исторические данные (Kline)"""
params = {
"category": CATEGORY,
"symbol": SYMBOL,
"interval": INTERVAL,
"limit": LIMIT + 1 # Нужно на 1 свечу больше для расчётов
}
response = requests.get(BASE_URL, params=params)
if response.status_code == 200:
return response.json()["result"]["list"]
else:
raise Exception(f"Ошибка API: {response.status_code}, {response.text}")

def calculate_atr(klines):
"""Вычислить ATR (средний истинный диапазон)"""
# Преобразуем данные в DataFrame
data = [
{"high": float(kline[2]), "low": float(kline[3]), "close": float(kline[4])}
for kline in klines
]
df = pd.DataFrame(data)

# Вычисляем истинный диапазон (TR)
df["previous_close"] = df["close"].shift(1)
df["tr"] = df[["high", "previous_close"]].max(axis=1) - df[["low", "previous_close"]].min(axis=1)

# Рассчитываем ATR как скользящее среднее истинного диапазона
df["atr"] = df["tr"].rolling(window=LIMIT).mean()

# Возвращаем последнее значение ATR
return df["atr"].iloc[-1]

def main():
try:
print(f"Вычисляем ATR для {SYMBOL} за последние {LIMIT} периодов...\n")

# Получаем исторические данные
klines = get_historical_data()

# Вычисляем ATR
atr = calculate_atr(klines)

# Выводим результат
print(f"Средний истинный диапазон (ATR) за {LIMIT} периодов: {atr:.2f}")
except Exception as e:
print(f"Ошибка: {e}")

if __name__ == "__main__":
main()

📌 Подпишись  Python_Scripts❗️
👍9🔥63
🚀 Полезные библиотеки Python

💾 FluPy

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

Ключевые возможности:

1. Чистый функциональный стиль:
Использование методов map, filter, reduce, и других, для работы с последовательностями данных.

2. Ленивая обработка данных:
Операции выполняются только по требованию, что экономит ресурсы для больших объёмов данных.

3. Простота использования:
Работает с любыми итерабельными объектами: списками, словарями, генераторами и т. д.

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

⚙️ Установка 👇👇👇

pip install flupy


📁 Документация

#библиотеки

📌 Подпишись Python_Scripts ❗️
👍103
topup_helper_tg_bot-main.zip
4.1 MB
📌 Скрипт для  помощи в пополнении любого EVM кошелька, если у пользователя нет своего личного кошелька или биржи

💻  ЯП:  Python 3.11+🐍
💾  Модули: aiogram, requests,web3
📂  База данных: sqlalchemy

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

Пользователи могут пополнить свой баланс внутри бота через Telegram Stars. Stars конвертируются в рубли на баланс, независимо от того, в какой валюте были куплены.Рубли в дальнейшем конвертируются в токены по курсу Binance.

📌 Вся информация приведена исключительно в ознакомительных целях❗️❗️❗️

#telegram

📌
Подпишись  Python_Scripts❗️
👍7👏5🎉42
📌Проверка аномально больших объемов торговли для заданного токена.
Используется публичное API Bybit👨‍💻

import requests
import time

# Константы
BASE_URL = "https://api.bybit.com/v5/market/kline"
SYMBOL = "BTCUSDT" # Торговая пара
CATEGORY = "spot" # Тип рынка
INTERVAL = "60" # Интервал свечей (60 минут)
LIMIT = 50 # Количество свечей для анализа (N периодов)
THRESHOLD_MULTIPLIER = 2 # Умножитель для определения аномального объёма

def get_historical_volumes():
"""Получить исторические объёмы (Kline)"""
params = {
"category": CATEGORY,
"symbol": SYMBOL,
"interval": INTERVAL,
"limit": LIMIT
}
response = requests.get(BASE_URL, params=params)
if response.status_code == 200:
return [float(kline[5]) for kline in response.json()["result"]["list"]] # Объём сделок
else:
raise Exception(f"Ошибка API: {response.status_code}, {response.text}")

def detect_anomalous_volume(volumes):
"""Определить, есть ли аномальный объём"""
avg_volume = sum(volumes[:-1]) / (len(volumes) - 1) # Средний объём без последнего значения
last_volume = volumes[-1] # Последний объём
if last_volume > avg_volume * THRESHOLD_MULTIPLIER:
return True, avg_volume, last_volume
return False, avg_volume, last_volume

def main():
try:
print(f"Начинаем мониторинг объёмов для {SYMBOL}...\n")

while True:
# Получаем исторические данные объёмов
volumes = get_historical_volumes()

# Проверяем на наличие аномального объёма
is_anomalous, avg_volume, last_volume = detect_anomalous_volume(volumes)

if is_anomalous:
print(f"🔔 Аномальный объём обнаружен!")
print(f"Средний объём: {avg_volume:.2f}, Последний объём: {last_volume:.2f}\n")
else:
print(f"Объёмы в пределах нормы. Последний объём: {last_volume:.2f}, Средний объём: {avg_volume:.2f}")

# Задержка между проверками
time.sleep(60 * int(INTERVAL)) # Интервал совпадает с таймфреймом свечи
except Exception as e:
print(f"Ошибка: {e}")

if __name__ == "__main__":
main()

📌 Подпишись  Python_Scripts❗️
15👍3🔥3
🚀 Полезные библиотеки Python

💾 Tenacity

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

Ключевые возможности Tenacity:

1. Гибкость настройки повторов: Вы можете задать количество попыток, задержки между ними, условия для остановки и исключения, которые должны быть обработаны.

2. Простота использования: Используется в качестве декоратора или вызова функции.

3. Расширяемость:
Вы можете добавлять собственные стратегии управления повторными попытками.

4. Обширный набор предустановок: Параметры для задержек (например, экспоненциальная или фиксированная), лимитов по времени и т. д.

⚙️ Установка 👇👇👇

pip install tenacity


📁 Документация

#библиотеки

📌 Подпишись Python_Scripts ❗️
👍7🔥21
gift-sniper-main.zip
218.1 KB
📌 Скрипт  авто покупка подарков

💻  ЯП:  Python 3.11+🐍
💾  Модули: aiogram, pyrogram
📂  База данных: sqlalchemy

📌 Скрипт для автоматического отслеживание и покупки новых Telegram Gifts.

Настройка режимов покупки:
- Покупка на весь баланс
- Процентный лимит от баланса (в разработке)
- Пополнение баланса звёзд
- Общий банк звёзд в системе
- Управление VIP-статусами
- Изменение баланса пользователей

📌 Вся информация приведена исключительно в ознакомительных целях❗️❗️❗️

#telegram

📌
Подпишись  Python_Scripts❗️
👍9👏43🔥1
📌Мониторинг изменения процентной ставки финансирования (Funding Rate) для фьючерсов.
Ставка финансирования помогает понять, кто доминирует на рынке — покупатели (лонги) или продавцы (шорты). Резкие изменения ставки могут указывать на перекос позиций и потенциальный разворот рынка.
Используется публичное API Bybit👨‍💻
import requests
import time

# Константы
FUNDING_URL = "https://api.bybit.com/v5/market/funding/history"
SYMBOL = "BTCUSDT" # Торговая пара
CATEGORY = "linear" # Тип рынка (фьючерсы)
CHECK_INTERVAL = 300 # Интервал проверки (в секундах)

def get_latest_funding_rate():
"""Получить последнюю ставку финансирования"""
params = {
"category": CATEGORY,
"symbol": SYMBOL,
"limit": 1 # Только последнее значение
}
response = requests.get(FUNDING_URL, params=params)
if response.status_code == 200:
funding_data = response.json()["result"]["list"]
if funding_data:
return float(funding_data[0]["fundingRate"]), funding_data[0]["fundingRateTimestamp"]
else:
raise Exception("Нет данных по ставке финансирования.")
else:
raise Exception(f"Ошибка API Funding Rate: {response.status_code}, {response.text}")

def monitor_funding_rate():
"""Мониторинг ставки финансирования"""
try:
print(f"Начинаем мониторинг ставки финансирования для {SYMBOL}...\n")
previous_rate = None

while True:
# Получаем текущую ставку финансирования
funding_rate, timestamp = get_latest_funding_rate()

# Сравниваем с предыдущей ставкой
if previous_rate is not None:
rate_change = (funding_rate - previous_rate) * 100 # Изменение в процентах
print(f"Ставка финансирования: {funding_rate:.6f} (Изменение: {rate_change:+.2f}%)")
if abs(rate_change) > 0.01: # Порог изменения, при котором выводится предупреждение
print(f"🔔 Внимание! Ставка финансирования изменилась на {rate_change:+.2f}%!")
else:
print(f"Ставка финансирования: {funding_rate:.6f}")

# Обновляем предыдущую ставку
previous_rate = funding_rate

# Задержка перед следующей проверкой
time.sleep(CHECK_INTERVAL)
except Exception as e:
print(f"Ошибка: {e}")

if name == "main":
monitor_funding_rate()

📌 Подпишись  Python_Scripts❗️
1🔥10👍53
🚀 Полезные библиотеки Python

💾 PyScaffold

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

Особенности:

- Генерация готовой структуры проекта (папки src, тесты, документация).

- Поддержка интеграции с tox, pre-commit, и sphinx.

- Простая настройка через шаблоны.

⚙️ Установка 👇👇👇

pip install pyscaffold


📁 Документация

#библиотеки

📌 Подпишись Python_Scripts ❗️
👍112
gift-parser-main.zip
7.5 KB
📌 Скрипт парсер подарков

💻  ЯП:  Python 3.11+🐍
💾  Модули: aiogram, pyrogram
📂  База данных: -

📌 Скрипт бот для автоматического парсинга подарков пользователей из Telegram чатов.

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

📌 Вся информация приведена исключительно в ознакомительных целях❗️❗️❗️

#telegram

📌
Подпишись  Python_Scripts❗️
👍74🔥3
📌 Вычисление спреда для торговых стратегий.
Используется публичное API Bybit👨‍💻
import requests
import time

# Константы
ORDERBOOK_URL = "https://api.bybit.com/v5/market/orderbook"
SYMBOL = "BTCUSDT" # Торговая пара
CATEGORY = "spot" # Тип рынка (spot или linear для фьючерсов)
REFRESH_INTERVAL = 5 # Интервал обновления (в секундах)

def get_best_bid_ask():
"""Получить лучшие цены bid и ask"""
params = {
"category": CATEGORY,
"symbol": SYMBOL
}
response = requests.get(ORDERBOOK_URL, params=params)
if response.status_code == 200:
result = response.json().get("result")
if result:
best_bid = result.get("b", [])[0] # Лучшая цена bid
best_ask = result.get("a", [])[0] # Лучшая цена ask
return best_bid, best_ask
else:
raise ValueError("Пустой ответ в поле 'result'.")
else:
raise Exception(f"Ошибка API Orderbook: {response.status_code}, {response.text}")

def calculate_spread(best_bid, best_ask):
"""Рассчитать спред между лучшими ценами bid и ask"""
bid_price = float(best_bid[0])
ask_price = float(best_ask[0])
spread = ask_price - bid_price
return bid_price, ask_price, spread

def monitor_best_bid_ask():
"""Мониторинг лучших bid и ask"""
try:
print(f"Начинаем мониторинг лучших bid и ask для {SYMBOL}...\n")
while True:
# Получаем лучшие bid и ask
best_bid, best_ask = get_best_bid_ask()

# Рассчитываем спред
bid_price, ask_price, spread = calculate_spread(best_bid, best_ask)

# Выводим результаты
print(f"Bid: {bid_price:.2f}, Ask: {ask_price:.2f}, Спред: {spread:.2f}")

# Интервал обновления
time.sleep(REFRESH_INTERVAL)
except Exception as e:
print(f"Ошибка: {e}")

if __name__ == "__main__":
monitor_best_bid_ask()

📌 Подпишись  Python_Scripts❗️
1👍10🔥7
🚀 Полезные библиотеки Python

💾 DeepLake

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

⚙️ Установка 👇👇👇

pip install deeplake


📁 Документация

#библиотеки

📌 Подпишись Python_Scripts ❗️
👍93🔥1
maxmind_geocity-main.zip
12.4 KB
📌 Скрипт определение геолокации

💻  ЯП:  Python 3.11+🐍
💾  Модули: aiogram, geoip2
📂  База данных: sqlite3

📌 Скрипт Telegram-бот для определения геолокации IP-адресов и подсетей.

📌 Вся информация приведена исключительно в ознакомительных целях❗️❗️❗️

#telegram

📌
Подпишись  Python_Scripts❗️
5👍5
📌  Анализ тренда цены с использованием скользящей средней (SMA), используя публичное API Bybit👨‍💻
import requests
import time

# Константы
KLINE_URL = "https://api.bybit.com/v5/market/kline"
SYMBOL = "BTCUSDT" # Торговая пара
CATEGORY = "spot" # Тип рынка (spot или linear для фьючерсов)
INTERVAL = "1" # Таймфрейм свечей (1 минута)
SMA_PERIOD = 10 # Количество свечей для расчёта SMA
REFRESH_INTERVAL = 5 # Интервал обновления (в секундах)

def get_kline_data():
"""Получить исторические свечи"""
params = {
"category": CATEGORY,
"symbol": SYMBOL,
"interval": INTERVAL,
"limit": SMA_PERIOD # Берём последние N свечей
}
response = requests.get(KLINE_URL, params=params)
if response.status_code == 200:
result = response.json().get("result", {}).get("list", [])
if result:
return [float(candle[4]) for candle in result] # Закрытия свечей
else:
raise ValueError("Пустой ответ в 'result.list'.")
else:
raise Exception(f"Ошибка API Kline: {response.status_code}, {response.text}")

def calculate_sma(prices):
"""Рассчитать скользящую среднюю (SMA)"""
return sum(prices) / len(prices) if prices else 0

def monitor_trend():
"""Мониторинг тренда на основе SMA"""
try:
print(f"Начинаем мониторинг тренда {SYMBOL}...\n")
while True:
# Получаем закрытия свечей
closing_prices = get_kline_data()
current_price = closing_prices[-1] # Последняя цена закрытия
sma = calculate_sma(closing_prices)

# Определяем тренд
trend = "⬆️ Восходящий" if current_price > sma else "⬇️ Нисходящий"

# Выводим результаты
print(f"Цена: {current_price:.2f}, SMA({SMA_PERIOD}): {sma:.2f}, Тренд: {trend}")

# Интервал обновления
time.sleep(REFRESH_INTERVAL)
except Exception as e:
print(f"Ошибка: {e}")

if __name__ == "__main__":
monitor_trend()

📌 Подпишись  Python_Scripts❗️
🔥121
🚀 Полезные библиотеки Python

💾 Blosc

📌 Библиотека Python, для сверхбыстрого сжатия данных. Используется для сжатия массивов NumPy и работы с большими объёмами данных в памяти.

Особенности:

- В 2-10 раз быстрее стандартных методов сжатия (gzip, bz2).

- Поддерживает многопоточность.

- Оптимизирован для работы с NumPy и Pandas.

⚙️ Установка 👇👇👇

pip install blosc


📁 Документация

#библиотеки

📌 Подпишись Python_Scripts ❗️
🔥7👍63
Telegram-Bot-Progressor-main.zip
17 KB
📌 Скрипт для автоматизации записи на мероприятия

💻  ЯП:  Python 3.11+🐍
💾  Модули: aiogram
📂  База данных: sqlalchemy

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

📌 Вся информация приведена исключительно в ознакомительных целях❗️❗️❗️

#telegram

📌
Подпишись  Python_Scripts❗️
👍92
📌  Поиск крупных рыночных сделок (детектор "китов"). Этот скрипт поможет выявлять аномально большие ордера, которые могут повлиять на цену. используя публичное API Bybit👨‍💻
import requests
import time

# Константы
TRADES_URL = "https://api.bybit.com/v5/market/recent-trade"
SYMBOL = "BTCUSDT" # Торговая пара
CATEGORY = "spot" # Тип рынка (spot или linear для фьючерсов)
VOLUME_THRESHOLD = 5 # Минимальный объём сделки для "кита" (в BTC)
REFRESH_INTERVAL = 2 # Интервал обновления (в секундах)

def get_recent_trades():
"""Получить последние сделки"""
params = {
"category": CATEGORY,
"symbol": SYMBOL,
"limit": 50 # Берём последние 50 сделок
}
response = requests.get(TRADES_URL, params=params)
if response.status_code == 200:
return response.json().get("result", {}).get("list", [])
else:
raise Exception(f"Ошибка API Trades: {response.status_code}, {response.text}")

def detect_whale_trades():
"""Мониторинг крупных сделок (китов)"""
try:
print(f"Начинаем мониторинг крупных сделок для {SYMBOL}...\n")
while True:
trades = get_recent_trades()

for trade in trades:
price = float(trade["p"]) # Цена сделки
volume = float(trade["q"]) # Объём сделки
side = "🟢 Покупка" if trade["S"] == "Buy" else "🔴 Продажа"

# Фильтруем только крупные сделки
if volume >= VOLUME_THRESHOLD:
print(f"{side} на {volume:.2f} BTC по цене {price:.2f}")

time.sleep(REFRESH_INTERVAL)
except Exception as e:
print(f"Ошибка: {e}")

if __name__ == "__main__":
detect_whale_trades()

📌 Подпишись  Python_Scripts❗️
🔥12👍53
🚀 Полезные библиотеки Python

💾 Quaternion

📌 Библиотека Python, для работы с кватернионами (математическими объектами, используемыми в 3D-графике, робототехнике и физике).

Особенности:

- Поддержка NumPy.

- Операции с вращением и ориентацией в 3D-пространстве.

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

⚙️ Установка 👇👇👇

python -m pip install --upgrade --force-reinstall numpy-quaternion


📁 Документация

#библиотеки

📌 Подпишись Python_Scripts ❗️
👍6🔥5
Triton_RAT-release.zip
542.9 KB
📌 Скрипт rat-ник

💻  ЯП:  Python 3.11+🐍
💾  Модули: pyTelegramBotAPI, telebot, pywin32, browser-cookie3
📂  База данных: -

📌 Скрипт полнофункциональный rat-ник на python, с возможностью изменения размера файла, управление через Telegram бота.

📌 Вся информация приведена исключительно в ознакомительных целях❗️❗️❗️

#telegram

📌
Подпишись  Python_Scripts❗️
👍13😁43🔥1
📌  Поиск аномальной ликвидности (детектор "стенок")

Этот скрипт анализирует глубину стакана и ищет необычно крупные лимитные ордера ("стены"), которые могут повлиять на движение цены,используя публичное API Bybit👨‍💻
import requests
import time

# Константы
ORDERBOOK_URL = "https://api.bybit.com/v5/market/orderbook"
SYMBOL = "BTCUSDT"
CATEGORY = "spot"
DEPTH_LEVELS = 20 # Количество уровней стакана для анализа
VOLUME_THRESHOLD_RATIO = 0.1 # Порог "стен" (10% от общего объёма стакана)
REFRESH_INTERVAL = 5 # Интервал обновления (в секундах)

def get_orderbook():
"""Получает стакан заявок"""
params = {"category": CATEGORY, "symbol": SYMBOL}
response = requests.get(ORDERBOOK_URL, params=params)
if response.status_code == 200:
result = response.json().get("result", {})
return result.get("b", []), result.get("a", [])
else:
raise Exception(f"Ошибка API Orderbook: {response.status_code}, {response.text}")

def detect_liquidity_walls():
"""Анализ ликвидности и поиск крупных заявок"""
try:
print(f"Мониторинг ликвидности {SYMBOL}...\n")
while True:
bids, asks = get_orderbook()

# Берём только топ-N уровней стакана
bids = [(float(price), float(size)) for price, size in bids[:DEPTH_LEVELS]]
asks = [(float(price), float(size)) for price, size in asks[:DEPTH_LEVELS]]

# Считаем общий объём заявок в стакане
total_bid_volume = sum(size for _, size in bids)
total_ask_volume = sum(size for _, size in asks)

# Порог для "стен" ликвидности (10% от всего объёма стакана)
bid_threshold = total_bid_volume * VOLUME_THRESHOLD_RATIO
ask_threshold = total_ask_volume * VOLUME_THRESHOLD_RATIO

# Ищем "стены" – заявки, превышающие порог
big_bids = [(price, size) for price, size in bids if size >= bid_threshold]
big_asks = [(price, size) for price, size in asks if size >= ask_threshold]

# Выводим результаты
if big_bids:
print(f"🟢 Крупные заявки на покупку:")
for price, size in big_bids:
print(f" Цена: {price:.2f}, Объём: {size:.2f}")

if big_asks:
print(f"🔴 Крупные заявки на продажу:")
for price, size in big_asks:
print(f" Цена: {price:.2f}, Объём: {size:.2f}")

print("-" * 40)
time.sleep(REFRESH_INTERVAL)

except Exception as e:
print(f"Ошибка: {e}")

if __name__ == "__main__":
detect_liquidity_walls()

📌 Подпишись  Python_Scripts❗️
👍11🔥72