Sie können häufig auf Artikel stoßen, die ungefähr so heißen: "10 Projekte, die ein Programmierer implementieren muss." Trading Bots werden häufig in diesen Artikeln aufgeführt. Ich glaube, dass die Entwicklung eines Handelsbots eine lohnende Investition ist. Also habe ich beschlossen, mir etwas Zeit zu nehmen, um ein Tutorial darüber zu schreiben.
Aber anstatt einen Code Zeile für Zeile zu analysieren, entschied ich, dass es besser wäre, die Konzepte zu zerlegen, mit denen jemand vertraut sein sollte, der seinen eigenen Bot erstellen möchte. Der Punkt meines Materials ist, dass Sie nach dem Lesen den Code selbst schreiben würden.
Daher werde ich darüber sprechen, was für die Entwicklung eines Handelsbots nützlich ist und was dafür erforderlich ist (von der Arbeit mit Börsen bis zur Implementierung einer einfachen Handelsstrategie). Hier werde ich auf die Probleme im Zusammenhang mit der Architektur und internen Struktur einfacher Trading Bots mit den ihnen zugrunde liegenden Ideen eingehen. Ich werde Beispiele demonstrieren, die in Pseudocode geschrieben sind. Daher können Sie diese Anleitung lesen und sofort Ihren eigenen Bot in der Programmiersprache Ihrer Wahl schreiben. Infolgedessen fühlen Sie sich mit einem vertrauten Werkzeug wohl. Sie können ruhig programmieren und keine Zeit damit verbringen, das Arbeitsumfeld einzurichten und sich an eine neue Sprache zu gewöhnen. Sie werden eine Waffe auswählen und ich werde Ihnen den Umgang mit dieser Waffe beibringen.
Schritt 1. Eine Waffe auswählen
Im ersten Schritt dieses Tutorials wählen Sie die Programmiersprache aus, die Sie verwenden möchten. Sie müssen diese Frage selbst entscheiden.
Einige Sprachen, wie Python, werden möglicherweise bevorzugt, wenn Sie Ihren Bot in Zukunft ausstatten möchten, z. B. mit Mechanismen für maschinelles Lernen. Meine Hauptidee ist jedoch, dass Sie die Sprache auswählen können, mit der Sie am besten arbeiten können.
Schritt 2. Auf der Suche nach dem Schlachtfeld

Ein wichtiges Thema wird im Handel mit Bot-Schreibanleitungen oft übersehen. Es geht um die Wahl des Austauschs. Tatsache ist, dass ein Bot, damit er das tun kann, wofür er erstellt wurde, Zugang zu einer Börse benötigt, an der Sie etwas handeln können. Die Auswahl eines Austauschs und die Kenntnis seiner Verwendung sind ebenso wichtig wie Programmierkenntnisse.
Ihr erster Schritt besteht also darin, zu entscheiden, was genau Sie handeln möchten (Aktien, Währungen, Kryptowährungen) und genau zu entscheiden, wo Sie handeln werden.
Wenn wir über börsengehandelte Vermögenswerte sprechen, würde ich Ihnen raten, auf Kryptowährungen zu achten. Der Grund für diese Empfehlung ist nicht, dass ich Blockchain-Technologien und Kryptowährungen unterstütze (ich bin in dieser Frage völlig offen), sondern nur, dass die Kryptowährungsmärkte 7 Tage die Woche rund um die Uhr funktionieren.
Mehr „traditionelle“ Vermögenswerte können nur in bestimmten Zeitintervallen und oft nur an Wochentagen gehandelt werden. Beispielsweise sind die Aktienmärkte normalerweise von 9 bis 16 Uhr geöffnet und am Wochenende geschlossen. Die FOREX-Märkte sind zwar rund um die Uhr geöffnet, aber normalerweise am Wochenende geschlossen.
In dieser Hinsicht sind Kryptowährungen für uns am besten geeignet, da die Wahl dieses Marktes es unserem Bot ermöglicht, ohne Unterbrechungen zu arbeiten. Darüber hinaus sind Kryptowährungen für ihre hohe Volatilität bekannt. Dies bedeutet zum einen, dass Sie beim Handel viel Geld verlieren können, und zum anderen, dass sie ein hervorragendes Werkzeug zum Studieren und Testen von Handelsstrategien sind.
Wir haben bereits über Umtauschvermögen gesprochen. Lassen Sie uns nun die Anforderungen diskutieren, die bei der Auswahl eines Austauschs zu berücksichtigen sind, für den ein Bot erstellt wird. Ich spreche nämlich von zwei Grundvoraussetzungen:
- Sie müssen rechtlich in der Lage sein, an der ausgewählten Börse zu handeln und mit den angebotenen Handelsinstrumenten zu arbeiten. Wenn wir über Kryptowährungen sprechen, ist der Handel mit ihnen in einigen Ländern verboten. Berücksichtigen Sie dies bei der Auswahl von Instrumenten und einem Austausch.
- API, . , .
Nachdem sich herausstellt, dass ein bestimmter Austausch diese beiden Grundanforderungen erfüllt, können Sie ihn genauer analysieren. Zum Beispiel, um die Höhe der Provisionen abzuschätzen, ihre Zuverlässigkeit und Beliebtheit zu bewerten und die Qualität der Dokumentation für ihre API zu überprüfen.
Und doch, was genauso wichtig ist wie alles andere, würde ich empfehlen, das Handelsvolumen der Börse zu bewerten. Börsen mit geringem Volumen bleiben tendenziell hinter Preisbewegungen zurück. Darüber hinaus ist es schwieriger, Limit-Orders für sie auszuführen (mehr dazu weiter unten).
Wenn Sie sich endgültig für Kryptowährungen entscheiden, finden Sie hier eine gute Liste der führenden Börsen. Hier finden Sie verschiedene Informationen, die Ihnen bei der Auswahl eines Austauschs helfen.
Schritt 3. Aufbau des Lagers

