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

Ваши предложения📝 @cmd_dark @CMD_Vega
Download Telegram
📌Автоматическое определение разворотов рынка с помощью индикатора RSI (Relative Strength Index),используя публичное API Bybit👨‍💻
import requests
import numpy as np

# Настройки
SYMBOL = "BTCUSDT"
KLINE_URL = "https://api.bybit.com/v5/market/kline"
INTERVAL = "15" # 15-минутные свечи
LIMIT = 100 # Количество свечей для расчета
RSI_PERIOD = 14 # Длина RSI
OVERBOUGHT = 70 # Уровень перекупленности
OVERSOLD = 30 # Уровень перепроданности

def get_kline_data():
"""Получает исторические свечи"""
params = {"category": "spot", "symbol": SYMBOL, "interval": INTERVAL, "limit": LIMIT}
response = requests.get(KLINE_URL, params=params)

if response.status_code == 200:
return response.json().get("result", {}).get("list", [])
else:
print(f"Ошибка API: {response.status_code}")
return None

def calculate_rsi(prices, period=14):
"""Рассчитывает RSI"""
deltas = np.diff(prices)
gains = np.maximum(deltas, 0)
losses = np.abs(np.minimum(deltas, 0))

avg_gain = np.convolve(gains, np.ones(period) / period, mode='valid')
avg_loss = np.convolve(losses, np.ones(period) / period, mode='valid')

rs = avg_gain / (avg_loss + 1e-10)
rsi = 100 - (100 / (1 + rs))
return rsi

def analyze_rsi():
"""Анализирует рынок по RSI"""
candles = get_kline_data()
if not candles:
return

close_prices = np.array([float(c[4]) for c in candles])
rsi = calculate_rsi(close_prices, RSI_PERIOD)

if rsi[-1] > OVERBOUGHT:
print(f"🔥 RSI = {rsi[-1]:.2f} → Возможен разворот вниз (перекупленность)")
elif rsi[-1] < OVERSOLD:
print(f"🟢 RSI = {rsi[-1]:.2f} → Возможен разворот вверх (перепроданность)")
else:
print(f"📊 RSI = {rsi[-1]:.2f} → Нейтральная зона")

if __name__ == "__main__":
analyze_rsi()

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

💾 Snoop

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

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

- Подсвечивает код при выполнении.

- Показывает изменения переменных в реальном времени.

- Легко интегрируется в большие проекты.

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

pip install snoop


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

#библиотеки

📌 Подпишись Python_Scripts ❗️
10👍6🔥1
Telebot-Games-Parser-main.zip
33.1 KB
📌 Скрипт парсер Steam

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

📌 Скрипт Telegram бот находит самые дешевые ключи для Steam региона Россия, показывает раздачи бесплатных игр, выводит информацию о самых ожидаемых играх.

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

#telegram

📌
Подпишись  Python_Scripts❗️
1👍167🔥5
📌Автоматическое обнаружение пробоя уровней поддержки и сопротивления!

Этот скрипт:
Получает исторические свечи BTCUSDT
Определяет ключевые уровни поддержки и сопротивления
Выдает сигнал, если цена пробивает уровень

Используем публичное API Bybit👨‍💻
import requests
import numpy as np

# Настройки
SYMBOL = "BTCUSDT"
KLINE_URL = "https://api.bybit.com/v5/market/kline"
INTERVAL = "15" # 15-минутные свечи
LIMIT = 50 # Количество свечей для анализа
TOLERANCE = 0.002 # Допустимый разрыв (0.2%)

def get_kline_data():
"""Получает исторические свечи"""
params = {"category": "spot", "symbol": SYMBOL, "interval": INTERVAL, "limit": LIMIT}
response = requests.get(KLINE_URL, params=params)

if response.status_code == 200:
return response.json().get("result", {}).get("list", [])
else:
print(f"Ошибка API: {response.status_code}")
return None

def find_support_resistance(candles):
"""Определяет уровни поддержки и сопротивления"""
closes = np.array([float(c[4]) for c in candles])
highs = np.array([float(c[2]) for c in candles])
lows = np.array([float(c[3]) for c in candles])

support = np.min(lows)
resistance = np.max(highs)

return support, resistance

