So erstellen Sie die erste Anwendung für den Handel an der Börse: 3 erste Schritte



Der moderne Austausch ist sehr technologisch und zieht die Aufmerksamkeit von IT-Spezialisten auf sich (zum Beispiel weisen aktive Diskussionen meiner Artikel zum Thema darauf hin). Viele interessieren sich für das Thema des Schreibens von Handelsrobotern - jemand möchte versuchen, selbst Geld an der Börse zu verdienen, jemand hat nichts dagegen, dies auf Bestellung zu tun. Heute werden wir darüber sprechen, wie wir uns der Entwicklung des ersten solchen Produkts nähern können. Wir werden einen möglichen Technologie-Stack diskutieren, die Eintrittsschwelle senken und Möglichkeiten zur Minimierung möglicher Verluste finden.

Haftungsausschluss : Ein Beitrag für diejenigen, die sich das Gerät des Austauschs, das Vorhandensein von Risiken, zumindest grob vorstellen, die Möglichkeit haben, nicht für das letzte Geld zu experimentieren, und im Allgemeinen gesunden Menschenverstand haben.

Entdecken Sie einen möglichen Technologie-Stack


Wie bei jedem IT-Projekt bestimmt bei der Entwicklung von Anwendungen für den Handel an der Börse die Auswahl spezifischer Tools das endgültige Ziel. Bevor Sie mit der Entwicklung eines Handelsroboters beginnen, müssen Sie das gesamte System entwerfen, verstehen, welche Module darin enthalten sind und wie sie interagieren.

Schreiben Sie einen Hochfrequenzroboter, für den jede Millisekunde wichtig ist? In welchen Märkten welcher Länder wird das Handelssystem tätig sein? Wird es nur eine Handelsmaschine geben oder muss noch ein Risikomanagementmodul hinzugefügt werden?

In jedem dieser Fälle kann der Satz von Technologien variieren. Ein guter Auswahlansatz wird in einem Artikel über die QuantStart-Profilressource beschrieben (natürlich auf Englisch - es ist besser, diese Sprache für die Entwicklung von Finanzanwendungen zu beherrschen).

Im Allgemeinen müssen Sie höchstwahrscheinlich aus einer solchen Liste von Technologien auswählen:

  • Die meisten Broker und nicht nur APIs (hier ist meine Auswahl solcher Tools ) haben Schnittstellen in C ++ und / oder Java. Vielleicht finden Sie vorgefertigte Module für die Verbindung, die von Community-Vertretern / Kunden eines bestimmten Brokers in C #, Python, R, Excel und MatLab geschrieben wurden. Aber Sie müssen sie möglicherweise selbst schreiben.
  • Für die Datenanalyse werden häufig Bibliotheken wie uBLAS, LAPACK und NAG für C ++ verwendet. MatLab in Python, NumPy / SciPy sind beliebt.
  • Wenn Sie Hochfrequenzroboter mit einer GPU (FPGA) entwickeln, müssen Sie sich höchstwahrscheinlich mit dem CUDA-Framework vertraut machen.

Lernen Sie die Besonderheiten der Entwicklung im Finanzbereich mithilfe integrierter Programmiersprachen kennen


Die Schaffung eines leistungsfähigen Handelssystems ist standardmäßig ein ziemlich umfangreiches Projekt. Wenn es jedoch im Prinzip Ihr ​​Ziel ist, sich mit der Entwicklung im Finanzbereich vertraut zu machen, verschiedene Punkte bei der Erstellung von Handelsrobotern zu untersuchen, ist es durchaus möglich, mit den sogenannten eingebauten Programmiersprachen zu arbeiten.

Es gibt Handelsterminals, mit denen nicht nur Transaktionen im manuellen Modus ausgeführt werden können, sondern auch die darin integrierten Skriptsprachen zum Erstellen einfacher Roboter verwendet werden können.

