Author

Topic: BIETE: Altcoin Arbitrage Bot [verkauft] (Read 3233 times)

newbie
Activity: 42
Merit: 0
August 20, 2014, 05:49:43 AM
#18
Die letzte Lizenz wurde verkauft. Vielen Dank!
newbie
Activity: 42
Merit: 0
August 15, 2014, 06:14:03 AM
#17
Kauft der Bot auf A ein, schickt an B, hofft das es schnell genug da is und verkauft dann auf B?

So wird das wohl funktionieren. Da ist man natürlich an einigen Stellen anfällig. Man kann sich aber relativ schnell ein paar failovers überlegen die der Bot hoffentlich schon eingebaut hat.

Genau das passiert nicht. Die Gelegenheiten für Arbitrage-Trades existieren nur für wenige Sekunden. Deshalb müssen Kauf auf Börse A und Verkauf auf Börse B praktisch gleichzeitig passieren. Und das geht nur wenn auf beiden Börsen sowohl Altcoins als auch BTC liegen.

Die Altcoins werden nach den Trades direkt von A nach B geschickt um für den nächsten Trade wieder Coins zu haben. Die BTC wallets werden erst ausgeglichen wenn ein größerer Betrag zusammengekommen ist (um Transfer fees zu sparen).

Ich hab mal aus den Logfiles einen Trade von gestern abend rausgesucht. Da siehst man recht gut wie der Bot arbeitet:

Code:
23:26:12: Checking BTCD_BTC...
23:26:12: (C->P) SPREAD:     0.00012902 BTC
23:26:12: PROJECTED PROFIT: 0.00509060 BTC
23:26:12: TRADING BTCD_BTC (44.87711296 BTCD) FROM CRYPTSY TO POLONIEX

= FUNDS ============================================
    FUNDS @ SOURCE :     0.08511799 BTC
    FUNDS @ TARGET :     1.28738191 BTCD

= OPPORTUNITY ======================================
  AVAILABLE BALANCE :     1.28738191 BTCD
  PROFITABLE AMOUNT :    44.87711296 BTCD
            MISSING :    43.58973105 BTCD
   THEORETIC PROFIT :     0.00509060 BTC
    REQUIRED INVEST :     0.16655549 BTC

= SIMULATION =======================================
         TARGET MAX :     1.28738191
         SOURCE MAX :     2.61712964
           BUY RATE :     0.00382098
         BUY AMOUNT :     1.28738191
          BUY PRICE :     0.00492890
          SELL RATE :     0.00395000
        SELL AMOUNT :     1.28688190
         SELL PRICE :     0.00507302
             PROFIT :     0.00014412

= TRADE ============================================
        SELL ORDER : 1.28688190 BTCD @ 0.00355500 BTC
         BUY ORDER : 1.28738191 BTCD @ 0.00420308 BTC

23:26:14: Array
(
    [orderNumber] => 15725217
)

23:26:15: Array
(
    [success] => 1
    [orderid] => 137211241
    [moreinfo] => Your Buy order has been placed for
1.28738191 BTCD @ 0.00420308 BTC each.
Order ID: 137211241
)

23:26:25: Checking trade results (1)...
23:26:25: TRADE SUMMARY:
PAIR: BTCD vs BTC
DIRECTION: CRYPTSY TO POLONIEX
BALANCES BEFORE / AFTER

POLONIEX:
BTCD:     1.28738191 =>     0.00050001 =    -1.28688190
 BTC:     0.11687908 =>     0.12195209 =     0.00507301

CRYPTSY:
BTCD:     3.14845258 =>     4.43583449 =     1.28738191
 BTC:     0.08511799 =>     0.08018676 =    -0.00493123

TOTAL:
       BTC:     0.00014178
      BTCD:     0.00050001
BTCD(-tx) :     0.00000001

(Transfer fee is 0.00050000)


23:26:25: Withdrawing 1.28738191 BTCD from CRYPTSY->POLONIEX...
23:26:41: Your withdrawal request #1409307 to a preapproved address has been submitted.
23:26:41: Withdrawal successful
23:27:01: Refreshing wallets...

Der Bot stellt einen Spread zwischen Kauf und Verkauf von 0.00012902 BTC fest. Theoretisch könnten 44.87711296 BTCD gehandelt werden (mit 0.00509060 BTC Profit), allerdings liegen in der Wallet bei Poloniex nur 1.28738191 BTCD. Dadurch ist der Gewinn bei diesem Trade entsprechend niedriger.

Die Orders werden mit 1-Sekunden Abstand an die Exchanges geschickt und kurz darauf ist ein Profit von zumindest 14178 Satoshi realisiert. Die BTCD werden anschließend sofort von Cryptsy nach Poloniex übertragen um für den nächsten Trade bereit zu sein.