def detect_breakout():
"""Проверяет пробой уровней"""
candles = get_kline_data()
if not candles:
return

support, resistance = find_support_resistance(candles)
last_close = float(candles[-1][4])

if last_close >= resistance * (1 + TOLERANCE):
print(f"🚀 Пробой вверх! Цена {last_close:.2f} выше сопротивления {resistance:.2f}")
elif last_close <= support * (1 - TOLERANCE):
print(f"⚠️ Пробой вниз! Цена {last_close:.2f} ниже поддержки {support:.2f}")
else:
print(f"📊 Цена {last_close:.2f}, диапазон: {support:.2f} - {resistance:.2f} (без пробоя)")

if __name__ == "__main__":
detect_breakout()

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

💾 Pint

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

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

- Автоматическое преобразование единиц измерения.

- Поддержка сложных вычислений с единицами.

- Интеграция с NumPy и Pandas.

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

pip install pint


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

#библиотеки

📌 Подпишись Python_Scripts ❗️
7
shadowbot-main.zip
3.5 KB
📌 Скрипт авто продажа в Telegram

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

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

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

#telegram

📌
Подпишись  Python_Scripts❗️
👍53
📌Автоматическое обнаружение пробоя уровней поддержки и сопротивления.
Доработка:
Фильтрация ложных пробоев с помощью индекса волатильности ATR (Average True Range).

Используем публичное API Bybit👨‍💻
import requests
import numpy as np

# Настройки
SYMBOL = "BTCUSDT"
KLINE_URL = "https://api.bybit.com/v5/market/kline"
INTERVAL = "15" # 15-минутные свечи
LIMIT = 100 # Количество свечей для анализа (для ATR)
ATR_PERIOD = 14 # Период ATR
BREAKOUT_MULTIPLIER = 1.5 # Насколько цена должна превысить ATR для подтвержденного пробоя

def get_kline_data():
"""Получает исторические свечи"""
params = {"category": "spot", "symbol": SYMBOL, "interval": INTERVAL, "limit": LIMIT}
response = requests.get(KLINE_URL, params=params)

if response.status_code == 200:
return response.json().get("result", {}).get("list", [])
else:
print(f"Ошибка API: {response.status_code}")
return None

def calculate_atr(candles, period=ATR_PERIOD):
"""Рассчитывает ATR (средний истинный диапазон)"""
highs = np.array([float(c[2]) for c in candles])
lows = np.array([float(c[3]) for c in candles])
closes = np.array([float(c[4]) for c in candles])

prev_closes = np.roll(closes, shift=1) # Смещаем массив на 1 (добавится дубликат первого элемента)
prev_closes[0] = closes[0] # Убираем лишнее смещение

tr = np.maximum(highs - lows, np.maximum(abs(highs - prev_closes), abs(lows - prev_closes)))
atr = np.convolve(tr, np.ones(period) / period, mode='valid')

return atr[-1] # Берем последнее значение ATR

def find_support_resistance(candles):
"""Определяет уровни поддержки и сопротивления"""
highs = np.array([float(c[2]) for c in candles])
lows = np.array([float(c[3]) for c in candles])

support = np.min(lows)
resistance = np.max(highs)

return support, resistance

def detect_breakout():
"""Проверяет пробой уровней с фильтрацией по ATR"""
candles = get_kline_data()
if not candles:
return

support, resistance = find_support_resistance(candles[-50:]) # Берем последние 50 свечей
last_close = float(candles[-1][4])
atr = calculate_atr(candles)

breakout_threshold = atr * BREAKOUT_MULTIPLIER # Минимальный разрыв для подтверждения пробоя

if last_close >= resistance + breakout_threshold:
print(f"🚀 Подтвержденный пробой вверх! Цена {last_close:.2f} выше сопротивления {resistance:.2f} (ATR {atr:.2f})")
elif last_close <= support - breakout_threshold:
print(f"⚠️ Подтвержденный пробой вниз! Цена {last_close:.2f} ниже поддержки {support:.2f} (ATR {atr:.2f})")
else:
print(f"📊 Цена {last_close:.2f}, диапазон: {support:.2f} - {resistance:.2f} (без пробоя)")

