$ETH $SOL $BTC

Абсолютно! Вот полное пошаговое руководство на английском для запуска ETHUSDT Grid Bot на Binance Futures (Windows).

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

✅ ETHUSDT Grid Bot – Полное руководство на английском (Windows)

1. Создайте учетную запись на Binance и включите фьючерсы

·        Зарегистрируйтесь на Binance.

·        Включите торговлю фьючерсами в вашей учетной записи.

2. Генерация вашего API ключа

·        Перейдите в свой профиль > Управление API.

·        Создайте новый API ключ (назовите его, например, "GridBot").

·        Включите:

o   Включите чтение

o   Включите спотовую и маржинальную торговлю (по желанию)

o   Включите фьючерсы (обязательно)

·        Не включайте вывод средств для безопасности.

·        Скопируйте и сохраните ваш API Key и API Secret в безопасном месте.

3. Установите Python и необходимые библиотеки

·        Скачайте и установите Python (рекомендуется версия 3.9+).

·        Во время установки установите флажок "Добавить Python в PATH".

·        Откройте PowerShell или командную строку и проверьте установку:

python --version

pip --version

Вы должны видеть номера версий.

·        Установите необходимые библиотеки:

pip install python-binance numpy

4. Подготовьте код бота

·        Откройте Блокнот или любой текстовый редактор.

·        Скопируйте полный код бота (см. следующий раздел).

·        Сохраните файл как:

ethusdt_gridbot.py

(Убедитесь, что расширение .py, а не .txt)

5. Измените настройки вашего бота

·        В начале кода введите ваш API_KEY и API_SECRET в одинарных кавычках '...'.

·        Настройте остальные параметры по вашему желанию (диапазон цен, уровни сетки, целевая прибыль, капитал на заказ).

6. Запустите бота

·        Откройте PowerShell или CMD.

·        Перейдите в папку, где вы сохранили бота:

cd C:\Users\ВашеИмяПользователя\Рабочий стол

·        Запустите бота:

python ethusdt_gridbot.py

7. Мониторинг бота

·        Бот выведет сводку ваших настроек.

·        Он автоматически разместит заказы на покупку/продажу сетки.

·        Он будет контролировать прибыль и сбрасывать сетку, когда цель будет достигнута или цена достигнет пределов вашего диапазона.

·        Вы можете отслеживать открытые заказы и позиции на Binance или в консоли.

8. Безопасность и лучшие практики

·        Сначала протестируйте с небольшой суммой или на тестовой сети Binance.

·        Никогда не делитесь своими API ключами с кем-либо.

·        Не оставляйте бота без присмотра на длительное время, особенно во время высокой волатильности.

·        Вы можете легко улучшить код или добавить уведомления позже.

📄 Пример кода бота (Готов к использованию)

import time

import numpy as np

from binance.client import Client

from binance.enums import *

from binance.exceptions import BinanceAPIException

# ====== ВАШИ НАСТРОЙКИ ======

API_KEY = 'ВАШ_API_KEY'

API_SECRET = 'ВАШ_API_SECRET'

SYMBOL = 'ETHUSDT'

LEVERAGE = 15

BOTTOM = 2000      # Минимальная цена для запуска бота

TOP = 2900         # Максимальная цена для запуска бота

GRID_LEVELS = 100  # Количество уровней сетки (50 ниже и 50 выше текущей цены)

TP_PROFIT = 0.25   # Целевая прибыль за цикл в USD

USDT_PER_ORDER = 10  # Оценочный капитал на заказ

# ==========================

client = Client(API_KEY, API_SECRET)

def get_current_price():

    return float(client.futures_symbol_ticker(symbol=SYMBOL)['price'])

def get_balance():

    for asset in client.futures_account()['assets']:

        if asset['asset'] == 'USDT':

            return float(asset['walletBalance'])

    return 0.0

def get_realized_profit():

    income = client.futures_income_history(symbol=SYMBOL, limit=100)

    return round(sum(float(i['income']) for i in income if i['incomeType'] == 'REALIZED_PNL'), 4)

def cancel_all_orders():

    client.futures_cancel_all_open_orders(symbol=SYMBOL)