Warum lädst du nicht per API immer nur die Übersicht? Zum Arbitrage erkennen reicht das und nur die Coins die auch wirklich Kandidaten sind muss man das Order Book selbst auslesen ob die Order groß genug sind.

Das hatte ich in der Anfangszeit tatsächlich so versucht. Allerdings scheint die Marktübersicht zumindest ein paar Sekunden gecached zu sein, so dass beim Abfragen der Orderbücher andere Werte auftauchten. Deshalb prüft der Bot nun nur noch die Orderbücher.

Gruß,
Sebastian
legendary
Activity: 1237
Merit: 1010
August 15, 2014, 05:34:36 AM
#16
Kauft der Bot auf A ein, schickt an B, hofft das es schnell genug da is und verkauft dann auf B?

So wird das wohl funktionieren. Da ist man natürlich an einigen Stellen anfällig. Man kann sich aber relativ schnell ein paar failovers überlegen die der Bot hoffentlich schon eingebaut hat.
Sy
legendary
Activity: 1484
Merit: 1003
Bounty Detective
August 15, 2014, 03:56:23 AM
#15
Kauft der Bot auf A ein, schickt an B, hofft das es schnell genug da is und verkauft dann auf B?


Quote
Der Hauptgrund sind die Beschränkungen der Exchanges. Ich darf nur alle x Sekunden eine Anfrage stellen. Bei der Menge an Altcoins dauert es daher Minuten, bis alle Orderbücher abgefragt sind. Dabei gehen natürlich einige Gelegenheiten flöten, da diese oft nur für einige Sekunden existieren. Um also mehr BTC zu verdienen müsste ich mehrere Accounts mit neuen API Keys bei den Exchanges haben, mit verschiedenen IPs arbeiten und mehrere Instanzen des Bots betreiben.
Warum lädst du nicht per API immer nur die Übersicht? Zum Arbitrage erkennen reicht das und nur die Coins die auch wirklich Kandidaten sind muss man das Order Book selbst auslesen ob die Order groß genug sind.
newbie
Activity: 42
Merit: 0
August 14, 2014, 05:40:13 PM
#14
Hi Xer0,

der Bot kauft dort Altcoins nach um mehr Arbitrage-Möglichkeiten zu haben. Laut "Management"-Box auf der Live-Seite waren das zuletzt

5256.3 BLU  
70.0 LTCX
5536.2 XLB  
56.0 HUC  
54.7 HUC  
347.4 VOOT

Leider ist die kleine Amazon EC2 Instanz mit dem den vielen Betrachtern überfordert und die Datenbank steigt regelmäßig aus, so dass der Bot handlungsunfähig wird. Daher ist z.Zt die Live-Ansicht nicht sonderlich repräsentativ...

NACHTRAG: Ich habe den obigen Link abgeändert ( http://54.75.161.34/ ). Ich musste die Instanz aufgrund zu vieler Zugriffe neu starten.
hero member
Activity: 826
Merit: 1000
°^°
August 14, 2014, 02:22:02 PM
#13
was sind denn die letzten 2 “Abstürze“ im Chart? Auszahlungen?
full member
Activity: 256
Merit: 101
August 14, 2014, 11:50:51 AM
#12
Moin...

is die Lizenz noch zu haben?? falls ja, bidde pn...

thx
fhh
legendary
Activity: 1206
Merit: 1000
August 13, 2014, 09:46:33 AM
#11
Danke für den coolen Testbericht.
Hatte mich auch schon vorher zum Kauf entschieden, um ein bisschen zu spielen;)
Hab bisher nur die Anleitung fix überflogen und konnte der gedanklich auch sehr gut folgen.
legendary
Activity: 1372
Merit: 1000
CTO für den Bundesverband Bitcoin e. V.
August 13, 2014, 07:57:46 AM
#10
Resümee zum Altcoin Arbitrage Bot von Asodinis:

Hallo zusammen,

da mich ja schon einige per PM angeschrieben haben wie der Bot so ist gebe ich Euch hier ein Resümee.

System-Umgebung bei mir:

  • OS: Windows Server 2008 R2 x64 8mit allen SP & HF)
  • Web-Server: Xampp mit mySQL & PHP (jeweils letzte Version)

Lieferumfang von Asodinis:

  • ZIP-Datei mit allen erforderlichen Dateien (308 kB).
  • Anleitung in englisch, ausgelegt für Linux-Installation Ubuntu / Debian.

Nach dem entpacken der ZIP-Datei habe ich mir erstmals die Anleitung zu Gemüte geführt und die linuxspezifischen Schritte für meine Windows-Umgebung (gedanklich im Kopf) angepaßt. Da mein Server schon mit mySQL, PHP und Apache Webserver ausgestattet war entfielen also diese Setup- & Konfiguration-Schritte für mich.  Grin