Wenn der Austausch ein Schlachtfeld ist, werden wir jetzt über den Ort sprechen, von dem aus wir unsere Truppen auf das Schlachtfeld schicken werden. Übrigens ist es vielleicht Zeit für mich, mich mit solchen Analogien zu beschäftigen.
Ich spreche hier über den Server. Der Bot-Code muss auf einem Server ausgeführt werden, damit der Bot Anforderungen an die Exchange-API senden kann.
Wenn Sie einen Bot testen, kann Ihr Computer natürlich als Server fungieren. Aber wenn Sie einen Bot brauchen, um die ganze Zeit zu arbeiten, ist ein normaler Computer definitiv nicht die beste Wahl.
Ich habe hier zwei Vorschläge:
- Die Serverrolle kann der Raspberry Pi spielen (dieser Ansatz ist interessanter).
- Der Server kann eine Art Cloud-Dienst sein (und dieser Ansatz ist besser).
Ich denke, dass das Organisieren eines Bots auf der Basis Ihres eigenen Raspberry Pi-Servers eine interessante und moderne Idee ist. Wenn Ihnen diese Idee gefällt, können Sie sie in die Praxis umsetzen.
Die meisten Bot-Entwickler werden sich jedoch wahrscheinlich für einen Cloud-Anbieter wie AWS , Azure , GCS oder Digital Ocean entscheiden .
Die meisten großen Cloud-Anbieter haben gute kostenlose Pläne, sodass Sie Ihren Bot möglicherweise kostenlos bei diesem Anbieter hosten können.
Damit ist mein Gespräch über Server abgeschlossen. Sie sollten auswählen, was für Sie am besten funktioniert. Bei einem kleinen Projekt wie dem, an dem wir arbeiten, hat die Auswahl keinen großen Einfluss auf das Endergebnis.
Schritt 4. Erstellen Sie einen Bot

