Iată un exemplu de script Python care implementează o strategie simplă de scalping folosind RSI și benzile Bollinger.

Instalarea bibliotecilor necesare:

Pentru a lucra cu API-ul Binance și cu indicatorii tehnici, trebuie să instalați următoarele biblioteci:

pip install python-binance TA-Lib

Exemplu de cod pentru bot:

timpul de import

import talib

import numpy ca np

de la binance.client import Client

din import binance.enums *

# Conectați-vă la API-ul Binance

api_key = „TAIA_API_VOASTRĂ”

api_secret = 'YOUR_API_SECRET'

client = Client(api_key, api_secret)

# Setările botului de tranzacționare

simbol = 'BTCUSDT' # Perechea pentru care va fi tranzacționată

interval = Client.KLINE_INTERVAL_1MINUTE # Interval de timp pentru analiză

cantitate = 0,001 # Suma de BTC pentru tranzacționare

rsi_period = 14 # Perioada pentru calcularea RSI

upper_rsi = 70 # RSI pentru supracumparare

lower_rsi = 30 # RSI pentru supravândure

bollinger_period = 20 # Perioada pentru calcularea benzilor Bollinger

take_profit = 1,02 # Nivel pentru take profit (cu 2% mai mare decât buy)

stop_loss = 0,98 # Nivel pentru stop loss (2% sub achiziție)

def get_klines(simbol, interval, lookback):

"""Obținerea datelor pentru analiză"""

klines = client.get_klines(simbol=simbol, interval=interval, limit=lookback)

closes = [float(kline[4]) pentru kline în klines] # Prețuri de închidere

returnează np.array (închide)

def trade_signal(preturi):

"""Verificarea semnalelor de intrare și de ieșire pe baza RSI și a benzilor Bollinger"""

rsi = talib.RSI(prețuri, timeperiod=rsi_period)

bandă superioară, bandă medie, bandă inferioară = talib.BANDS(prețuri, perioadă de timp=perioada_bollinger)

# Ultimele valori ale indicatorului

current_rsi = rsi[-1]

preț_actual = prețuri[-1]

banda_inferioară = banda inferioară[-1]

upper_band = upperband[-1]

# Logica pentru intrarea și ieșirea din tranzacții

dacă current_rsi < low_rsi și current_price <= low_band:

returnează „cumpără” # Cumpără semnal

elif current_rsi > upper_rsi și current_price >= upper_band:

return 'sell' # Semnal de vânzare

altceva:

return 'hold' # Hold position

def place_order(partea_comanda, cantitate, simbol):

"""Plasarea unei comenzi"""

încerca:

comanda = client.create_order(

simbol=simbol,

side=order_side,

tip=ORDER_TYPE_MARKET,

cantitate=cantitate)

print(f"comanda {order_side} plasată cu succes")

comanda de retur

cu excepția excepției ca e:

print(f"Eroare la plasarea comenzii {order_side}: {e}")

return Niciunul

def run_bot():

"""Logica de bază a botului"""

poziție = Nici unul # Variabilă pentru urmărirea poziției deschise

în timp ce este adevărat:

încerca:

# Obțineți date actuale despre preț

closes = get_klines(simbol, interval, lookback=bollinger_period + rsi_period)

semnal = trade_signal (închide)

dacă semnalul == „cumpără” și poziția este Niciunul:

# Cumpărați dacă nu există o poziție deschisă

comanda = place_order(SIDE_BUY, cantitate, simbol)

daca comanda:

buy_price = float(order['fills'][0]['price']) # Preț de cumpărare

poziție = {'side': 'buy', 'price': buy_price}

print(f"Cumparat la {buy_price}")

elif signal == „vinde” și poziția nu este Niciunul și poziția [„partea”] == „cumpără”:

# Vindeți dacă există o poziție deschisă

sell_price = se închide[-1]

if sell_price >= position['price'] * take_profit sau sell_price <= position['price'] * stop_loss:

comanda = place_order(SIDE_SELL, cantitate, simbol)

daca comanda:

print(f"Vândut la {sell_price}")

poziție = Niciunul # Închideți poziția

time.sleep(60) # Așteptați următorul minut pentru a verifica din nou

cu excepția excepției ca e:

print(f"Eroare în logica botului: {e}")

timp.somn(60)

# Lansați un bot de tranzacționare

run_bot()

Explicația codului:

1. Obținerea datelor de piață:

Funcția get_klines descarcă prețurile istorice din Binance pentru o pereche selectată (de exemplu, BTC/USDT) și intervale de timp (de exemplu, 1 minut).

2. Analiza semnalului:

Funcția trade_signal folosește RSI și benzi Bollinger pentru a analiza datele pieței.

Dacă RSI este sub 30 și prețul este pe banda inferioară Bollinger, botul trimite un semnal de cumpărare. Dacă RSI este peste 70 și prețul este pe banda superioară, botul semnalează o vânzare.

3. Comenzi:

Funcția place_order trimite comenzi de cumpărare sau vânzare prin API-ul Binance.

4. Logica de bază:

În buclă, botul verifică datele pieței în fiecare minut, monitorizează semnalele de cumpărare și vânzare și gestionează comenzile.

După cumpărare, botul monitorizează prețul pentru a stabili un take profit și pentru a opri pierderile.

Opțiuni de configurare:

simbol: pereche de tranzacționare, de exemplu, BTCUSDT.

interval: interval de timp (1 minut în acest caz).

cantitate: dimensiunea poziției.

RSI și Bollinger: parametrii indicatorilor pot fi optimizați în funcție de criptomoneda și piața selectate.

Important:

Testați strategia pe un cont de test sau cu un capital mic înainte de a o folosi pe piețele reale.

Luați în considerare întotdeauna riscurile, deoarece tranzacționarea automată poate duce la pierderi în cazul unor schimbări bruște pe piață.