Der erste echte Arbeitsschritt war das Erstellen der mySQL-Datenbank. Abweichend von der Anleitung habe ich dies über meine Weboberfläche erledigt. - Eine entsprechnede .SQL-Datei wird mitgeliefert, somit ist dies in wenigen Schritten vollständig erledigt.

Als nächstes editiert man die web/config.inc.php entsprechend den eigenen Gegebenheiten. - Auch das ist in Sekunden erledigt.

Danach habe ich mich bei Cryptsy & Poloniex eingeloggt und mir die API-Keys erstellt bzw. freigeschaltet.
Im nächsten Schritt wurde die config.json editiert. - Hier kommen u.a. die API-Keys zum Einsatz.
Alle weiteren Parameter sind einzeln und recht ausführlich in der mitgelieferten Read.me erklärt.

Optional folgt in der Anleitung nun die Konfiguration des Webserver. - Den will ich natürlich auch nutzen.
Die Konfiguration des nginx-Webserver sieht in der read.me erstmal kompliziert aus, jedenfalls für Windows-Jünger. - Ist es aber eigentlich nicht.  Wink Ich habe einfach die Konfiguration analog zu meinen anderen Installation unter Xampp angepasst und das funktioniert auch einwandfrei.

Nach einen Restart war dann der große Moment gekommen und das Web-Interface konnte aufgerufen werden.  Smiley
Das hatte geklappt, wenn auch noch keine Werte drin waren.

Als nächstes habe ich meinen PHP-Pfad zur Umgebungsvariablen PATH hinzugefügt, mir eine Einzeiler-BAT gebastelt und den BOT darüber aufgerufen.

ET VOILÀ --> Im PHP-Fenster und in der Web-Oberfläche erscheint "ARBITRATOR LAUNCHING"  Grin

Es dauert einen Moment, dann kommen weitere Meldungen und nach ca. 2 Minuten waren die Wallets & Coin-Daten geladen und im Web-Interface sichtbar.

Sehr schön. - Nun noch gemäß Anleitung eine Anpassung für den "restock_funds" machen; ich habe das aus Bequemlichkeit wieder über meine mySQL-Oberfläche gemacht. Aber egal wie, es hat funktioniert.

Tja, das war es schon was auf Seiten BOT & Server zu machen war.

Insgesamt habe ich für das Setup max. 30 Min. gebraucht und es war alles dabei was benötigt wurde. Wer natürlich erst noch einen Web-Server, PHP & mySQL aufsetzen muß wird entsprechend länger brauchen.  Cheesy

Nicht verschweigen möchte ich Euch die einzige Fehlermeldung. Kurz nach dem Start meldet PHP:

Quote
18:54:19: ARBITRATOR V1.1 launching...
18:54:41: Mandrill mailing error occurred: Mandrill_HttpError - API call to messages/send failed: SSL certificate problem: unable to get local issuer certificae
18:54:41: Refreshing wallets...
18:54:47: doManage()
18:54:47: balanceBTC()

Dies hat aber nichts mit dem BOT zu tun, sondern liegt an einer fehlenden CACERT.pem in meiner Installation.
Selbige lädt man sich einfach herunter und fügt einen Parameter in die PHP.ini ein.
Hierzu hat mich Asodinis übrigens prompt & kompetent unterstützt.
Danach funktioniert auch die Email-Benachrichtigung.  Cheesy

Wenn man diesen Punkt erreicht hat, folgt die Strafarbeit.  Shocked

Als erstes loggt man sich bei Poloniex ein und generiert für alles Coins die der Bot traden soll / kann eine entsprechende Adresse.
Diese fügt man anschließend bei Cryptsy als "trusted address" hinzu, autorisiert jede Adresse per 2FA und bestätigt anschließend nochmals jede Adresse per Link aus der Cryptsy-Confirmation-Email.

Da ich 41 Paare habe die der Bot traden soll habe ich also 41 mal einen 2FA eingegeben und in 41 Emails auf Links geklickt.
DAS war der längste und schwierigste Teil der ganzen Installation.

Aber das braucht man natürlich nur einmal machen bzw. nur noch anpassen wenn neue Coins kommen bzw. Coins auf einer der Börsen delistet werden.

Danach sendet man noch BTC an die Börsen und der BOT kann loslegen. - Was er dann auch tut.  Grin


FAZIT: Ich kann diesen BOT uneingeschränkt empfehlen. Die Installation ist unproblematisch und der Support durch Asodinis ist schnell & kompetent.


Preis-Leistung: Der Preis ist mit 0.5 BTC mehr als fair.