Und jetzt beginnt der Spaß. Bevor Sie diesen Teil unseres Projekts starten, überprüfen Sie, ob Folgendes getan wurde:
- Sie haben sich an der Börse registriert und die erforderlichen Genehmigungen erhalten, um damit zu arbeiten.
- Sie können mit der Exchange-API arbeiten, Sie haben einen API-Schlüssel.
- Sie haben das Hosting für den Bot ausgewählt.
Wenn diese Probleme behoben sind, können wir weitermachen.
▍ Einfachster Bot
Mein Ziel ist es, jemandem, der bis zu diesem Zeitpunkt absolut nichts über Bots wusste, zu helfen, einen einfachen funktionierenden Bot zu erstellen. Daher werde ich Ihnen erklären, wie Sie einen einfachen Handelsbot erstellen, den Sie entsprechend Ihren Anforderungen erweitern und verbessern können.
Unser Bot wird einige Einschränkungen haben:
- Der Bot kann nur in einem von zwei Staaten bleiben: KAUFEN (kaufen) oder VERKAUFEN (verkaufen). Er wird nicht ständig Kauf- oder Verkaufsaufträge zu unterschiedlichen Preisen erteilen. Wenn die letzte Operation ein Verkauf war, ist die nächste Operation, die der Bot ausführen wird, ein Kauf.
- Der Bot verwendet feste Schwellenwerte, um Kauf- und Verkaufsentscheidungen zu treffen. Ein intelligenterer Bot kann solche Werte möglicherweise unabhängig von verschiedenen Indikatoren anpassen, aber die Strategie und die Einschränkungen unseres Bots werden manuell festgelegt.
- Er wird nur ein Währungspaar handeln. Zum Beispiel - BTC / USD.
Diese Einschränkungen erleichtern unsere Aufgabe. Der Bot wird einfach sein, was bedeutet, dass es einfacher zu bauen und zu warten ist. Auf diese Weise können wir den Code auch sehr schnell auf dem Server bereitstellen. Grundsätzlich geht es hier um das KISS-Prinzip.
▍Entscheidungsmechanismus
Hier ist ein einfaches Diagramm, das einen Überblick über die Funktionsweise unseres Bots gibt.

Jetzt können Sie mit der Planung Ihrer Bot-Architektur beginnen.
Zunächst benötigen wir eine Variable, die Informationen über den genauen Status des Bots zum aktuellen Zeitpunkt speichert. Es ist entweder kaufen oder verkaufen. Eine boolesche Variable oder Aufzählung ist eine gute Wahl zum Speichern solcher Informationen.
Dann müssen Sie Schwellenwerte für Kauf- und Verkaufsvorgänge festlegen. Diese Werte werden als Prozentsatz ausgedrückt und stellen die Zunahme oder Abnahme des Preises des Vermögenswerts seit der vorherigen Transaktion dar.
Wenn ich zum Beispiel etwas für 100 USD gekauft habe und der aktuelle Preis 102 USD beträgt, haben wir es mit einer Preiserhöhung von 2% zu tun. Wenn der Schwellenwert für die SELL-Operation auf einen Preisanstieg von einem Prozent festgelegt ist, verkauft der Bot mit diesen 2% den Vermögenswert, da er bereits einen Gewinn erzielt hat, der den von uns festgelegten Schwellenwert überschreitet.
In unserem Fall sind solche Werte Konstanten. Wir brauchen 4 solcher Werte - 2 für jeden Bot-Zustand.
▍Schwellenwerte für die BUY-Operation (wenn sich der Bot im SELL-Status befindet)
DIP_THRESHOLD: Der Bot führt eine Kaufoperation durch, wenn der Preis um einen Wert gesunken ist, der größer als der angegebene Wert istDIP_THRESHOLD. Das Grundprinzip dahinter ist die Implementierung einer Buy-Low- und Sell-High-Strategie. Das heißt, der Bot wird versuchen, einen Vermögenswert zu einem reduzierten Preis zu kaufen, wobei er einen Preisanstieg und die Möglichkeit eines profitablen Verkaufs des Vermögenswerts erwartet.UPWARD_TREND_THRESHOLD: Der Bot kauft einen Vermögenswert, wenn der Preis um einen Wert gestiegen ist, der höher ist als der durch diese Konstante angegebene. Dieser Schritt widerspricht der Kauf- und Verkaufsphilosophie. Ziel ist es, einen Aufwärtstrend zu erkennen und keine Kaufgelegenheit zu verpassen, bevor der Preis noch weiter steigt.
Hier ist eine Abbildung, die Ihnen helfen kann, die Bedeutung dieser Konstanten zu verstehen.

