Skip to main content

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 storici
  • combined_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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

directa_api_wrapper-0.2.0.tar.gz (41.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

directa_api_wrapper-0.2.0-py3-none-any.whl (30.1 kB view details)

Uploaded Python 3

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

Hashes for directa_api_wrapper-0.2.0.tar.gz
Algorithm Hash digest
SHA256 94d343fb3889d2f59bbf3510159f67c253e622cb847aaff3db0043da97b88917
MD5 4b3738a53af2461376b1984ddf59445a
BLAKE2b-256 3cb5bee9ccca1ea691ab473a8d6dcffb8a3839b1eba5dd4851272dd5bf4ebb32

See more details on using hashes here.

File details

Details for the file directa_api_wrapper-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for directa_api_wrapper-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 48158c350f3edd7e3aace737f03d261c32fd43e53d793697cd391cecb63fd54c
MD5 39919ba36b53ba595773176d20d2939f
BLAKE2b-256 98bfc6dd45375e0f6f2305db60b7a9f2b770f8ad8aedab71b55622e4cda10076

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page