if __name__ == "__main__":
detect_breakout()

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

💾 PyInfra

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

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

- Позволяет управлять серверами с использованием чистого Python.

- Работает без агентов на удалённых машинах.

- Поддерживает параллельное выполнение команд.

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

pip install pyinfra


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

#библиотеки

📌 Подпишись Python_Scripts ❗️
👍82
pump-not-fun-main.zip
81.7 KB
📌 Скрипт покупка токенов

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

📌 Скрипт Telegram бот для автоматизации анализа и покупки токенов в сети Sol по сигналам из выбранных вами телеграм-каналов(перехватывайте сообщения из выбранных чатов Telegram (групп, каналов и т. д.))

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

#telegram

📌
Подпишись  Python_Scripts❗️
11👍6🔥4
📌Aнализ аномалий с помощью Z-Score.
Почему это полезно?
Фильтрует шум — игнорирует обычные колебания
Выявляет сильные движения — можно использовать в стратегиях
Просто и быстро — нет сложных вычислений
Используем публичное API Bybit👨‍💻
import requests
import numpy as np

# Настройки
SYMBOL = "BTCUSDT"
KLINE_URL = "https://api.bybit.com/v5/market/kline"
INTERVAL = "15" # 15-минутные свечи
LIMIT = 100 # Количество свечей

def get_kline_data():
"""Получает исторические свечи"""
params = {"category": "spot", "symbol": SYMBOL, "interval": INTERVAL, "limit": LIMIT}
response = requests.get(KLINE_URL, params=params)

if response.status_code == 200:
return response.json().get("result", {}).get("list", [])
else:
print(f"Ошибка API: {response.status_code}")
return None

def detect_anomalies():
"""Анализ аномальных движений"""
candles = get_kline_data()
if not candles:
return

closes = np.array([float(c[4]) for c in candles])
returns = np.diff(closes) # Вычисляем разницу между свечами

mean = np.mean(returns)
std = np.std(returns)
z_scores = (returns - mean) / std # Z-оценка для каждого изменения

threshold = 3 # Граница аномалий
anomalies = np.where(abs(z_scores) > threshold)[0]

for idx in anomalies:
move = "🚀 Резкий рост" if z_scores[idx] > 0 else "⚠️ Резкое падение"
print(f"{move}: Свеча {idx+1}, Изменение: {returns[idx]:.2f}, Z-Score: {z_scores[idx]:.2f}")

if __name__ == "__main__":
detect_anomalies()

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

💾 Scalene

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

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

- Анализирует выполнение кода на уровне строк.

- Показывает, какие части кода выполняются в GIL.

- Отлично подходит для оптимизации производительности Python-программ.

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

pip install scalene


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

#библиотеки

📌 Подпишись Python_Scripts ❗️
👍43
🖥 Наконец-то нормальный канал по Python!

PytStart – для каждого питониста!

🔸 Полезные статьи
🔸 Лайфхаки и советы
🔸 Разбор кода и практические задания

Присоединяйся и начни свой путь в Python уже сегодня: @pytstart
Please open Telegram to view this post
VIEW IN TELEGRAM
👍124🔥3
PornHub-dlp-main.zip
25.4 KB
📌 Скрипт загрузка с pornhub

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

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

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

#telegram

📌
Подпишись  Python_Scripts❗️
1😁74👍139
📌 Автоматический поиск разворотных свечных паттернов.

Почему это полезно?

Помогает находить точки входа

Фильтрует шум, используя только ключевые паттерны

Можно комбинировать с RSI, MACD и объемами

Используем публичное API Bybit👨‍💻
import requests

# Настройки
SYMBOL = "BTCUSDT"
KLINE_URL = "https://api.bybit.com/v5/market/kline"
INTERVAL = "15" # 15-минутные свечи
LIMIT = 50 # Количество свечей для анализа

def get_kline_data():
"""Получает исторические свечи"""
params = {"category": "spot", "symbol": SYMBOL, "interval": INTERVAL, "limit": LIMIT}
response = requests.get(KLINE_URL, params=params)

if response.status_code == 200:
return response.json().get("result", {}).get("list", [])
else:
print(f"Ошибка API: {response.status_code}")
return None