Wenn wir die SELL-Operation zu dem in der Abbildung mit der roten SELL-Markierung markierten Moment ausgeführt haben, wird der Bot danach bei der Entscheidung, ob die BUY-Operation ausgeführt werden soll, von den Schwellenwerten
DIP_THRESHOLDund geleitet UPWARD_TREND_THRESHOLD.
Wenn der Preis unter die untere grüne Linie oder über die obere grüne Linie fällt, führen wir eine KAUF-Operation durch. In der in der Abbildung gezeigten Situation lag der Preis über der Obergrenze. Aus diesem Grund haben wir, basierend auf dem Wert
UPWARD_TREND_THRESHOLD, die BUY-Operation ausgeführt.
▍Schwellenwerte für die SELL-Operation (wenn sich der Bot im BUY-Status befindet)
PROFIT_THRESHOLD: Der Bot verkauft einen Vermögenswert, wenn der Preis höher geworden ist als der auf der Grundlage dieses Werts berechnete Preis, da der Vermögenswert zuvor zu einem niedrigeren Preis gekauft wurde. So machen wir Gewinn. Wir verkaufen den Vermögenswert zu einem Preis, der höher ist als der Preis zum Zeitpunkt des Kaufs.STOP_LOSS_THRESHOLD: Idealerweise möchten wir, dass der Bot Vermögenswerte nur dann verkauft, wenn der Verkauf für uns rentabel ist. Aber vielleicht gab es eine starke Abwärtsbewegung des Marktes. In einer solchen Situation beschließen wir, den Handel zu beenden, bevor wir einen zu großen Verlust erleiden, und den Vermögenswert später zu einem niedrigeren Preis zu kaufen. Diese Schwelle wird verwendet, um die Position mit Verlust zu schließen. Der Zweck dieser Operation besteht darin, größere Verluste zu verhindern.
Hier ist eine Illustration.

Dies zeigt eine Situation, in der ein Kauf getätigt wurde, in dem sich der KAUF-Marker befindet. Danach erreicht der Preis das angegebene Limit
PROFIT_THRESHOLDund wir verkaufen den Vermögenswert mit Gewinn. So verdienen Bots Geld.
Nachdem wir nun ein allgemeines Verständnis der Funktionsweise eines Bots haben, ist es an der Zeit, den Pseudocode zu betrachten.
▍ Hilfreiche Funktionen für die Arbeit mit API
Das erste, was ein Bot benötigt, ist die Fähigkeit, Daten mit der Austausch-API auszutauschen. Wir implementieren diese Funktionen mithilfe mehrerer Hilfsfunktionen:
FUNCTION getBalances():
DO: GET- API
RETURN:
FUNCTION getMarketPrices():
DO: GET- API
RETURN:
FUNCTION placeSellOrder():
DO:
1. (
, ,
50% )
2. POST- API
SELL
RETURN:
FUNCTION placeBuyOrder():
DO:
1. (
, ,
50% )
2. POST- API
BUY
RETURN:
// ,
//
FUNCTION getOperationDetails():
DO: GET- API
RETURN:
Der obige Code sollte ohne viel Erklärung selbsterklärend sein. Bei der Implementierung dieser Funktionalität müssen Sie jedoch genau wissen, welche Daten Sie an die API übertragen müssen, wenn Sie POST-Anforderungen stellen, die den Kauf oder Verkauf von etwas initiieren.
Wenn Sie beispielsweise das XAU / USD-Paar (Gold und US-Dollar) handeln und die Anforderung ausführen, können Sie häufig angeben, wie viel Gold Sie kaufen oder wie viele Dollar Sie verkaufen müssen. Bei der Ausführung solcher Anforderungen ist es sehr wichtig, die Bedeutung der ausgeführten Aktionen klar zu verstehen.
▍Main Bot Loop
Nachdem wir die Hilfsfunktionen vorbereitet haben, beginnen wir mit der Beschreibung der Aktionen des Bots. Zuerst müssen wir eine Endlosschleife erstellen, die in regelmäßigen Abständen ausgeführt wird. Angenommen, ein Bot soll alle 30 Sekunden versuchen, eine Operation auszuführen. So könnte eine solche Schleife aussehen:
FUNCTION startBot():
INFINITE LOOP:
attemptToMakeTrade()
sleep(30 seconds)
Als Nächstes konfigurieren wir die Variablen und Konstanten, über die wir oben gesprochen haben, und schreiben die Bot-Logik, mit der Entscheidungen getroffen werden können. Daher sieht der Haupt-Bot-Code zusätzlich zu den Hilfsfunktionen und der Hauptschleife folgendermaßen aus:
bool isNextOperationBuy = True
const UPWARD_TREND_THRESHOLD = 1.50
const DIP_THRESHOLD = -2.25
const PROFIT_THRESHOLD = 1.25
const STOP_LOSS_THRESHOLD = -2.00
float lastOpPrice = 100.00
FUNCTION attemptToMakeTrade():
float currentPrice = getMarketPrice()
float percentageDiff = (currentPrice - lastOpPrice)/lastOpPrice*100
IF isNextOperationBuy:
tryToBuy(percentageDiff)
ELSE:
tryToSell(percentageDiff)
FUNCTION tryToBuy(float percentageDiff):
IF percentageDiff >= UPWARD_TREND_THRESHOLD OR percentageDiff <= DIP_THRESHOLD:
lastOpPrice = placeBuyOrder()
isNextOperationBuy = False
FUNCTION tryToSell(float percentageDiff):
IF percentageDiff >= PROFIT_THRESHOLD OR percentageDiff <= STOP_LOSS_THRESHOLD:
lastOpPrice = placeSellOrder()
isNextOperationBuy = True
Beachten Sie, dass die Schwellenwerte in diesem Code zufällig ausgewählt werden. Sie sollten diese Werte gemäß Ihrer Handelsstrategie selbst auswählen.
Wenn
mainwir den obigen Code mit den Hilfsfunktionen und der Haupt-Bot-Schleife kombinieren, die durch so etwas wie eine Funktion dargestellt werden kann, haben wir jetzt einen sehr einfach funktionierenden Bot mit den für Bots typischen Grundfunktionen.
Bei jeder Iteration des Zyklus überprüft der Bot seinen aktuellen Status (KAUFEN oder VERKAUFEN) und versucht, eine Handelsoperation durchzuführen, wobei Schwellenwerte verwendet werden, die in seinem Code bei der Analyse der aktuellen Situation fest codiert sind. Wenn der Vorgang abgeschlossen ist, aktualisiert der Bot Informationen über seinen aktuellen Status und Daten über den Preis, zu dem der letzte Vorgang ausgeführt wurde.
Schritt 5. Den Bot verbessern