Meine Empfehlung: Kaufen solange noch Lizenzen verfügbar sind.


Gruß Carsten.
newbie
Activity: 42
Merit: 0
August 13, 2014, 04:00:15 AM
#9
Hi ffh,

du brauchst auf den Börsen Altcoins und BTC, damit der Handel funktioniert. Wenn du bereits Altcoins besitzt kanns du die natürlich zu den beiden Börsen transferieren und der Bot handelt dann damit.

Gruß,
Sebastian
fhh
legendary
Activity: 1206
Merit: 1000
August 13, 2014, 01:59:02 AM
#8
Kann man den Bot auch direkt mit Altcoins füttern?
newbie
Activity: 42
Merit: 0
August 12, 2014, 08:53:47 AM
#7
Update 11-08-2014

In den Wallets beider Exchanges liegen nun zusammen ca 0.17 BTC. Das heißt, dass der initiale Invest in die Altcoins (0.1 BTC) nahezu vollständig wieder reingeholt wurde. Es lässt sich damit auch abschätzen, wann der Kauf einer Lizenz sich amortisiert hat.

Bisher wurden drei Lizenzen sind verkauft.

Seit einigen Stunden ist der API-Zugriff auf Cryptsy durch den DDOS-Schutz Incapsula blockiert. Ich hab ein Support-Ticket dafür eröffnet. Bis das Problem gelöst ist, bleibt der Bot offline.

Update 12-08-2014

Das API-Problem bei Cryptsy war gegen Abend gelöst und mittlerweile hat der Support auch geantwortet, dass Änderungen an der Infrastruktur zu dem Problem geführt haben. Der Bot ist seit gestern abend wieder aktiv und hat seitdem rund 30, sowie insgesamt bereits 173 Arbitrage-Trades durchgeführt.

Von den ursprünglich 8 Lizenzen sind noch 3 verfügbar.

Gruß,
Sebastian
legendary
Activity: 3136
Merit: 1176
August 11, 2014, 08:36:41 AM
#6
hätte intresse
newbie
Activity: 42
Merit: 0
August 09, 2014, 08:12:36 AM
#5
Hi Carsten,

die Konfiguration erfolgt in einer Datei, im JSON-Format. Der Bot kann durchlaufen, die Änderungen werden automatisch geladen. Ich editiere die Datei direkt im Terminalfenster, da man meist nur eine neue Zeile einfügen oder eine Existierende ändern muss.

Das Webinterface ist nur zum Betrachten. Wenn ich dort Konfigurationsmöglichkeiten einbauen würde, dann müsste ich mir auch Gedanken über Authentifizierung und Co machen. Ich denke das ist den Aufwand nicht wert.

So sieht die Konfiguration aus:

Code:
{
    "profitAddress": "1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
   
    "poloniex-key": "XXX",
    "poloniex-secret": "XXX",
   
    "cryptsy-key": "XXX",
    "cryptsy-secret": "XXX",
   
    "database-host": "localhost",
    "database-name": "XXX",
    "database-user": "XXX",
    "database-password": "XXX",
   
    "mail-address": null,
   
    "blockedCoins": [

        "SRC",
        "MZC",
        "SPA",
        "SXC",
        "SMC",
        "MAX",
        "LOVE",
        "FRK",
        "GLC",
        "UTC",
        "MTS",
        "KDC",
        "PMC",
        "TWE",
        "CON",
        "GPUC",
        "FAC",
        "SRG",
        "SUM",
        "BTCS",
        "HVC",
        "H2O",
        "LTC",
        "Points"
    ],

    "transferFeesCryptsy": {

          "AC": 0.1,
         "AUR": 0.005,
          "BC": 0.5,
         "BTC": 0.0005,
         "BLU": 0.0001,
        "BTCD": 0.0005,
        "COMM": 0.1,
       "CINNI": 0.1,
        "CACH": 0.1,
       "CRYPT": 0.00001,
         "CNL": 0.00001,
         "DRK": 0.1,
        "DOGE": 1,
        "EMC2": 0.1,
         "EXE": 0.1,
         "FLT": 0.1,
        "FRAC": 0.3,
         "FRK": 0.00002,
         "GLC": 0.01,
         "GUE": 0.0002,
         "HUC": 0.1,
         "HVC": 0.1,
         "IFC": 1,
         "IXC": 0.001,
         "KDC": 0.1,
         "KEY": 0.0001,
         "LTC": 0.005,
        "LTCX": 0,
         "MAX": 0.1,
         "MIN": 0.00001,
        "MINT": 0.1,
         "MYR": 0.1,
         "MZC": 0.1,
        "NAUT": 0.1,
         "NMC": 0.015,
        "NOBL": 0.3,
         "NRS": 0.1,
         "PPC": 0.02,
         "POT": 0.05,
          "SC": 0.0001,
         "SPA": 0.1,
         "SXC": 0.1,
         "SMC": 0.1,
        "SYNC": 0.00000002,
         "TOR": 0.0001,
         "UTC": 0.1,
         "URO": 0.002,
         "VRC": 0.1,
        "VOOT": 0.00001,
         "VTC": 0.1,
          "WC": 0.1,
         "WDC": 0.15,
          "XC": 0.1,
         "XPM": 0.01,
         "XLB": 0.1,
         "___": 0
    },

    "transferFeesPoloniex": {
       "1CR": 0.1,
       "ABY": 0.1,
       "AC": 0.1,
       "ADN": 0.1,
       "AEON": 0.1,
       "AERO": 0.1,
       "AIR": 0.1,
       "AUR": 0.1,
       "AXIS": 0.1,
       "BANK": 0.1,
       "BBL": 0.1,
       "BBR": 0.1,
       "BC": 0.1,
       "BCC": 0.1,
       "BCN": 11,
       "BDC": 0.1,
       "BDG": 0.1,
       "BELA": 0.1,
       "BITS": 0.1,
       "BLU": 0.1,
       "BNS": 0.1,
       "BONES": 0.1,
       "BOST": 0.1,
       "BTC": 0.001,
       "BTCD": 0.1,
       "BTCS": 0.1,
       "BTM": 0.1,
       "BURN": 0.1,
       "CACH": 0.1,
       "CAI": 0.1,
       "CC": 0.1,
       "CGA": 0.01,
       "CHA": 0.1,
       "CINNI": 0.1,
       "CLAM": 0.1,
       "CNL": 0.1,
       "CNOTE": 0.1,
       "COMM": 0.1,
       "CON": 0.1,
       "CORG": 0.1,
       "CRYPT": 0.1,
       "CURE": 0.1,
       "CYC": 0.1,
       "DIEM": 0.1,
       "DIME": 1,
       "DIS": 0.1,
       "DOGE": 0.1,
       "DRK": 0.1,
       "DRKC": 0.1,
       "DRM": 0.1,
       "DVK": 0.1,
       "EAC": 1,
       "EBT": 0.1,
       "ECC": 0.1,
       "EFL": 0.1,
       "EMC2": 0.1,
       "EMO": 0.1,
       "ENC": 0.1,
       "eTOK": 0.01,
       "EXE": 0.1,
       "FAC": 0.1,
       "FCN": 0.1,
       "FLAP": 0.1,
       "FLT": 0.1,
       "FOX": 0.1,
       "FRAC": 0.1,
       "FRK": 0.1,
       "FRQ": 0.1,
       "FVZ": 0.1,
       "FZ": 0.1,
       "GDN": 0.1,
       "GIAR": 0.1,
       "GLB": 0.1,
       "GML": 0.1,
       "GNS": 0.1,
       "GOLD": 0.1,
       "GPC": 0.1,
       "GPUC": 0.1,
       "GRC": 0.1,
       "GRS": 0.1,
       "GUE": 0.1,
       "H2O": 0.1,
       "HIRO": 0.1,
       "HOT": 0.1,
       "HUC": 0.1,
       "HVC": 0.1,
       "IFC": 10,
       "ITC": 0.1,
       "IXC": 0.1,
       "JLH": 0.1,
       "JPC": 0.1,
       "JUG": 0.1,
       "KDC": 0.1,
       "KEY": 0.1,
       "LC": 0.1,
       "LCL": 0.1,
       "LEAF": 0.1,
       "LGC": 0.1,
       "LOL": 0.1,
       "LOVE": 0.1,
       "LTC": 0.01,
       "LTCX": 0.1,
       "MAID": 11,
       "MAST": 0.1,
       "MAX": 0.1,
       "MCN": 0.1,
       "MEC": 0.1,
       "METH": 0.1,
       "MIL": 0.1,
       "MIN": 0.1,
       "MINT": 0.1,
       "MMC": 0.1,
       "MNS1": 0.1,
       "MON": 0.1,
       "MRC": 0.1,
       "MSC": 0.1,
       "MTS": 0.1,
       "MUN": 0.1,
       "MYR": 1,
       "MZC": 0.1,
       "N5X": 0.1,
       "NAS": 0.1,
       "NAUT": 0.1,
       "NAV": 0.1,
       "NC2": 0.1,
       "NHZ": 0.1,
       "NL": 0.1,
       "NMC": 0.05,
       "NOBL": 0.1,
       "NOTE": 0.1,
       "NRS": 0.1,
       "NTX": 0.1,
       "NXT": 10,
       "PAND": 0.1,
       "PAWN": 0.1,
       "PC": 0.1,
       "PIGGY": 0.1,
       "PLX": 0.1,
       "PMC": 0.1,
       "POT": 0.1,
       "PPC": 0.1,
       "PRC": 0.1,
       "PRT": 0.1,
       "PTS": 0.1,
       "Q2C": 0.1,
       "QCN": 0.1,
       "QORA": 5,
       "RBY": 0.1,
       "REDD": 0.1,
       "RIC": 0.1,
       "RZR": 0.1,
       "SC": 0.1,
       "SHIBE": 0.1,
       "SHOP": 0.1,
       "SLR": 0.1,
       "SMC": 0.1,
       "SOC": 0.1,
       "SPA": 0.1,
       "SRC": 0.1,
       "SRG": 0.1,
       "SUM": 0.1,
       "SUN": 1,
       "SXC": 0.1,
       "SYNC": 0.001,
       "TAC": 0.1,
       "TOR": 0.1,
       "TRUST": 0.1,
       "TWE": 0.1,
       "URO": 0.001,
       "USDE": 0.1,
       "UTC": 0.1,
       "UVC": 0.1,
       "VIA": 0.1,
       "VOOT": 0.1,
       "VRC": 0.1,
       "VTC": 0.1,
       "WC": 0.1,
       "WDC": 0.1,
       "WOLF": 0.5,
       "X13": 0.1,
       "XAP": 0.1,
       "XBC": 0.1,
       "XC": 0.1,
       "XCP": 5,
       "XDN": 0.1,
       "XHC": 0.1,
       "XLB": 0.1,
       "XMR": 0.1,
       "XPM": 0.1,
       "XSI": 0.1,
       "XSV": 0.1,
       "XXC": 0.1,
       "YACC": 0.1,
       "YANG": 0.1,
       "YC": 0.1,
       "YIN": 0.1
   }
}
legendary
Activity: 1372
Merit: 1000
CTO für den Bundesverband Bitcoin e. V.
August 09, 2014, 08:01:59 AM
#4
Danke für Deine Antwort.