Eines der beliebtesten Terminals an der russischen Börse ist QUIK und verfügt über die algorithmische Sprache QPILE (QUIK Programmable Interface and Logic Environment). Damit können Sie einfache Handelssysteme automatisieren. Auch in QUIK ist ein Interpreter der Skriptsprache LUA integriert - er heißt QLUA. Skripte darauf können sowohl in Form von Quellcode als auch bereits in Form von kompiliertem Bytecode in das Terminal geladen werden.

QPILE-Codebeispiel:

PROGRAM FirmCode = "MC0012300000" CurrentBalance = MONEY_CURRENT_BALANCE(ROWNAME, FirmCode, "EQTV", "SUR") CurrentLimit = MONEY_CURRENT_LIMIT(ROWNAME, FirmCode, "EQTV", "SUR") Locked = MONEY_LIMIT_LOCKED(ROWNAME, FirmCode, "EQTV", "SUR") AvailableMoney = MoneyCurrentBalance + MoneyCurrentLimit – MoneyLocked If AvailableMoney > 0 Status = " " Else Status = " " SET_ROW_COLOR(ROWNAME, "RGB(255,138,138)", "DEFAULT_COLOR") End If END_PROGRAM 

Beide Sprachen haben eine ziemlich entwickelte Benutzergemeinschaft, Fragen können in Threads im offiziellen Forum gestellt werden .

Zusätzlich zu QUIK können Sie über das SMARTx- Terminal an russischen Börsen handeln . Es verwendet die integrierte Skriptsprache TradeScript. Die Syntax ist einfach, aber die Anzahl der verfügbaren Wörter und Operanden kann mit ziemlich komplexen Strategien codiert werden. So könnte der einfache TradeScript-Strategiecode aussehen:

 Buy Signals # ,        TREND(EMA(CLOSE, 20), 15) = UP AND TREND(MACD(13, 26, 9, SIMPLE), 5) = UP Sell Signals # ,        TREND(EMA(CLOSE, 20), 15) = DOWN AND TREND(MACD(13, 26, 9, SIMPLE), 5) = DOWN Exit Long Signal # ,         TREND(EMA(CLOSE, 20), 15) = DOWN OR TREND(MACD(13, 26, 9, SIMPLE), 5) = DOWN Exit Short Signal # ,         TREND(EMA(CLOSE, 20), 15) = UP OR TREND(MACD(13, 26, 9, SIMPLE), 5) = UP 

Der wichtigste Schritt: Testen und Debuggen


Die Entwicklung von Anwendungen für den Finanzsektor und insbesondere von Instrumenten für den Handel an der Börse wird dadurch erschwert, dass hier für Fehler im wörtlichen Sinne Geld bezahlt werden muss. Hiermit wird kein Code für den nächsten Webstart geschrieben, bei dem ein Fehler unbemerkt bleiben kann. Jeder Fehler im Code des Handelsroboters führt zu einem Geldverlust. Daher ist das Debuggen und Testen die wichtigste Phase bei der Erstellung einer solchen Software.

Natürlich sollten Sie alle Best Practices anwenden, Tests erstellen und die Code-Akzeptanz korrekt durchführen (auch wenn Sie ein Projekt alleine entwickeln). Und vor allem: Bevor Sie mit Tests mit echtem Geld beginnen, sollten Sie das Programm mit virtuellen Tests „fahren“.

Heutzutage bieten viele russische Broker einen kostenlosen Testzugriffsservice an (zum Beispiel hat die SMARTx-Terminalentwicklerfirma einen), wenn sie Ihnen ein Konto geben, das sich fast nicht von dem realen unterscheidet, aber das Geld darin ist virtuell. Wenn Sie mit einem solchen Konto arbeiten, können Sie in der Regel auf den Hauptmärkten handeln - Aktien, Währungen, Derivate - und mit wichtigen Aktien, Futures usw. arbeiten.

In einigen Fällen können Sie sogar den Handel mit geliehenen Geldern testen (dh Hebelwirkung). Bei der Erstellung des ersten Roboters stellt sich jedoch weiterhin die Frage, ob solche Funktionen hinzugefügt werden müssen.

Nützliche Ressourcen für Entwickler von Anwendungen für den Handel an der Börse:


Source: https://habr.com/ru/post/de458984/


All Articles