Im letzten Artikel habe ich Best Practices für die Entwicklung von Handelssoftware besprochen, wie z. B. die Verwendung von Ereignissen, Datenspeicherung oder separate Konfigurationen. Lassen Sie uns dieses Mal auf den strategischen Teil eingehen, insbesondere darauf, wie man ihn aus architektonischer Sicht effektiv organisiert.
Der einfachste Ansatz besteht darin, davon auszugehen, dass dieser Teil des Systems Eingabedaten wie Preisänderungen empfängt und Ereignisse – Signale – generiert. Die gesamte Logik kann in diesem Modul gekapselt werden. Hier ist ein Beispiel:
def run(self, event): signal = self.calc_rsi(event) if signal != 'FLAT': self.create_event(event, signal)
In diesem Beispiel berechnen wir den RSI und generieren darauf basierend Ereignisse wie KAUFEN oder VERKAUFEN. Dies ist eine einfache Darstellung, aber das Konzept ist klar. Das Signal könnte den gewünschten Kauf-/Verkaufspreis beinhalten. Natürlich ist ein echter Handelsalgorithmus komplexer, aber das wissen Sie bereits!
Es ist von Vorteil, alle Daten zu Salden oder offenen Positionen an einem Ort gesammelt zu haben. Auf diese Weise kennen Sie Ihre Gesamtbestände in USD oder BTC. Dieses Wissen ist wichtig, um die Größe Ihrer Aufträge zu bestimmen, wenn das System Signale generiert.
def run(self, event): # Calculate USD values # Calculate targets # Check targets # Generate orders
Dieser Pseudocode beschreibt die folgenden Schritte:
Sie erhalten alle Bilanzdaten und Signale, überprüfen, ob die Positionen mit den gewünschten übereinstimmen, und generieren Aufträge, wenn dies nicht der Fall ist.
Dieses Modul ist eng mit dem Portfolio-Modul verbunden. Manchmal kann die Risikomanagementlogik direkt darin implementiert werden, insbesondere wenn Sie eine kleine Summe verwalten und gerade erst begonnen haben. Für große Unternehmen könnte dies das komplexeste Systemelement sein, und jedes Unternehmen definiert seinen genauen Algorithmus. Hier sind einige Aufgaben, die im Rahmen des Risikomanagements angegangen werden können:
Je länger Sie auf dem Markt sind, desto wichtiger wird dieser Teil des Handelsalgorithmus.
Nachdem alle Preis- und Bilanzdaten eingeholt, Signale generiert, die optimale Portfoliogröße berechnet und alle möglichen Risiken berücksichtigt wurden, gibt es keinen Grund, keinen Auftrag an die Börse zu senden. Dies scheint der einfachste Teil zu sein, es sei denn, Sie implementieren die Auftragsweiterleitung über mehrere Börsen hinweg. Normalerweise formatieren Sie die Bestellung korrekt und senden sie an die Börse, an der Sie handeln.
Wir haben die Funktionen von vier Modulen besprochen, von denen jedes in 90 % der Handelsalgorithmen nützlich ist. Strukturieren Sie Ihren Code, wählen Sie eine gute Architektur und die Wartung und Aktualisierung Ihres Handelssystems wird viel weniger schmerzhaft sein.
Der vollständige Code wird als Open-Source-Handelsalgorithmus für aspis.finance verfügbar sein. Es wird ein paar einfache Handelsstrategien umfassen, aber das Hauptmerkmal ist die Möglichkeit, Speicher durch intelligente Verträge von Aspis zu schaffen, Investorengelder anzuziehen und eine transparente Gewinnbeteiligung sicherzustellen. Sie können Ihre Strategie entwickeln, sie mit Aspis verbinden, Ihr Algorithmus wird auf DEXs handeln und Investoren und Manager (Sie) werden durch einen Smart Contract Gewinn erzielen. Bleiben Sie dran!
Das obige ist der detaillierte Inhalt vonKomponenten des Handelssystems. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!