# API Directa - Esempio DataFeed # Python 3.9.13 (main, Aug 25 2022, 18:29:29) # [Clang 12.0.0 ] # DIRECTA API Documentation # http://app1.directatrading.com/trading-api-directa/index.html # Libreria python per gestione socket # https://docs.python.org/3/library/socket.html import socket # Funzione per printare il messaggio di errore def errore(messaggio): print(messaggio) exit(0) # Funzione per la connessione e la ricezione del feed def datafeed(): sfeed = "" porta = 10001 buffersize = 256 nfeed = 100 comando = "SUBPRZ UCG\n" host = "127.0.0.1" # Socket try: sfeed = socket.socket(socket.AF_INET, socket.SOCK_STREAM) except socket.error as err: errore(f"errore nel creare il socket: {err}") # Connessione al socket try: sfeed.connect((host, porta)) except socket.error as err: errore(f"errore di connessione: {err}") # Invio comando try: sfeed.sendall(comando.encode('utf-8')) except socket.error as err: errore(f"errore di invio del comando: {err}") # Ricezione try: response = sfeed.recv(buffersize) print(response.decode('utf-8')) except socket.error as err: errore(f"errore di ricezione del datafeed: {err}") for i in range (1,nfeed): try: response = sfeed.recv(buffersize) print(f"Messaggio numero: {i} dal server: {response.decode('utf-8')}") except socket.error as err: errore(f"Errore di ricezione della risposta: {err}") # Chiusura della connessione print("Chiusura Connessione") sfeed.close() # Comando per eseguire datafeed()