Oltre agli elementi cosiddetti importanti, ve ne sono altri di minore considerazione. come il componente che si occupa di inviare a Telegram dei messaggi di notifica, per esempio, sullo stato degli ordini e via dicendo. In questo progetto, tale elemento è chiamata “Telegram API”. Al posto di Telegram si poteva scegliere WhatsApp, o qualche altra applicazione.
Un altro elemento, meno significativo, ma sicuramente interessante, vive sulla logica di poter offrire alle altre applicazioni di terze parti la possibilità di usufruire dei dati del bot. Nello schema proposto, tale elemento è chiamato “REST API”. Anche se, in questo schema, per l’obiettivo che ci siamo proposti potrebbe anche non essere utilizzato, è ormai quasi consolidata la pratica di “aprire” la propria applicazione dando la possibilità agli sviluppatori “esterni” di consultare i dati, di interagire con essi e di poter compiere altre operazioni. Inoltre, la scelta del framework Django ne permette una realizzazione sicura, integrata e veloce. E’ quindi, necessario progettare fin dall’inizio un loro sviluppo.
Infine, nello schema di Gosden appare un altro elemento chiamato “Jobs and Scripts”. Di questo, fanno parte un insieme di scripts che vengono lanciati separatamente per avviare nuove istanze del bot o eseguire operazioni di riorganizzazione dei dati sul database. Normalmente, in un sistema GNU/Linux, questi scripts vengono “lanciati” e gestiti con CRON. (Leggere l’articolo CRON).
In questa breve analisi abbiamo individuato quattro elementi fondamentali del bot di trading di Gosden:
- Il “Market Data” ossia l’elemento che permette di eseguire il download dei dati dagli Exchanges.
- Il “DBMS” PostGreSQL o “Store” Data, qualificato come il “contenitore” dei nostri dati e delle nostre elaborazioni.
- il “Calculate Indicators and Triggers”. In questo avvengono i calcoli relativi ai vari indicatori o oscillatori tecnici e l’applicazione di vari “triggers” in grado di scatenare determinati eventi.
- Il “Trading algorithms and order management”. L’elemento essenziale senza il quale non si potrebbe dire che siamo difronte ad un bot di trading o Trading System.
- Il “Client Data” o l’app o il client web per la gestione del bot di trading.
Gli altri elementi non fondamentali sono i seguenti:
- Il “Telegram” API. L’elemento che ci permette di interagire con Telegram soprattutto a livello di notifiche.
- Il “REST” API. L’elemento che mette a disposizione dei metodi per gli applicativi di terze parti o per il nostro applicativo app o web.
- L’elemento “Jobs and Scripts” che permette di gestire esternamente al bot alcune operazioni di organizzazioni dei dati o di avvio di nuove istanze del bot.
Lo schema dei componenti del Bot di Trading è a questo punto il seguente:
Nome Componente | Funzione | Importanza |
---|---|---|
Market Data | Elemento che permette il download dei dati degli assets dagli Exchanges. | 1 |
DBMS | Database operazionale che contiene i dati da elaborare o o i dati di comunicazione o configurazione degli altri componenti. | 1 |
Trading algorithms & Order Management | Componente che contiene gli algoritmi per l’esecuzione delle strategie di trading e la parte di gestione degli ordini di acquisto e di vendita. | 1 |
Calculate Indicators and Triggers | In questo avvengono i calcoli relativi ai vari indicatori o oscillatori tecnici e l’applicazione di vari “triggers” in grado di scatenare determinati eventi. | 1 |
Frontend o client data | App o Client Web / Desktop che permette la gestione del client da parte degli utenti. | 1 |
Telegram API | Elemento utilizzato normalmente per la notifica delle informazioni del sistema di trading. | 2 |
Rest API | Elemento che permette l’integrazione degli altri sistemi con il Bot. | 2 |
Jobs & Scripts | Tali permettono l’esecuzione di più istanze del bot o vengono utilizzati per alcune operazioni di organizzazione dei dati. |
(Schema dei componenti di un bot trading).
Tutti gli elementi che abbiamo visto dovrebbero far parte dell’architettura di un bot di trading o “Trading System”. Non necessariamente dovremmo scegliere componenti “free software”, ma per un primo approccio a basso costo, la scelta di quest’ultimi, penso sia la strada migliore.