def is_doji(open_price, close_price, high, low):
"""Паттерн Доджи (разворотный сигнал)"""
body = abs(close_price - open_price)
range_ = high - low
return body < 0.1 * range_

def is_hammer(open_price, close_price, high, low):
"""Паттерн Молот (бычий разворот)"""
body = abs(close_price - open_price)
lower_shadow = open_price - low if close_price > open_price else close_price - low
return lower_shadow > 2 * body and (high - max(open_price, close_price)) < body

def is_engulfing(prev_open, prev_close, open_price, close_price):
"""Паттерн Поглощение (разворот тренда)"""
return (close_price > open_price and open_price < prev_close and close_price > prev_open) or \
(close_price < open_price and open_price > prev_close and close_price < prev_open)

def analyze_patterns():
"""Анализ свечных паттернов"""
candles = get_kline_data()
if not candles:
return

for i in range(1, len(candles)): # Начинаем со 2-й свечи
prev_open, prev_close = float(candles[i-1][1]), float(candles[i-1][4])
open_price, close_price = float(candles[i][1]), float(candles[i][4])
high, low = float(candles[i][2]), float(candles[i][3])

if is_doji(open_price, close_price, high, low):
print(f"⚠️ Доджи на {i}-й свече: возможный разворот!")

if is_hammer(open_price, close_price, high, low):
print(f" Молот на {i}-й свече: возможный рост!")

if is_engulfing(prev_open, prev_close, open_price, close_price):
print(f"🔥 Поглощение на {i}-й свече: возможный разворот тренда!")

if __name__ == "__main__":
analyze_patterns()

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

💾 Kedro

📌 Библиотека Python, для структурирования проектов машинного обучения и аналитики данных

Kedro помогает организовать код в ML-проектах, делая его более воспроизводимым, модульным и понятным. Подходит для работы с большими данными, моделями машинного обучения и аналитическими пайплайнами.

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

- Чёткая структура проекта.

- Поддержка пайплайнов для обработки данных.

- Интеграция с MLflow, DVC, Airflow и другими инструментами.

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

pip install kedro


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

#библиотеки

📌 Подпишись Python_Scripts ❗️
👍63🔥1
deepseek_bot-main.zip
6.6 KB
📌 Скрипт DeepSeek

💻  ЯП:  Python 3.11+🐍
💾  Модули: python-telegram-bot, requests
📂  База данных: sqlite3

📌 Скрипт Telegram-бота, который использует API DeepSeek для взаимодействия с пользователем. Бот может отвечать на текстовые запросы, а также обрабатывать документы в форматах PDF, DOCX и TXT. Он сохраняет контекст разговора и данные из загруженных файлов в базе данных SQLite, чтобы использовать их при последующих запросах.

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

#telegram

📌
Подпишись  Python_Scripts❗️
👍2412👏7🔥1
📌 Автоматическое определение консолидации цены.

Почему это полезно:

Идентифицирует боковик перед сильным движением

Полезно для поиска точек входа в пробой

Можно комбинировать с объемами и RSI

Используем публичное API Bybit👨‍💻
import requests
import numpy as np

# Настройки
SYMBOL = "BTCUSDT"
KLINE_URL = "https://api.bybit.com/v5/market/kline"
INTERVAL = "15" # 15-минутные свечи
LIMIT = 50 # Количество свечей для анализа
RANGE_THRESHOLD = 0.002 # Порог для консолидации (0.2% от цены)

def get_kline_data():
"""Получает исторические свечи"""
params = {"category": "spot", "symbol": SYMBOL, "interval": INTERVAL, "limit": LIMIT}
response = requests.get(KLINE_URL, params=params)

if response.status_code == 200:
return response.json().get("result", {}).get("list", [])
else:
print(f"Ошибка API: {response.status_code}")
return None

def detect_consolidation():
"""Определяет консолидацию цены"""
candles = get_kline_data()
if not candles:
print(" Не удалось получить данные.")
return

closes = np.array([float(c[4]) for c in candles])
highs = np.array([float(c[2]) for c in candles])
lows = np.array([float(c[3]) for c in candles])

min_price = np.min(lows[-10:]) # Минимальная цена за 10 свечей
max_price = np.max(highs[-10:]) # Максимальная цена за 10 свечей
price_range = (max_price - min_price) / closes[-1]