Kannst Du mal einen Auszug aus der Konfig posten?
Ist es geplant dass die Pflege z.B. der FEE später auch im Web-IF gemacht werden kann oder wird dies in einer Konfig bleiben?


Gruss Carsten.
newbie
Activity: 42
Merit: 0
August 09, 2014, 07:44:50 AM
#3
Hi Carsten,

die Meldung "NO TRANSFER FEE KNOWN FOR CRYPTSY" erscheint, wenn die Transfergebühren für einen Coin nicht bekannt sind. Diese sind wichtig um Profite korrekt berechnen zu können und unnötige transfers zwischen Exchanges zu vermeiden.

In der mitgelieferten Config sind für viele Coins bereits Gebühren eingetragen. Lediglich für alle neuen Coins müssen diese nachgetragen werden. Bei allen Coins, für die die Meldung momentan erscheint, ist die Wallet bei Cryptsy im Wartungsmodus; deshalb kann ich die Gebühren nicht einpflegen.

FROZEN sind Paare, die bei Poloniex im Wartungsmodus sind. ON HOLD sind Paare die kürzlich getraded wurden. Diese sind für eine gewisse Zeit gesperrt.

Der "500 Internal Server Error" tritt z.Zt. gehäuft bei Cryptsy auf. Laut News auf deren Seite bauen die grad an ihren Clustern.

Die meisten Trades sind in den letzten Stunden bei Poloniex "zu Geld" gemacht worden. Deshalb ist die BTC Wallet bei Cryptsy zur Zeit leer. Das Minimum für einen BTC transfer zwischen den beiden Exchanges war im Code noch auf 0.1 festgesetzt (Um unnötige Transfers und damit Gebühren zu sparen). Bei einer Gesamtinvestition von 0.2 BTC funktioniert der Ausgleich dann natürlich nicht. Ich habe das Limit grad reduziert und die Wallets gleichen sich nun aus.

Grundsätzlich werden alle handelbaren Paare auch gehandelt. Spezielle Coins können jedoch in der Konfiguration ausgeschlossen werden.

Gruß,
Sebastian
legendary
Activity: 1372
Merit: 1000
CTO für den Bundesverband Bitcoin e. V.
August 09, 2014, 04:50:13 AM
#2
Hallo Sebastian,

der Bot gefällt mir schon sehr gut. Allerdings sehe ich immer wieder Meldungen "NO TRANSFER FEE KNOWN FOR CRYPTSY".
Müssen die händisch gepflegt werden oder klemmt da was?
Ebenfalls sehe ich immer wieder Meldungen mit "Frozen" und auch 500 - Internal Server Error.