def close_all_positions():

    positions = client.futures_position_information(symbol=SYMBOL)

    for pos in positions:

        amt = float(pos['positionAmt'])

        if amt != 0:

            side = SIDE_SELL if amt > 0 else SIDE_BUY

            try:

                client.futures_create_order(

                    symbol=SYMBOL,

                    side=side,

                    type=ORDER_TYPE_MARKET,

                    quantity=abs(amt),

                    reduceOnly=True

                )

            except Exception as e:

                print(f"[!] Ошибка закрытия позиции: {e}")

def get_order_size(price):

    qty = round(USDT_PER_ORDER / price, 4)

    return max(qty, 0.001)

def place_grid_orders():

    price = get_current_price()

    grid_prices = np.linspace(BOTTOM, TOP, GRID_LEVELS)

    buy_prices = [p for p in grid_prices if p < price]

    sell_prices = [p for p in grid_prices if p > price]

    for p in buy_prices:

        qty = get_order_size(p)

        try:

            client.futures_create_order(

                symbol=SYMBOL,

                side=SIDE_BUY,

                type=ORDER_TYPE_LIMIT,

                price=str(round(p,2)),

                quantity=qty,

                timeInForce=TIME_IN_FORCE_GTC

            )

        except BinanceAPIException as e:

            print(f"[!] Ошибка покупки по цене {p}: {e}")

    for p in sell_prices:

        qty = get_order_size(p)

        try:

            client.futures_create_order(

                symbol=SYMBOL,

                side=SIDE_SELL,

                type=ORDER_TYPE_LIMIT,

                price=str(round(p,2)),

                quantity=qty,

                timeInForce=TIME_IN_FORCE_GTC

            )

        except BinanceAPIException as e:

            print(f"[!] Ошибка продажи по цене {p}: {e}")

    print(f"[✓] Сетка размещена вокруг цены {price}")

def set_leverage():

    try:

        client.futures_change_leverage(symbol=SYMBOL, leverage=LEVERAGE)

    except Exception as e:

        print(f"[!] Ошибка установки плеча: {e}")

def print_start_message():

    est_capital = USDT_PER_ORDER * GRID_LEVELS

    print("="*60)

    print(f"ETHUSDT Grid Bot - Binance Futures")

    print(f"Диапазон: {BOTTOM} до {TOP}")

    print(f"Уровни сетки: {GRID_LEVELS}")

    print(f"Оценочный используемый капитал: {est_capital} USDT")

    print(f"Целевая прибыль за цикл: {TP_PROFIT} USDT")

    print(f"Бот закроет сетку только если будет достигнута прибыль или цена достигнет BOTTOM/TOP")

    print("="*60)

def main():

    set_leverage()

    print_start_message()

    while True:

        try:

            cancel_all_orders()

            close_all_positions()

            place_grid_orders()

            initial_profit = get_realized_profit()

            print(f"Начальная реализованная прибыль: {initial_profit} USDT")

            while True:

                price = get_current_price()

                current_profit = get_realized_profit()

                net_profit = current_profit - initial_profit

                print(f"Текущая цена: {price:.2f} | Чистая прибыль: {net_profit:.4f} USDT", end='\r')

                if net_profit >= TP_PROFIT:

                    print(f"\n[💰] Целевая прибыль достигнута: {net_profit:.4f} USDT, сброс сетки...")

                    cancel_all_orders()

                    close_all_positions()

                    break

                if price <= BOTTOM or price >= TOP:

                    print(f"\n[!] Цена достигла предела диапазона ({price:.2f}). Закрытие сетки и ожидание...")

                    cancel_all_orders()

                    close_all_positions()

                    time.sleep(60)  # Подождите минуту перед повторной попыткой

                    break

                time.sleep(10)

        except Exception as e:

            print(f"[!] Общая ошибка: {e}")

            time.sleep(15)

if __name__ == "__main__":

    main()

Резюме

·        Создайте учетную запись Binance и включите фьючерсы

·        Генерация API ключа (с включенными фьючерсами)

·        Установите Python + библиотеки

·        Сохраните и измените код бота

·        Запустите бота и следите за ним