# 🔍 Добавляем отладку:
print(f"🔍 Анализируем последние 10 свечей...")
print(f"🔹 Min цена: {min_price:.2f}, Max цена: {max_price:.2f}")
print(f"🔹 Текущий диапазон: {price_range:.5f}, Порог: {RANGE_THRESHOLD}")

if price_range < RANGE_THRESHOLD:
print(f"📉 Консолидация: {min_price:.2f} - {max_price:.2f}, возможный пробой!")
else:
print(" Нет консолидации. Ждем сигнала...")

if __name__ == "__main__":
detect_consolidation()

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

💾 Falkon

📌 Библиотека Python, для обучения больших ядерных (kernel-based) моделей. Она объединяет GPU-ускорение и эффективные численные методы для работы с большими наборами данных.

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

- Намного быстрее, чем стандартные SVM и Gaussian Process.

- Поддержка больших данных и GPU-ускорения.

- Подходит для задач регрессии и классификации.

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

pip install falkon


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

#библиотеки

📌 Подпишись Python_Scripts ❗️
👍42🔥2
-Telegram-Voice-Recognition-Bot-main.zip
8.7 MB
📌 Скрипт распознание говорящих

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

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

Функции:

- Принимает голосовые сообщения
- Анализирует голос и определяет говорящего
- Показывает список известных говорящих (/speakers)
- Работает на основе MFCC-фич и нейросети, обученной на PyTorch

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

#telegram

📌
Подпишись  Python_Scripts❗️
👍63🔥2
📌 Выявление скрытых крупных заявок (Iceberg Orders)!

Что это и зачем?

Iceberg-заявки — это ордера, которые выглядят как маленькие, но при исполнении обновляются, показывая новую "скрытую" часть.

🔥 Как это использовать?

📌 Если Iceberg в BID → крупный игрок накапливает позицию, рост вероятен
📌 Если Iceberg в ASK → крупный игрок разгружает позицию, может быть падение

Используется публичное API Bybit👨‍💻
import requests
import time

# API Bybit (глубина стакана)
ORDER_BOOK_URL = "https://api.bybit.com/v5/market/orderbook"
SYMBOL = "BTCUSDT"
DEPTH = 50 # Берём топ-50 заявок

def get_order_book():
"""Получает стакан заявок"""
params = {"category": "spot", "symbol": SYMBOL, "limit": DEPTH}
response = requests.get(ORDER_BOOK_URL, params=params)
if response.status_code == 200:
data = response.json().get("result", {})
bids = [(float(price), float(size)) for price, size in data.get("b", [])]
asks = [(float(price), float(size)) for price, size in data.get("a", [])]
return bids, asks
else:
print(f"Ошибка API: {response.status_code}")
return None, None

def detect_iceberg_orders():
"""Выявляет скрытые Iceberg-заявки"""
prev_bids, prev_asks = get_order_book()
if not prev_bids or not prev_asks:
print(" Ошибка получения стакана.")
return

print("📡 Начинаем мониторинг Iceberg-заявок...")
while True:
time.sleep(2) # Ждём обновления стакана
bids, asks = get_order_book()
if not bids or not asks:
continue

# Анализ заявок (BID - покупатели)
for i in range(min(len(bids), len(prev_bids))):
if bids[i][0] == prev_bids[i][0] and bids[i][1] > prev_bids[i][1] * 1.5:
print(f"❄️ Iceberg-заявка в BID: {bids[i][0]} - новый объём {bids[i][1]} BTC (было {prev_bids[i][1]} BTC)")

# Анализ заявок (ASK - продавцы)
for i in range(min(len(asks), len(prev_asks))):
if asks[i][0] == prev_asks[i][0] and asks[i][1] > prev_asks[i][1] * 1.5:
print(f"❄️ Iceberg-заявка в ASK: {asks[i][0]} - новый объём {asks[i][1]} BTC (было {prev_asks[i][1]} BTC)")

prev_bids, prev_asks = bids, asks # Обновляем стакан

if __name__ == "__main__":
detect_iceberg_orders()

📌 Подпишись  Python_Scripts❗️
🔥9👍43