Python wrapper per l'API di Trading di Directa SIM
Project description
Directa API
Una libreria Python per interagire con le API di Directa Trading, che consente di effettuare operazioni di trading e recuperare dati storici.
Caratteristiche
-
Trading API: Connessione e interazione con l'API di trading Directa (porta 10002)
- Piazzare ordini (limite, mercato, stop, trailing stop, iceberg)
- Gestire ordini e posizioni
- Recuperare informazioni di account e portafoglio
- Modalità simulazione per testare strategie senza utilizzare denaro reale
-
Historical Data API: Accesso ai dati storici di Directa (porta 10003)
- Dati tick-by-tick
- Dati a candele (intraday e giornalieri)
- Intervalli di date personalizzati
- Gestione volume after-hours
Requisiti
- Python 3.9 o versioni successive
- Piattaforma Darwin di Directa in esecuzione sul sistema
Installazione
# Clone del repository
git clone https://github.com/username/directa_api.git
cd directa_api
# Installazione
pip install -e .
Guida rapida
Trading API
from directa_api import DirectaTrading
# Connessione all'API di trading
with DirectaTrading() as api:
# Ottieni informazioni sull'account
account_info = api.get_account_info()
print(f"Liquidità: {account_info.get('data', {}).get('liquidity')}")
# Piazza un ordine limite
order = api.buy_limit("ENI.MI", 10, 13.50)
# Ottieni informazioni sul portafoglio
portfolio = api.get_portfolio()
# Verifica lo stato degli ordini
orders = api.get_orders()
Historical Data API
from directa_api import HistoricalData
# Connessione all'API per dati storici
with HistoricalData() as api:
# Ottieni dati giornalieri
daily_candles = api.get_daily_candles("ENI.MI", days=30)
# Ottieni dati intraday (candele a 5 minuti)
intraday_candles = api.get_intraday_candles("ENI.MI", days=1, period_minutes=5)
# Ottieni dati tick by tick
ticks = api.get_tick_data("ENI.MI", days=1)
# Specifica un intervallo di date
import datetime
end_date = datetime.datetime.now()
start_date = end_date - datetime.timedelta(days=7)
# Candele orarie nell'intervallo
candles = api.get_candle_data_range("ENI.MI", start_date, end_date, period_seconds=3600)
Uso combinato
from directa_api import DirectaTrading, HistoricalData
import pandas as pd
# Ottenimento dati storici
with HistoricalData() as historical:
# Ottieni candele giornaliere
candles = historical.get_daily_candles("ENI.MI", days=60)
# Converti in DataFrame pandas per l'analisi
df = pd.DataFrame(candles.get("data", []))
# Calcola medie mobili
df.set_index('timestamp', inplace=True)
df['sma_10'] = df['close'].rolling(window=10).mean()
df['sma_20'] = df['close'].rolling(window=20).mean()
# Genera segnali
df['signal'] = 0
df.loc[df['sma_10'] > df['sma_20'], 'signal'] = 1 # Segnale di acquisto
df.loc[df['sma_10'] < df['sma_20'], 'signal'] = -1 # Segnale di vendita
# Esegui ordini basati sui segnali
with DirectaTrading(simulation_mode=True) as trading:
# Ottieni l'ultimo segnale
last_signal = df['signal'].iloc[-1]
if last_signal > 0:
# Segnale di acquisto
trading.buy_limit("ENI.MI", 10, df['close'].iloc[-1])
elif last_signal < 0:
# Segnale di vendita
trading.sell_limit("ENI.MI", 10, df['close'].iloc[-1])
Esempi
Nella cartella examples/ sono presenti esempi più dettagliati:
trading_examples.py- Esempi di trading (ordini, portfolio, account info)historical_examples.py- Esempi di recupero e analisi di dati storicicombined_example.py- Esempio di strategia che combina dati storici e trading
Per eseguire gli esempi:
python examples/trading_examples.py
python examples/historical_examples.py
python examples/combined_example.py
Note
- Modalità simulazione: Per evitare di utilizzare denaro reale durante i test, è possibile abilitare la modalità simulazione:
api = DirectaTrading(simulation_mode=True)
- Supporto per i contesti: L'API supporta il protocollo context manager di Python per gestire automaticamente la connessione e disconnessione:
with DirectaTrading() as api:
# Operazioni di trading
pass # La disconnessione avviene automaticamente alla fine del blocco
Dipendenze
- La piattaforma Darwin di Directa deve essere in esecuzione sul sistema locale
- Per l'analisi dei dati e gli esempi avanzati: pandas, matplotlib
Licenza
Questo progetto è distribuito con licenza MIT. Vedere il file LICENSE per i dettagli.
Disclaimer
Questo software è fornito "così com'è", senza garanzie di alcun tipo. L'autore e i contributori non sono responsabili per eventuali perdite finanziarie derivanti dall'uso di questo software. Utilizzare a proprio rischio e pericolo. Non è affiliato ufficialmente a Directa SIM.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file directa_api_wrapper-0.2.0.tar.gz.
File metadata
- Download URL: directa_api_wrapper-0.2.0.tar.gz
- Upload date:
- Size: 41.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
94d343fb3889d2f59bbf3510159f67c253e622cb847aaff3db0043da97b88917
|
|
| MD5 |
4b3738a53af2461376b1984ddf59445a
|
|
| BLAKE2b-256 |
3cb5bee9ccca1ea691ab473a8d6dcffb8a3839b1eba5dd4851272dd5bf4ebb32
|
File details
Details for the file directa_api_wrapper-0.2.0-py3-none-any.whl.
File metadata
- Download URL: directa_api_wrapper-0.2.0-py3-none-any.whl
- Upload date:
- Size: 30.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
48158c350f3edd7e3aace737f03d261c32fd43e53d793697cd391cecb63fd54c
|
|
| MD5 |
39919ba36b53ba595773176d20d2939f
|
|
| BLAKE2b-256 |
98bfc6dd45375e0f6f2305db60b7a9f2b770f8ad8aedab71b55622e4cda10076
|