Hi zusammen,
wie schon
HIER öfters erwähnt, arbeite ich an einem Bot der für mich das Trading übernimmt. Um den Beitrag zur Bot-Entwicklung nicht mit Off-Topic zu überfluten, eröffne ich diesen Beitrag um eine bessere Anlaufstelle zu bieten. Nun aber zu dem was hinter dem Projekt "SpreadBot 1000" steckt...
Hi zusammen,
beim Projekt "SpreadBot 1000", dem Bitcoin - Altcoin Trading Bot...
Was und warum SpreadBot 1000Die Idee zum eigenen Trading Bot kam mir, als ich angefangen habe den Bot von "
asodinis" aufzubohren und so zu gestalten, was ich persönlich erwarten würde. Da meine Änderungen zu keinem Update von asodinis kompatibel waren und ich zu stark vom Entwickeln angefixt war, habe ich ein eigenes Projekt aufgesetzt und nach und nach weiter entwickelt. Anfangs sollte der Bot rein Arbitrage von Altcoins zwischen zwei Exchanges machen und mittlerweile bedient der Bot bis zu sechs Exchanges gleichzeitig und kann im Arbitrage, DynamicRebalance (Antizyklisch), SpreadTrading und im LimitTrading handeln.
Da hier im Forum ein hohen Interesse an Trading Bots gibt, habe ich mich entschlossen den Bot in eine stabile Version zu bringen und Interessierten gegen ein Entgelt anzubieten.
Hinweise- Review Schreiber: Review von whyte, Review von hanspeter77
- Entgeltmodell: Lizenz - Der Bot kann für den genannten Preis erworben und einmalig weiter verkauft werden. Beim Weiterverkauf erlischt das eigene Nutzungsrecht und geht auf den Käufer über. Installationsort kann frei gewählt werden. Bugfixes und Weiterentwicklung von bestehenden Funktionen sind kostenfrei und inklusive. Es wird sich das Recht vorbehalten Spezielle neue Features gegen ein zusätzliches Entgelt anzubieten (DLC).
- Unterstützte Coins: Der Bot arbeitet mit jedem Altcoin der gegen Bitcoin auf den jeweiligen Börsen gehandelt wird. Da es sich um ein Bitcoin-Altcoin TradingBot handelt wird zum Beispiel DOGE-BTC gehen, aber DOGE-XRP nicht.
- Unterstützte FIATs: Der Bot arbeitet mit folgenden Währungen gegen Bitcoin zusammen:
BTC-e -> USD, EUR, RUR
Bitstamp -> USD, EUR
BTer -> CNY
Bleutrade -> USD
- Marktanalyse: Der Bot besitzt aktuell kein Modul zu Marktanalyse, noch kauft er eigenverantwortlich neue Bestände ein. Er handelt mit dem Portfolio was im Rahmen der gewählten Strategie vorhanden und freigegeben ist.
Der Nutzer des Bots ist also der mündige Portfoliobesitzer und entscheidet selber über Aufstockung und Reduktion!
Preis und LizenzezerwerbDokumentationFeatures- Arbitrage Trading Strategie
- Antizyklisch / Dynamic Rebalance Trading Strategie
- Spread Trading Strategie
- Limit Trading Strategie
- Unterstützung für FIAT
- Coin Balance Funktion
- Snapshot Funktion
- Adaptive Sell Funktion
- Suspend Funktion
- Stop Loss Funktion
- Exchanges sind
Cryptsy, BTC-e, Poloniex, Bittrex, BTer, Bleutrade, Bitstamp - Web Interface / Live Board
- Global konfigurierbare Trading Parameter
- Individuell pro Coin konfigurierbare Trading Parameter
- Definition eigener Deposit Adressen
- Mandrill oder Sendgrid Mail Benachrichtigungen
- ...
TechnologienGetestete Systeme- Raspberry PI mit Arch Linux
- Windows mit XAMPP
KonfigurationDie Konfiguration des Bots erfolgt über JSON und PHP Dateien. Zum einen werden hier Datenbank Informationen hinterlegt, Tradingstrategien, Tradingparameter und manuelle Deposit Adressen definiert.
Es ist möglich dedizierte Coins und Börsen fürs Trading zu aktivieren. Trading Parameter können den eigenen Wünschen und zur Laufzeit angepasst werden.
Folgend ein Auszug aus der "config.json"
{
"cryptsy-publickey": "",
"cryptsy-privatekey": "",
"poloniex-key": "",
"poloniex-secret": "",
"bittrex-key": "",
"bittrex-secret": "",
"bter-key": "",
"bter-secret": "",
"mandrill-api-key": "",
"mail-address": "",
"strategy-arbitrage": true,
"min-profit-factor": "1.01",
"min-buy-profit": "0.00010000",
"min-sell-profit": "0.00005000",
"buy-increase-parameter": "0.00000001",
"auto-btc-balance": true,
"auto-altcoin-balance": false,
"min-balance-factor": "1.10",
"strategy-dynamicRebalance": true,
"dynamic-rebalance-factor": "1.08"
}
Folgend ein Auszug aus der "config.json"
{
"Arbitrage":
{
"BLK": {},
"LTC":
{
"min-profit-factor": "1.015",
"min-buy-profit": "0.00005500",
"min-sell-profit": "0.00002500",
"buy-increase-parameter": "0.00000002"
},
"WDC": {}
},
"DynamicRebalance": {},
"SpreadTrading": {},
"LimitTrading": {}
}
ArbitrageMan aktiviere die zu handelnden Altcoins und Exchanges. Auf den Exchanges, wo der Bot verkaufen soll, werden die jeweiligen Altcoins hinterlegt und los gehts. Der Bot prüft die aktuellen Orderbücher, ob nach Abzug von Handelsgebühren und Transfergebühren mindestens der voreingestellte Gewinn über bleibt. Wenn das der Fall ist löst er direkt einen Kauf und Verkauf aus. Wenn nicht, überprüft er ob ein verschobener Arbitrage Handel möglich ist. Wenn auch das nicht geht, legt er sich wieder schlafen. Mit verschobener Arbitrage Handel meins ich, dass der Bot eine Kauf-Order in den mark stellt und darauf wartet bedient zu werden. Wenn das der Fall ist verkauft er die gleiche Anzahl auf den profitablen Handelsplätzen.
Antizyklisch / Dynamic RebalanceWer generell etwas zur Strategie erfahren möchte, bitte den Beitrag von kneim lesen:
HIERDer Bot implementiert aktuell eine einfache, aber aus meiner aktuellen Sicht absolut ausreichende Variante des Antizyklischen Handelns. Bei Aktivierung werden die aktivierten Altcoins aufgenommen und zum aktuellen Marktpreis festgehalten. Der Bot prüft nach einer definierten Zeitspanne, ob eine Änderung von X prozent (konfigurierbar) stattgefunden hat. Bei einem Preisanstieg werden Coins entsprechen der Ration 50:50 verkauft, beim Fallen entsprechend verkauft. 50:50 bedeutet, dass nur 50% des Gewinns in BTC umgewandelt wird, respektiv Coins gekauft werden.
Eine Altcoin spezifische Gewichtung ist nicht implementiert, um die Komplexität zu verringern.
Spread TradingBei der Spread Trading Strategie handelt der Bot nur auf der jeweiligen Börse innerhalb des Altcoin/Bitcoin Paares und versucht Kursunterschiede zwischen Kauf- und Verkaufangebote zu nutzen. Dabei wird der Bot für einen vorgegebenen Gesamtwert pro Trade (Stake) Coins erwerben und im definierten Spread wieder zu verkaufen. Diese Strategie funktioniert sehr gut in stark schwankenden und/oder Märkten mit einem hohen Handelsvolumen pro Tag. Diese Strategie ist nicht gut für FIAT mit kleinem Spread geeignet. Daher sind die Börsen Bittrex und BTC-e zu bevorzugen. Poloniex und BTer zeigen eine mittlere Performance innerhalb ihrer Märkte und können bei zu hohem Stake nicht effektiv handeln.
Limit TradingBei der Limit Trading Strategie handelt der Bot nur auf der jeweiligen Börse innerhalb des Altcoin/Bitcoin Paares und versucht Kursunterschiede im steigenden Markt zu nutzen. Im Gegensatz zum Spread Trading wird hier nicht rein auf den Unterschied zwischen Kauf- und Verkaufsangeboten geachtet, sondern geschaut ob die aktuelle Marktlage sich im 24 Stunden horizontalen Korridor bewegt oder am Ausbrechen des Trends sich befindet. Dabei wird der Bot für einen vorgegebenen Gesamtwert pro Trade (Stake) Coins erwerben und im definierten Korridor wieder zu verkaufen. Diese Strategie funktioniert sehr gut in leicht schwankenden und/oder Märkten mit einem hohen Handelsvolumen pro Tag. Diese Strategie eignet sich gut für FIAT.
Coin BalanceEin Modul was nach einer konfigurierten Zeitspanne die Verteilung der Coins auf den Börsen prüft und entsprechend umverteilt. Eine Umverteilung wird zudem nur durchgeführt, wenn keine aktuellen Orders oder Withdraws vorliegen, um die Konsistenz des Portfolios zu schützen. Da sich eine Umverteilung negativ auf den profit auswirkt, sollte der Wert nicht zu hoch angesetzt werden.
SnapshotJede Stunde wird ein Snapshot der aktuellen Profite und BTC Verteilung gezogen und im Web Frontend angezeigt. Weiteres Coinbasiert wird sicher folgen.
Adaptive Sell FunktiontDer Bot prüft die Verkaufsorders ob eine Teilerfüllung vollzogen wurden und Profitabilität garantiert. Wenn dem so ist, wird eine neue Verkauforder entsprechend den Proftvorgaben und Marktbedingungen erstellt
Suspend FunktionDer Bot prüft mit jedem Durchlauf, wie lange bereits die Order im Markt steht. Nach ca. einer Stunde ohne Marktbewegung / Erfüllung, wird die Order dem Markt entzogen und suspendiert, bis der Markt eine Profitabilität ermöglichen würde.
Gleiches gilt auch für die Arbitrage Instant Trades, wo bereits die Verkaufsorder, aber nicht die Kauforder erfüllt wurde. Der Bot kauft die fehlenden Coins entsprechend den Profitvorgaben nach.
Consolen Output: > Raspberry PI mit Arch Linux
> PHP und mySQL (MariaDB)
Webinterface: > Aktuelle Datenübersicht vom Bot.
> Man sieht sehr gut, dass durch den Kuranstieg bei BC einige Arbitrage Trades als auch Antizyklische Trades (Grün - Sell) durchgeführt wurden.
> Man sieht zudem, dass die Coins die im Wert gefallen sind (VIA, BTCD, LTC, POT) von der Antizyklischen Strategie nachgekauft wurden (Orange - Buy).
> Warum sind so viele Antizyklische Buy gehäuft? Hab die Strategie nach einer Testperiode wieder aktiviert und was sich über die Tage davor "angestaut" hat, wurde dann ausgeglichen.
> Chart mit den letzten 48 Stunden Snapshot Daten vom Profit.
> Passend zu den Recent Trades kann man die Antizyklischen Käufe nachvollziehen
> Chart mit den letzten 48 Stunden Snapshot Daten vom aktuellen BTC Stand auf den Börsen
> Man kann sehen, dass trotz der Antizyklischen Käufe es kaum Bewegung im BTC bestand gab, das lag daran, dass zuvor ausgelöste Arbitragen viel kompensiert haben bzw. Orders zurückgezogen wurden
> Unten seht ihr das Logbuch, was hat der Bot getan
> Übersichtsseite was ist alles so beim Coin (BC) passiert
Hoffe euch gefällt das Projekt
Darkwinde