Dann noch ne Frage zu den Wallets: Aktuell ist C bei 0.00 und P bei 0.11. - Heisst dass das alle BTC bei C in Altcoins investiert sind?

EDIT: Kann man eigtl. konfigurieren welche Paare überhaupt getraded werden sollen oder geht es grundsaätzlich über alle?
EDIT: LOG gekürzt.

Gruß Carsten.


Hier der Log-Auszug:

Quote
[11:51:06] doManage()
[11:51:05] Refreshing wallets...
[11:50:25] Skipping sendmail
[11:50:25] Error during restockAltcoins(): [CRYPTSY] Invalid data received: (500 - Internal Server Error)
#0 /home/admin/arbitrator/cryptsy_api.php(160): Cryptsy->api_query('getinfo')
#1 /home/admin/arbitrator/cryptsy_api.php(166): Cryptsy->getInfo()
#2 /home/admin/arbitrator/coinmanager.php(184): Cryptsy->get_balances()
#3 /home/admin/arbitrator/coinmanager.php(65): CoinManager::restockAltcoins()
#4 /home/admin/arbitrator/arbitrator.php(114): CoinManager::doManage()
#5 {main}
[11:50:25] [CRYPTSY] Invalid data received: (500 - Internal Server Error)
[11:50:25] [CRYPTSY] Invalid data received: (500 - Internal Server Error)
[11:50:24] [CRYPTSY] Invalid data received: (500 - Internal Server Error)
[11:50:23] Restocking for 0.00500000 BTC
[11:50:23] Restock cash: 0.01476081 BTC
newbie
Activity: 42
Merit: 0
August 09, 2014, 04:17:41 AM
#1
Hallo zusammen,

ich habe bereits einen Thread im englischen Teil des Forums erstellt. Leider verschwindet mein Angebot dort ziemlich schnell auf Seite 2, daher möchte ich den Bot gerne auch hier anbieten:

Ich biete einen Bot an, der Arbitrage-Trades zwischen Poloniex und Cryptsy ausführt. Der Bot wird seit Mai von mir entwickelt und generiert ein gewisses BTC "Grundeinkommen".

Der Bot prüft alle Altcoins, die an beiden Exchanges gehandelt werden und vergleicht deren Preise. Wenn der Unterschied so groß ist, dass nach Abzug der Transfer-Gebühren ein Profit übrig bleibt, dann wird der Trade ausgeführt.

Sowas lässt sich doch in zwei Stunden programmieren?

Korrekt. Die Feinheiten beginnen bei dem Drumherum. Der Bot reduziert den manuellen Aufwand soweit wie möglich, indem er die Wallets bei beiden Exchanges größtenteils selbst verwaltet. Kurse und Arbitrage-Gelegenheiten werden in einer Datenbank verzeichnet und basierend darauf werden Altcoins zugekauft oder abgestoßen. Durch die Einbeziehung der Kurse in die Berechnung, wie viele Coins gehalten werden sollen, sind gehypte Coins eine weitere kleine Nebeneinnahme (Portfolio Balancing).

Der Bot verschiebt automatisch Coins zwischen beiden Exchanges, um stets handlungsfähig zu sein, wenn sich eine Gelegenheit ergibt.

Kann man sich das Ganze irgendwo anschauen?

Ich habe den Bot für dieses Angebot in eine Amazon EC2 Micro-Instanz geschoben, so dass jeder auf das Webinterface zugreifen kann. Zu sehen ist das unter http://54.75.161.34/

Hinweis: Ich habe am 05.08.2014 mit zwei frischen Accounts bei den Exchanges und einer leeren Datenbank angefangen. Die Accounts wurden mit je 0.1 BTC aufgefüllt und dem Bot wurde 0.1 BTC als "Investitionskapital" zugewiesen, so dass er davon Altcoins kaufen kann. Diese Initialphase dauert rund 48h. Momentan (Stand 09.08.2014, 10 Uhr) hat er also 0.03 BTC verdient.

Warum wird der Bot verkauft, wenn er doch so gut funktioniert?

Der Hauptgrund sind die Beschränkungen der Exchanges. Ich darf nur alle x Sekunden eine Anfrage stellen. Bei der Menge an Altcoins dauert es daher Minuten, bis alle Orderbücher abgefragt sind. Dabei gehen natürlich einige Gelegenheiten flöten, da diese oft nur für einige Sekunden existieren. Um also mehr BTC zu verdienen müsste ich mehrere Accounts mit neuen API Keys bei den Exchanges haben, mit verschiedenen IPs arbeiten und mehrere Instanzen des Bots betreiben.