Die Grundarchitektur unseres Bots ist fertig. Aber wir können es wahrscheinlich ein wenig verbessern, indem wir es mit einigen zusätzlichen Funktionen ausstatten.
AgMagazine
Als ich anfing, eine der Varianten dieses Bots zu erstellen, war es für mich sehr wichtig, dass der Bot ständig Informationen über seine Aktionen protokolliert und diese an das Terminal und in eine separate Protokolldatei ausgibt.
Jeder Schritt des Programms sollte von ungefähr den folgenden Aufzeichnungen begleitet sein:
[BALANCE] USD Balance = 22.15$
[BUY] Bought 0.002 BTC for 22.15 USD
[PRICE] Last Operation Price updated to 11,171.40 (BTC/USD)
[ERROR] Could not perform SELL operation - Insufficient balance
Was in die Protokolldatei aufgenommen wird, ist mit einem Zeitstempel versehen. Wenn ich mich also einmal am Tag mit dem Server verbinde und beispielsweise eine Fehlermeldung sehe, kann ich genau herausfinden, wann der Fehler aufgetreten ist und was der Bot die ganze Zeit getan hat.
Wenn Sie einen Bot mit diesen Funktionen ausstatten, müssen Sie eine Funktion schreiben, die benannt werden kann
createLog. Diese Funktion sollte bei jedem Schritt der Hauptbotschleife aufgerufen werden. So könnte diese Funktion aussehen:
FUNCTION createLog(string msg):
DO:
1. msg
2. msg ,
▍Identifizierung von Trends
Das Hauptziel unseres Bots ist es, Vermögenswerte billig zu kaufen und zu verkaufen, um Gewinn zu erzielen. In seinem Code gibt es jedoch zwei Konstanten, die zwei Schwellenwerte symbolisieren, die diesem Ziel teilweise widersprechen. Dies
UPWARD_TREND_THRESHOLDund STOP_LOSS_THRESHOLD.
Diese Werte sollen Verluste begrenzen, indem sie den Vermögenswert verkaufen, wenn der Preis fällt, und den Kauf des Vermögenswerts organisieren, wenn der Preis steigt. Der Punkt hier ist, dass wir mit ihrer Hilfe versuchen, Trends vorherzusagen. Preise, wenn sie erscheinen, gehen über die Grenzen der üblichen Strategie hinaus, können uns aber entweder schaden oder uns Geld geben. Sowohl das als auch das andere sehen bestimmte Maßnahmen unsererseits vor.
Die Art und Weise, wie die Preisanalyse funktioniert, schränkt uns jetzt sehr ein. Die Preisanalyse, die durch Vergleichen eines Indikatorpaares durchgeführt wird, ist weit entfernt von einem Mechanismus zur Identifizierung von Trends.
Glücklicherweise können wir unser Trenderkennungssystem ohne allzu große Probleme zuverlässiger machen.
Wir müssen nur die Beobachtung von mehr Preiswerten als zuvor organisieren. Zuvor haben wir nur Informationen zu einem Preisindikator gespeichert - zum Wert des Vermögenswerts zum Zeitpunkt der letzten Operation (
lastOpPrice). Sie können beispielsweise Informationen zu Preisen für die letzten 10 oder 20 Iterationen des Bot-Zyklus speichern und diese nicht nur mit dem aktuellen Preis vergleichen lastOpPrice. Dies wird wahrscheinlich eine bessere Identifizierung von Trends ermöglichen, da wir mit diesem Ansatz eher kurzfristige Preisschwankungen als über einen langen Zeitraum auftretende Schwankungen erfassen können.
▍Datenbank?
Ein einfacher Bot braucht eigentlich keine Datenbank. Schließlich arbeitet er mit sehr kleinen Datenmengen und speichert alle benötigten Informationen im Speicher.
Aber was passiert, wenn zum Beispiel der Bot abnormal gestoppt wird? Wie kann er ohne menschliches Eingreifen wissen, was die Bedeutung war
lastOpPrice?
Um die Notwendigkeit manueller Eingriffe in den Bot-Code beim Neustart zu vermeiden, benötigen wir möglicherweise eine einfache Datenbank, in der wir einige Indikatoren wie speichern können
lastOpPrice.
Bei diesem Ansatz verwendet der Bot beim Start möglicherweise nicht die im Code fest codierten Werte. Stattdessen greift es auf die gespeicherten Daten zu und setzt dort fort, wo es aufgehört hat.
Je nachdem, wie einfach diese "Datenbank" Ihrer Meinung nach sein sollte, können Sie sich sogar dafür entscheiden, reguläre TXT- oder JSON-Dateien als solche zu verwenden, da es sich in jedem Fall um eine sehr gute Speicherung handelt begrenzter Datensatz.
▍Steuerfeld

Wenn Sie die Visualisierung der Aktivität des Bots organisieren und verwalten möchten, ohne den Code zu bearbeiten, möchten Sie den Bot möglicherweise mit einer Art Systemsteuerung verbinden.
Dazu muss der Bot über eine eigene Server-API zur Verwaltung seiner Funktionalität verfügen.
Dieser Ansatz erleichtert beispielsweise das Ändern der Schwellenwerte.
Es stehen viele Dashboard-Vorlagen zur Verfügung. Wenn Sie sich also für so etwas entscheiden, müssen Sie nicht einmal eine von Grund auf neu erstellen. Schauen Sie sich zum Beispiel Start Bootstrap und Creative Tim an .
▍Teststrategien für historische Daten
Viele Börsen bieten Kunden Zugriff auf historische Preisdaten. Wenn Sie solche Daten benötigen, sind diese in der Regel leicht zu erhalten.
Ihre Verwendung ist sehr nützlich, um Handelsstrategien zu testen, bevor sie tatsächlich angewendet werden. Dadurch kann eine Simulation mit historischen Daten und falschem Geld ausgeführt werden. Auf diese Weise können Sie feststellen, wie gut die Schwellenwerte funktionieren würden, und diese Werte gegebenenfalls ändern.
▍Zusatzinformationen zu Schwellenwerten und Ansprüchen
Bei der Bestellung sind einige Dinge zu beachten.
Zunächst müssen Sie wissen, dass es zwei Arten von Aufträgen gibt: Limit- und Market-Aufträge. Wenn Sie darüber überhaupt nichts wissen, sollten Sie unbedingt spezielle Literatur lesen. Ich werde diese Ideen in wenigen Worten erklären.
Marktaufträge sind Aufträge, die zum aktuellen Marktpreis ausgeführt werden. In den meisten Fällen bedeutet dies ihre sofortige Umsetzung.
Limit Orders hingegen sind Orders, die einen Preis angeben, der unter dem Markt (bei Kaufaufträgen) oder über dem Markt (bei Verkaufsaufträgen) liegt. Gleichzeitig gibt es keine Garantie dafür, dass diese Aufträge ausgeführt werden, da der Preis möglicherweise nicht den angegebenen Wert erreicht.
Die Stärke von Limit Orders besteht darin, dass sie es ermöglichen, unter Berücksichtigung von Marktbewegungen Aufträge dort zu platzieren, wo nach Ansicht des Händlers der Preis liegen kann.
Darüber hinaus werden für solche Aufträge in der Regel niedrigere Provisionen erhoben als für Marktaufträge. Dies liegt an der Tatsache, dass das, was als "Abnehmergebühr" bezeichnet wird, normalerweise auf Marktaufträge angewendet wird und was normalerweise als "Herstellergebühr" bezeichnet wird, um Aufträge zu begrenzen.
Die Gründe, warum diese Provisionen so genannt werden, sind, dass jeder, der eine Marktorder aufgibt, einfach den aktuellen Marktpreis „nimmt“. Und Limit Orders liegen außerhalb der Marktpreise, sie erhöhen die Liquidität des Marktes und schaffen infolgedessen einen „Markt“, für den ihre Schöpfer mit niedrigeren Provisionen belohnt werden.
Bitte beachten Sie, dass der Bot, den wir hier in Betracht ziehen, am besten für die Arbeit mit Marktaufträgen geeignet ist.
Zum Abschluss des Gesprächs über Provisionen möchte ich darauf hinweisen, dass bei der Festlegung des Werts
PROFIT_THRESHOLDauch Provisionen berücksichtigt werden sollten.
Um einen Gewinn zu erzielen, muss der Bot zuerst die BUY-Operation und dann die SELL-Operation ausführen. Dies bedeutet, dass die Provision zweimal berechnet wird.
Infolgedessen muss der Bot so konfiguriert werden, dass der Gewinn aus Verkäufen zumindest die Provisionen abdeckt. Andernfalls wird der Bot mit Verlust handeln.
Lassen Sie uns darüber nachdenken und von der Annahme ausgehen, dass Provisionen verwendet werden, die nicht von der Menge der Anwendung und der Art des Vorgangs abhängen. Die Provision für den Kauf eines Vermögenswerts für 100,00 USD beträgt also 0,50 USD. Wenn dieser Vermögenswert für 100,75 USD verkauft wird und dieselbe Provision berechnet wird, stellt sich heraus, dass der Bruttogewinn 0,75% beträgt. Tatsächlich handelt es sich hier jedoch um einen Nettoverlust von 0,25%.
Stellen Sie sich nun vor, Ihr Bot schließt Trades immer mit einem Nettoverlust. In einer solchen Situation können Sie schnell viel Geld verlieren.
Ergebnis
Mein Hauptziel war es, die Konzepte aufzuzeigen, die Sie bei der Entwicklung von Trading Bots kennen müssen. Ich habe versucht, alles so zu beschreiben, dass es auch für diejenigen verständlich war, die noch nie zuvor an der Börse gehandelt hatten. Gleichzeitig habe ich die Erzählung nicht an eine bestimmte Programmiersprache gebunden.
Ich ging davon aus, dass die Leser dieses Artikels wissen, wie HTTP-Anfragen mit der Programmiersprache ihrer Wahl gestellt werden. Deshalb habe ich mich nicht mit den Details der Programmierung befasst und mich auf andere Dinge konzentriert.
Ich habe dir alles gesagt, was ich über die Entwicklung von Trading Bots wollte. Hoffentlich können Sie jetzt Ihren eigenen Bot erstellen.
Verwenden Sie Trading Bots?