Ich habe insgesamt drei Instanzen des Bots betrieben (Und entsprechend etwa das dreifache Einkommen gehabt), allerdings wird es sehr schnell verwirrend und man verliert den Überblick zwischen den Accounts, Wallets, 2FA, etc.

Ein weiterer Hauptgrund ist, dass ich nicht riskieren will einen Account gesperrt zu bekommen. Ich weiß nicht wie gut die Exchanges es finden wenn man mehrere Accounts hat...

Daher hab ich mich entschieden, den Bot so umzubauen, dass andere Anwender damit klarkommen (Konfigurationsdatei, etc).


Der Bot macht also viel Arbeit?

Kommt drauf an. Wenn die Exchanges keine Probleme machen beschränkt sich der administrative Aufwand auf das Raussuchen von Withdrawal-Fees und Eintragen der Deposit-Addressen neuer Altcoins bei Cryptsy. Außerdem müssen Altcoins die delisted werden händisch in der Konfiguration des Bots deaktiviert und anschließend liquidiert werden.

Manchmal kommt es jedoch vor dass bei einem Exchange ein Deposit oder Withdrawal hakt, oder ein Guthaben nicht korrekt ist (Bereits bei beiden Exchanges vorgekommen). Dann muss ein Support-Ticket eröffnet werden.

Was brauche ich um den Bot auszuführen?

Einen Computer/VPS/EC2-Instanz/Raspberry Pi/etc. der PHP-Skripte ausführen und eine MySQL-Datenbank hosten kann. Für das Webinterface braucht es einen beliebigen Webserver (Apache, nginx, ...).

Und wenn 20 Leute den Bot ausführen macht keiner mehr Profite?

Ich teile mir momentan den Markt mit vielen anderen, die ebenfalls Arbitrage-Trading machen. Trotzdem gibt es genügend Handels-Gelegenheiten. Da ich jedoch meinen Bot selbst laufen lassen möchte und nicht riskieren will, dass die Gelegenheiten verschwinden, beschränke ich die zu verkaufende Anzahl an Lizenzen auf acht.

Woher weiß ich dass der Bot mir keine Coins stiehlt?

Der Bot ist in PHP geschrieben. Du kannst im Code nachschauen an welchen Stellen Abhebungen erfolgen und wie die Adressen dafür bezogen werden.

Macht der Bot mich reich? Oder gibt es zumindest ein regelmäßiges Einkommen?

Reich macht der Bot sicherlich nicht (Es sei denn natürlich der BTC-Kurs explodiert). Es gibt aber zumindest für die nähere Zukunft ein regelmäßiges Einkommen. Langfristig ist es natürlich schwer vorherzusagen, da immer etwas schief gehen kann. Exchanges können gehackt / geschlossen werden. Jemand anderes kann einen besseren Bot schreiben, der keine Trading-gelegenheiten übrig lässt, etc.

Ich kann ebenfalls nicht garantieren dass jeder Trade gut geht. Ich hatte bereits Fälle in den ein schief gegangener Trade den kompletten Tagesprofit aufgefressen hat. Selten, aber kommt vor.

Was kostet der Bot?

Ich denke 0.5 BTC ist ein fairer Preis. Es sind dutzende Stunden Arbeit reingeflossen und künftige Anpassungen sind ebenfalls enthalten (API Anpassung, Bugfixes, neue Funktionen, ...).

Bei Interesse schickt mir bitte eine PM mit eurem (realistischen) Angebot. Escrow ist ok.

Was wird im Webinterface alles dargestellt?

Der Graph in der Mitte zeigt die BTC-Wallet beider exchanges im Verlauf der letzten 48h an. Auf der rechten Seite sind die Wallets beider Exchanges zu sehen (P = Poloniex, C = Cryptsy). Die Zahlen in Klammern geben die Anzahl der ausgeführten, sowie die Anzahl an potentiellen Trades an. Die letzte Zahl gibt das Delta an, wie der Bot den Kontostand ändern möchte.

Die vier Boxen in der nächsten Zeile zeigen die letzten Trades, das Wallet-Management (Kauf/Verkauf von Altcoins), Transfers zwischen den Exchanges und Statusinformationen an. Bei den Statusinformationen erscheint die Gesamt-Anzahl an Trades, sowie die "Investmentkasse" des Bots. Die Countdowns geben die Restdauer an, bis gewisse interne Events ausgeführt werden: consolidate (Ausgleich von Altcoins zwischen Exchanges und verkauf überschüssiger Altcoins), take-profit (Profite auf die Gewinn-Wallet überweisen), balancing (BTC wallet ausgleichen) and restock (Neue Altcoins kaufen).

Die unterste Box zeigt die Aktivität des Bots der letzten 30 Sekunden an.


Noch Fragen?

Viele Grüße,
Sebastian
Jump to: