Bitcoin Forum
May 06, 2024, 01:13:39 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 [2] 3 4 5 6 7 8 9 10 11 »  All
  Print  
Author Topic: Tagebuch eines Bot Entwicklers  (Read 16827 times)
Darkwinde
Hero Member
*****
Offline Offline

Activity: 700
Merit: 500


View Profile
October 11, 2014, 07:41:01 PM
 #21

Ich schreibe auch aktuell an einem PHP Bot, da ich als mit den bisher käuflich erworbenen nicht wirklich zu frieden bin und mal verstehen wollte warum Wink
Ich wollte auch erst einen Bot kaufen, habe eine Lizenz von Haasbot. Eigentlich ein gutes Tool, viele Möglichkeiten, hat auch immer eine Zeitlang funktioniert. Ich konnte mich aber nicht mit der Funktionsweise anfreunden, der Bot hat 2 Zustände, entweder Kauf ( dann macht er als nächstes einen Verkauf ) oder Verkauf ( dann macht er als nächstes einen Kauf ). Kannst zwar mehrere Strategien gleichzeitig fahren, z.B. einen
Strategie die oft mit geringer Spanne handelt, und eine zweite, die selten mit höherer Spanne handelt, aber bei den derzeitigen Kursschwankungen hat Du bald alle im Status Kauf, und er macht erst weiter, wenn es eine Verkaufssituation gibt. Mir gefällt dabei die Hilfe in der Parametrisierung, kannst anhand der gesammelten Kurse die Parameter für optimalen Profit anpassen. Wer das Traden gerne mit Charttechnik macht, für den ist dieser Bot zumindest einen Test wert.

Meine Eigenkreation eines Arbitragevariante zwischen Poloniex und Cryptsy macht sich ganz gut. 0,2 BTC Einsatz und nach drei Wochen 10% Profit.
In Prozent gerechnet, haben Arbitragestrategien den meisten Profit, wenn sie mit kleinen Einsätzen gemacht werden. Da kommt der Bot mit hoher Wahrscheinlichkeit dem Besten Bid und Ask im Markt aus. Mit höheren Einsätzen muss der Bot dann die Zweit und Drittbesten Quoten nehmen, was das Ergebnis in % verringert, aber wegen des höheren Einsatzes vom Betrag her ein besseres Ergebnis bringt. Mach einfach Deine Strategie weiter!

Aktuell schreibe ich an einer Autobalance Funktion und mach ein Cleanup meiner API Access Schnittstelle um auch mehr als zwei Börsen zu unterstützen.
Wieso Access? Speicherst Dein Bot auch Daten ins Access?



Hatte mir CAT angelacht, aber dafür musst du wirklich davor hocken um alles im Griff zu haben, aber dennoch ein empfehlenswertes Tool. Habs aus zeitmangel aufgegeben.
Ein PHP Arbitrage Tool hatte ich mir auch nochmal geholt. Hat echt nette Features, die mir aber als Kleincoinbesitzer nicht wirklich geholfen haben bzw. die Trades die er in 6 Wochen ausgelöst hat, hat meiner jetzt nach 3 Wochen gehabt. Kann aber auch an der Tradingmethodik liegen oder einfach , dass ich ihn für meinr Situation nicht sauber konfiguriert habe.
Was solls so kann ich endlich mal wieder was programmieren, auch wenn ich die Komplexität echt unterschätz habe. Was für nen Mist da alles über eine API kommen kann bzw. nicht kommt ist manchmal echt übel.

In Prozent gerechnet, haben Arbitragestrategien den meisten Profit, wenn sie mit kleinen Einsätzen gemacht werden. Da kommt der Bot mit hoher Wahrscheinlichkeit dem Besten Bid und Ask im Markt aus. Mit höheren Einsätzen muss der Bot dann die Zweit und Drittbesten Quoten nehmen, was das Ergebnis in % verringert, aber wegen des höheren Einsatzes vom Betrag her ein besseres Ergebnis bringt. Mach einfach Deine Strategie weiter!
Ah daran kann es liegen, da ich wirklich gezielt auf die Besten Bid/Ask Verhältnisse gehe auch im Zweifel mal etwas weniger abzustauben. Denk mir aber, lieber etwas als gar nix oder minus. Durch nen doofen Kopierfehler hat mir der Bot bei Doge gekauft als er über 100 stand und dann abgerutscht ist Wink er hat zwar versucht zu verkaufen aber nur auf sich selber Wink
Absolut gesehen macht das doch keinen Unterschied, wenn ich 0,2 BTC investieren und bereits 0,02 Gewinn habe oder habe ich dich falsch verstanden?
Prozentual gesehen, haben sich bei mir einige Coins vollständig amortisiert, aber absolut kaum was zum Gewinn beigetragen. Andere nur wenige Trades aber stellen das Gro der Gewinne.


Wieso Access? Speicherst Dein Bot auch Daten ins Access?
Access im Sinne von Zugriff Wink ich habe eine Schicht/Ebene eingezogen damit ich die ganzen API Calls von dem eigentlichen Trading Algorithmus getrennt habe, als auch die API Schnittstellen der Börsen umgekehrt. Dadurch muss ich bei einem neuen Exchange nur die API Schnittstellen definieren und an die Access Schicht anbinden und schon müsste alles funktionieren...mal sehen Wink glaube du machst das über dein generisches API Interface?!?


TalkImg was created especially for hosting images on bitcointalk.org: try it next time you want to post an image
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1715001219
Hero Member
*
Offline Offline

Posts: 1715001219

View Profile Personal Message (Offline)

Ignore
1715001219
Reply with quote  #2

1715001219
Report to moderator
daybyter
Legendary
*
Offline Offline

Activity: 965
Merit: 1000


View Profile
October 11, 2014, 07:49:17 PM
 #22

Ich hab nen kleinen VPS (512 MB Ram, 20 GB Disk) für 3,99 . Für Arb-Bot wird der aber nicht reichen, also such noch ne Alternative. Evtl. lass ich einfach hier zu Hause ein Netbook laufen, oder so.

kalkulatorix (OP)
Sr. Member
****
Offline Offline

Activity: 388
Merit: 250


View Profile
October 11, 2014, 08:46:56 PM
 #23

In Prozent gerechnet, haben Arbitragestrategien den meisten Profit, wenn sie mit kleinen Einsätzen gemacht werden. Da kommt der Bot mit hoher Wahrscheinlichkeit dem Besten Bid und Ask im Markt aus. Mit höheren Einsätzen muss der Bot dann die Zweit und Drittbesten Quoten nehmen, was das Ergebnis in % verringert, aber wegen des höheren Einsatzes vom Betrag her ein besseres Ergebnis bringt. Mach einfach Deine Strategie weiter!
Ah daran kann es liegen, da ich wirklich gezielt auf die Besten Bid/Ask Verhältnisse gehe auch im Zweifel mal etwas weniger abzustauben. Denk mir aber, lieber etwas als gar nix oder minus. Durch nen doofen Kopierfehler hat mir der Bot bei Doge gekauft als er über 100 stand und dann abgerutscht ist Wink er hat zwar versucht zu verkaufen aber nur auf sich selber Wink
Absolut gesehen macht das doch keinen Unterschied, wenn ich 0,2 BTC investieren und bereits 0,02 Gewinn habe oder habe ich dich falsch verstanden?
Prozentual gesehen, haben sich bei mir einige Coins vollständig amortisiert, aber absolut kaum was zum Gewinn beigetragen. Andere nur wenige Trades aber stellen das Gro der Gewinne.
Wenn Du mit kleinen Beträgen Arbitrage machst, kommt der Bot mit hoher Wahrscheinlichkeit immer dem Besten Bid und Ask im Markt aus. Dann machst Du z.B. mit 50 EUR 0.1% Gewinn, das sind 0.05 EUR. Wenn der Bot dieselbe Arbitragesitiation ausnutzt, und mit 100 EUR arbeitet, kann er vielleicht nicht bei allen Legs der Arbitrage den Besten Bid oder Ask nehmen, weil nicht genug Liquidität am Markt ist. Dann macht er mit den ersten 50 EUR 0.1% Gewinn, mit den restlichen 50 EUR aber nur mehr 0.05% Gewinn. In Prozent ausgerechnet sind das dann nur mehr 0.075%, in Zahlen ausgedrückt aber 0.075 EUR. Mit 100 EUR statt 50 EUR verringerst Du den Gewinn in % betrachtet (von 0.1% auf 0.75%) , erhöhst aber den Gewinn in EUR (von 0.05 auf 0.075).

Dadurch muss ich bei einem neuen Exchange nur die API Schnittstellen definieren und an die Access Schicht anbinden und schon müsste alles funktionieren...mal sehen Wink glaube du machst das über dein generisches API Interface?!?
Ach so war das mit dem Access gemeint. Smiley Ja, wenn man auf mehreren Exchanges aktiv ist, lohnt so eine "normierte" , "generische" Zwischenschicht schon. Die APIs der einzelnen Exchanges unterscheiden sich zum Glück nicht sehr.

12313123
daybyter
Legendary
*
Offline Offline

Activity: 965
Merit: 1000


View Profile
October 11, 2014, 09:05:44 PM
 #24

Ordentliche Abstraktion lohnt sich definitiv. Hab ich auch gemacht, aber halt in Java. Falls das jemand lesen kann:

https://github.com/ReAzem/cryptocoin-tradelib/blob/master/core/src/de/andreas_rueckert/trade/site/TradeSite.java

kalkulatorix (OP)
Sr. Member
****
Offline Offline

Activity: 388
Merit: 250


View Profile
October 11, 2014, 09:50:06 PM
 #25

Logbucheintrag vom 2014-10-11

Erfreulich, die Bots 3EckArb und Antizyklus sind ohne Crash durchgelaufen. Sie haben allerdings nicht viel zu tun gehabt, auf CEX.IO war heute ein ruhiger Tag.

Der 3Eckarbitragebot hat 2 Möglichkeiten gefunden, und dabei einen Gewinn von  0.00000094 BTC und 0.00534570 LTC gemacht.
Im Detail waren das seine Aktionen:
Rule15 0.9432561144677LTC > 135.20799117364FTC > 0.0099853785630776BTC > 0.94612265LTC
Rule15 0.94481369051472LTC > 135.05087720993FTC > 0.0099737753849547BTC > 0.94502324LTC
Die zweite Zeile liest sich so: Der Bot hat 0.94481369051472 LTC zu 135.05087720993 FTC getauscht, die FTC in 0.0099737753849547 BTC umgetauscht, die BTC in 0.94502324 LTC.

Der InterexchangeArbitragebot is nicht gelaufen.

Der Antizyklusbot hat 3 Notwendigkeiten gesehen, die Gewichtung zu korrigieren:
2014-10-11 01:44:37 ["LTC\/BTC","buy",0.01055,0.13141361661959]
2014-10-11 01:54:37 ["DOGE\/BTC","buy",7.5e-7,2249.5989778761]
2014-10-11 14:59:36 ["DOGE\/LTC","sell",7.329e-5,1293.0017433001]
Die erste Zeile liest sich so: Kaufe 0.1314136LTC zu einem Preis von 0.01055 BTC im Markt LTC/BTC


Daraus resultiert diese Auswertung:

BTCLTCDRKDOGEFTCUSDWert BTCWert USDWert EURZuwachs
Anfangsstand0.1967458.93366.12265022427135.240.484085174.58138.27
Ertrag 3EckArb0.00000094 0.0053457 00000.000056480.02 0.02
% 3EckArb0.0005%0.0598%0%0%0%0%0.0117%0.0115%0.0145%
Ertrag InterArb000000000
% InterArb0%0%0%0%0%0%0%0%0%
Ertrag Antizyklus-0.003079940.15175430956 00-0.00308548-3.79 -3
% Antizyklus-1.5654%1.6987%0%1.9035%0%0%-0.6374%-2.1709%-2.1697%
Endstand0.1936669.09076.12265118027135.240.481056170.81135.29
Änderung-0.0030790.15710956 00-0.003029-3.77 -2.98
% Änderung-1.565%1.7585%0%1.9035%0%0%-0.6257%-2.1595%-2.1552%-0.061%

Kein guter Tag. In EUR gerechnet ein Verlust von 2%.

Was die Kenner des Antizyklischen Handelns verwundern wird, dass die Zuwachsformel einen Verlust ergibt. Das liegt daran, dass offene Orders existieren, die ich so behandle als wären sie bereits mit dem aktuellen Marktpreis durchgeführt. Dadurch bewirken diese Orders eine Standveränderung, was die Zuwachsformel "stört".


12313123
Darkwinde
Hero Member
*****
Offline Offline

Activity: 700
Merit: 500


View Profile
October 12, 2014, 10:46:15 AM
 #26

Wie funktioniert generell das antizyklische Handeln?
Heute ist ein guter Tag für Arbitrage auf BTCD Wink

ulrich909
Legendary
*
Offline Offline

Activity: 2216
Merit: 1021


View Profile
October 12, 2014, 10:54:25 AM
 #27

Wie funktioniert generell das antizyklische Handeln?
Heute ist ein guter Tag für Arbitrage auf BTCD Wink
Hier findest du den passenden Thread zum antizyklischen Handeln https://bitcointalk.org/index.php?topic=495672.0

Es gibt keine schlechten Kurse. Es gibt nur gute Kurse zum Kaufen und gute Kurse zum Verkaufen.
Warum ich IOTA gut finde? Weil eine Transaktion keine 50$ kostet und somit für jeden erschwinglich ist.
Traden ohne Gebühren  https://coinfalcon.com/?ref=CFJSBKBQMSUX
Darkwinde
Hero Member
*****
Offline Offline

Activity: 700
Merit: 500


View Profile
October 12, 2014, 11:22:20 AM
 #28

Wie funktioniert generell das antizyklische Handeln?
Heute ist ein guter Tag für Arbitrage auf BTCD Wink
Hier findest du den passenden Thread zum antizyklischen Handeln https://bitcointalk.org/index.php?topic=495672.0

Perfekt danke dir, werde mich dann mal schlauer machen Smiley

daybyter
Legendary
*
Offline Offline

Activity: 965
Merit: 1000


View Profile
October 12, 2014, 12:57:06 PM
 #29

Anscheinend siehst Du mehr Gelegenheiten als ich bei meinen (wohl zu kurzen) Tests.

Wenn bei Dir eine Arb-Sequenz nicht durchläuft, lässt Du dann nur die letzte Order stehen? Oder bleibt die ganze Sequenz im Bot, damit sie ggf. irgendwann beendet wird? In beiden Fällen ist ja aber das Geld gebunden, und steht nicht für andere Trades zur Verfügung?

Mein Arb-Bot:

https://i.imgur.com/EgiTKPQ.png

kalkulatorix (OP)
Sr. Member
****
Offline Offline

Activity: 388
Merit: 250


View Profile
October 12, 2014, 03:03:52 PM
 #30

Anscheinend siehst Du mehr Gelegenheiten als ich bei meinen (wohl zu kurzen) Tests.

Wenn bei Dir eine Arb-Sequenz nicht durchläuft, lässt Du dann nur die letzte Order stehen? Oder bleibt die ganze Sequenz im Bot, damit sie ggf. irgendwann beendet wird? In beiden Fällen ist ja aber das Geld gebunden, und steht nicht für andere Trades zur Verfügung?

Mein Arb-Bot:

https://i.imgur.com/EgiTKPQ.png
Du bist aber an sehr vielen Börsen aktiv! Und das ist auch richtig so, da triff Dich der Ausfall einer Börse nicht so sehr.

Ich weiß nicht, ob die Frage an mich gerichtet war, meine Antwort darauf wäre, die Order einfach im Markt stehen zu lassen, wird ja irgendwann einmal erfüllt. Ich schau gar nicht, ob alle Legs einer Arbitrage gefillt sind, da das eine große Komplexität in den Bot bringt, mit geringen Nutzen und einer großen Gefahr.

Die Daten, die der Bot bei Abfrage der Markttiefe bekommt, sind veraltet. BTCe schreibt zum Beispiel explizit, dass es keinen Sinn macht, öfter als alle 2 Sekunden eine API Abfrage zu machen, da die API nicht direkt auf die Datenbank zugreift, sondern die Daten aus einen Buffer liest, der nur alle 2 Sekunden aktualisiert wird. Dadurch handelt der Bot aufgrund von Daten, die bereits mehrere Sekunden alt sind.

Die Abfragen der privaten Daten, wie Kontostand und Offene Orders ist fast aktuell, aber auch hier braucht es etwas Zeit, bis die Daten beim Bot sind.

Nehmen wir an, der Bot funktioniert so: Er stellt seine 3 Orders in den Markt, prüft nach, ob sie gefillt wurden, und macht dann in Abhängigkeit der Anzahl der gefillten Orders dies:

  • Alle Orders gefillt: Super, Arbitrage vollständig beendet
  • 2 Orders gefillt: Die Order, die nicht gefillt wurde, stornieren und nochmals in den Markt stellen, nimmt dabei einen schlechten Kurs in Kauf, aber die Arbitrage blockiert kein Geld
  • 1 Orders gefillt: Die Order, die gefillt wurde, durch eine entgegengesetzte Order ausgleichen, und die anderen 2 nicht gefillten stornieren.
  • 0 Orders gefillt: Alle 3 Orders stornieren

Es ist leicht zu erkennen, dass der Bot die falsche Aktion setzt, wenn eine Order in der Zwischenzeit gefillt wurde. Wenn das Timing nicht passt, wird der Bot nie damit fertig, die unvollständige Arbitrage zu korrigieren, da er ja auch die Korrekturen versucht zu kurrigieren, und er verbraucht das ganze Geld mit Spreads und Fees. Du musst viel Zeit zwischen Senden und Überprüfen der Orders lassen, oder warten, bis sich der Markt von der Order wegbewegt, das nimmt Dynamik aus dem Prozess.

Deswegen überprüfe ich gar nicht, ob die Orders gefillt wurden und nehme in Kauf, dass Geld durch offene Orders gebunden ist. Der Bot darf in diesem Fall aber nur einen Bruchteil des verfügbaren Geldes verwenden, damit er handlungsfähig bleibt im Fall dass offene Orders im Markt bleiben.
 


12313123
daybyter
Legendary
*
Offline Offline

Activity: 965
Merit: 1000


View Profile
October 12, 2014, 03:46:14 PM
 #31

Ich trade aktuell nicht wirklich an diesen Börsen. Ich hab halt ein Framework geschrieben, dass von diesen APIs gut abstrahiert, und daher läuft ein Bot i.d.R. automatisch auf den meisten Exchanges (es sei denn, ein Exchange bietet z.B. nur 2 Paare an, oder so).

https://github.com/ReAzem/cryptocoin-tradelib/tree/master/modules

Da siehst Du meine Module (nicht alle komplett).

Du stellst also alle Orders parallel ein? Bei mir ist das eigentlich anders gedacht. Ich hab ja eine Order Struktur, die nicht direkt auf ein APIs aufsetzt. Darin ist eine Liste, die Abhängigkeiten von anderen Orders listet. Meine OrderBook Klasse hat nen Thread, der permanent den Zustand von Orders checkt. D.h. ich erzeuge also die Orders für so eine Sequenz und füge jeweils Abhängigkeiten ein (2. Order hängt von 1. ab, 3. von 2. usw). Die schieb ich nun alle ins OrderBook und lass die letzte Order ausführen. Durch die Abhängigkeiten wird dann die 1., dann die 2. usw ausgeführt.

Bei Deiner Lösung musst Du ja in allen Währungen Funds haben, damit Du alle Orders parallel einstellen kannst? Das wollte ich vermeiden, weil einige Exchanges (Bittrex, Vircurex usw) sehr viele Währungen unterstützen, und ich wollte mein Geld nicht in 300 Währungen hab, weil ja zumindest einige davon bald wieder verschwinden werden.

kalkulatorix (OP)
Sr. Member
****
Offline Offline

Activity: 388
Merit: 250


View Profile
October 12, 2014, 05:50:26 PM
 #32

Du stellst also alle Orders parallel ein? Bei mir ist das eigentlich anders gedacht. Ich hab ja eine Order Struktur, die nicht direkt auf ein APIs aufsetzt. Darin ist eine Liste, die Abhängigkeiten von anderen Orders listet. Meine OrderBook Klasse hat nen Thread, der permanent den Zustand von Orders checkt. D.h. ich erzeuge also die Orders für so eine Sequenz und füge jeweils Abhängigkeiten ein (2. Order hängt von 1. ab, 3. von 2. usw). Die schieb ich nun alle ins OrderBook und lass die letzte Order ausführen. Durch die Abhängigkeiten wird dann die 1., dann die 2. usw ausgeführt.

Ich habe vordefinierte Liste von Arbitragemöglichkeiten, das sind 16 auf CEX.IO und 84 auf BTCe. Mit jeden Marktabfrage werden die Arbitragemöglichkeiten durchgerechnet, wo gerade abgefragte Markt Teil der Arbitrage ist, und soferne eine Arbitrage mit Minimalem Einsatz gefunden wird, sucht der Bot den Einsatz heraus, wo der Gewinn am Höchsten ist, und dann werden die Orders direkt hintereinander in den Markt geschossen. Ich kann mir nicht vorstellen, dass die Arbitrage innerhalb einer Exchange gut funktioniert, wenn da viel Zeit zwischen Marktabfrage und Orderaufgabe liegt. Lasse mich aber gerne von Gegenteil überzeugen.

Bei Deiner Lösung musst Du ja in allen Währungen Funds haben, damit Du alle Orders parallel einstellen kannst? Das wollte ich vermeiden, weil einige Exchanges (Bittrex, Vircurex usw) sehr viele Währungen unterstützen, und ich wollte mein Geld nicht in 300 Währungen hab, weil ja zumindest einige davon bald wieder verschwinden werden.
Ja ich brauche in allen Währungen Funds in ausreichender Höhe. Allerdings ignoriere ich Coins ohne entsprechende Umsätze, da bleiben nicht viele über. USD, BTC und LTC würde ich in jedem Fall nehmen, da viele der Coins gegen diese Währungen zu handeln sind, und von den anderen Coins jene, wo es zumindest 2 Märkte gegen USD, BTC oder LTC gibt (sonst kannst Du keine Arbitrage aufbauen!) , und dann die besten 3-5, wo die Umsätze entsprechend sind.

Ich gehe eingentlich davon aus, dass es bei Arbitrage auf Geschwindigkeit ankommt, je mehr Märkte, desto seltener kannst Du jeden einzelnen davon abfragen.

12313123
daybyter
Legendary
*
Offline Offline

Activity: 965
Merit: 1000


View Profile
October 12, 2014, 06:06:15 PM
 #33

Ich gehe eingentlich davon aus, dass es bei Arbitrage auf Geschwindigkeit ankommt, je mehr Märkte, desto seltener kannst Du jeden einzelnen davon abfragen.

Jo, um dieses Problem hab ich schon ne ganze Weile gekreist und auch schon einiges an Code dazu gschrieben (z.B. Preisabfrage über Proxy-Server), ohne eine gute Lösung zu finden. Evtl. ein Whitelisting bei der Exchange-Betreibern versuchen, falls die da mitspielen würden.

Schade, dass wir erst jetzt aufeinander stossen. Wir hatten zusammen sicher paar tolle Sachen basteln können.

kalkulatorix (OP)
Sr. Member
****
Offline Offline

Activity: 388
Merit: 250


View Profile
October 12, 2014, 09:04:22 PM
Last edit: October 12, 2014, 11:43:34 PM by kalkulatorix
 #34

Logbucheintrag vom 12.10.2014

Hier erst einmal die Auswertung:

BTCLTCDRKDOGEFTCUSDWert BTCWert USDWert EURZuwachs
11.10.20140.1936669.09076.12265118027135.240.481056170.81135.29
Ertrag 3EckArb00000000 0
% 3EckArb0%0%0%0%0%0%0%0%0%
Ertrag InterArb0.00196637000000.001966370.6982049069131240.55
% InterArb1.0153%0%0%0%0%0%0.4088%0.4088%0.4065%
Ertrag Antizyklus0.001920631.08150.4178395 000.014252637.19 5.5
% Antizyklus0.9917%11.8968%6.8239%0.7718%0%0%2.9628%4.2094%4.0653%
12.10.20140.19755310.17226.54045157527135.240.497275178.7141.34
Änderung0.0038871.08150.4178395 000.0162197.89 6.05
% Änderung2.0071%11.8968%6.8239%0.7718%0%0%3.3715%4.6192%4.4719%1.8773%

Wertzuwachs vom 4.5% in EUR, auch die Zuwachsformel ist positiv, man sollte also zufrieden sein.

Die Details offenbaren aber ein riesiges Problem, Zufriedenheit ist also fehl am Platz.

Der 3EckArb Bot hat heute gar nichts gemacht, ist an sich kein Problem, das kommt auf CEX.IO öfter vor.

Habe heute auch den Interexchange Arbitrage Bot gestartet (aber erst nachdem der Antizyplus Bot abgeschalten war, die beiden mögen sich nicht  Shocked) , der hat am Nachmittag 3 Arbitragen im BTC LTC Markt ausgenutzt, das hat einen Profit von 0.00196637 BTC gebracht.

Leider hatte der Antizyklus Bot eine Fehlfunktion.

Seht euch einmal an, was er getan hat:

Gewichtungskorr 1
2014-10-12 06:58:27 [sell 3506.7722849711  DOGE @ 0.000078 BTC]
2014-10-12 06:58:27 [buy 0.26050382832308  LTC  @ 0.01049997 BTC]

Gewichtungskorr 2
2014-10-12 07:03:19 [buy 5070.5669444479  DOGE  @ 0.0007524 LTC]

Gewichtungskorr 3
2014-10-12 13:08:19 [sell 1168.5031327535 DOGE @ 0.007338 LTC ]

Gewichtungskorr 4
2014-10-12 13:23:19 [buy  75.463326122964 FTC @ 0.00007239 BTC ]
2014-10-12 13:23:19 [sell 75.463326122964 FTC @ 0.00684925 LTC]

Gewichtungskorr 5
2014-10-12 13:33:19 [sell 0.23263413530557 LTC @ 0.01047501 BTC ]
2014-10-12 13:33:20 [buy  0.41786613948515 DRK @ 0.00583164 BTC ]


Bei der Gewichtungskorr 1: erst DOGE verkauft und LTC gekauft
Bei der Gewichtungskorr 2: 5 Minunten später hat er seine Meinung geändert, und LTC verkauft und DOGE gekauft.
Bei der Gewichtungskorr 3: DOGE verkauft und LTC gekauft, allerdings zu einem geringeren Preis, als er zuvor gekauft hat.

Analyse hat folgendes ergeben: Bei der Gewichtungskorrektur 1 hat der Bot  die offenen sell Orders im DRK/LTC Markt nicht bekommen, aber auch keine Fehler. Dadurch war die Bewertung bei den LTC um 4 zu gering, das hat der Bot ausgeglichen.

Bei der Gewichtskorrektur 2 hat der Bot dann die offenen sell Orders im DRK/LTC Markt wieder bekommen, und die Änderung der Gewichtung wieder auf den richtigen Stand ausgeglichen.

Ob der Antizyklus Bot immer billiger kaufen sollte als verkaufen, muss ich noch einmal durchdenken. Bei der Gewichtungskorr 3 hat er billiger verkauft als gekauft.

Ob es billiger ist, mit 2 Trades über FTC ein Ungleichgewicht zwischen BTC und LTC auszugleichen, erscheint mir unglaubwürdig, in der Gewichtunskorr 4.

Einzig die Gewichtungskorr 5 ist plausibel, der DRC/LTC Markt ist auf CEX.IO hat über 10% Spread zwischen Bid und Ask.

Den Bug mit den fehlenden offenen Orders werde ich noch heute lösen, und bei jeder Gewichtskorrektur alle Daten ins Logfile ausgeben, zur genaueren Analyse.
Ist erledigt. Nach 3 Stunden Suche den Fehler mit den fehlenden Offenen Sell Orders gefunden, habe einen PHP Anfängerfehler gemacht. Typkonversion mißachtet.  Huh



12313123
Serpens66
Legendary
*
Offline Offline

Activity: 2926
Merit: 1131



View Profile
October 13, 2014, 12:07:47 AM
 #35

oh man... erst 2 Seiten und doch schon sooo viele Infos Smiley  wird bestimmt ein guter Thread Smiley

Ich musste meinen Programmierer leider "entlassen"... haben erst nach der Hälfte der Arbeit angefangen die Gewinnverteilung zu besprechen und er wollte einfach zu viel und das wäre alles zu kompliziert mit den Rechten am Bot usw. geworden.
Deswegen muss ich mich spätestens im Dezember mal dransetzen und programmieren lernen Cheesy kann ja nicht so schwer sein Roll Eyes

Mein Programmierer hatte in Python geschrieben. Hab mir da mal ein wenig Infos zu durchgelesen und es heißt, dass die Sprache sehr einfach sei, aber trzd. alles kann was man braucht, deswegen denke ich krieg ich das hin es zu lernen. Nur warum verwendet von euch keiner Python?
Das schwierigste wird dann vermutlich der Umgang mit den API's und die ganzen Fachbegriffe wie "generisch" und "Main Loop" Cheesy
Vermutlich werde ich, wenn es so weit ist und ich Python kann, nochmal den ein oder anderen hier anschreiben (oder im thread), was ich beachten muss.  Damit meine ich z.b Dinge wie "eine API fällt aus, dann muss die und die Sicherung rein" oder "Die API liefert Mist, das muss der Bot am besten so und so überprüfen"  usw. usw...

Mit Cointracking (10% Rabatt) behältst du die Übersicht über all deine Trades und Gewinne. Sogar ein Tool für die Steuer ist dabei Wink                          
Great Freeware Game: Clonk Rage
binance.com hat nun auch SEPA und EUR Paare! Mit dem RefLink bekommst du 5% Rabatt auf die Tradinggebühren!
xtral
Legendary
*
Offline Offline

Activity: 1204
Merit: 1001


View Profile
October 13, 2014, 06:13:52 AM
 #36

oh man... erst 2 Seiten und doch schon sooo viele Infos Smiley  wird bestimmt ein guter Thread Smiley

Ich musste meinen Programmierer leider "entlassen"... haben erst nach der Hälfte der Arbeit angefangen die Gewinnverteilung zu besprechen und er wollte einfach zu viel und das wäre alles zu kompliziert mit den Rechten am Bot usw. geworden.
Deswegen muss ich mich spätestens im Dezember mal dransetzen und programmieren lernen Cheesy kann ja nicht so schwer sein Roll Eyes

Mein Programmierer hatte in Python geschrieben. Hab mir da mal ein wenig Infos zu durchgelesen und es heißt, dass die Sprache sehr einfach sei, aber trzd. alles kann was man braucht, deswegen denke ich krieg ich das hin es zu lernen. Nur warum verwendet von euch keiner Python?
Das schwierigste wird dann vermutlich der Umgang mit den API's und die ganzen Fachbegriffe wie "generisch" und "Main Loop" Cheesy
Vermutlich werde ich, wenn es so weit ist und ich Python kann, nochmal den ein oder anderen hier anschreiben (oder im thread), was ich beachten muss.  Damit meine ich z.b Dinge wie "eine API fällt aus, dann muss die und die Sicherung rein" oder "Die API liefert Mist, das muss der Bot am besten so und so überprüfen"  usw. usw...

Wenn du nicht gerade mit Arbitrage arbeiten willst, würde ich mir an deiner Stelle QT-Trader anschauen.
Du kannst eigene Skripte programmieren, ohne dich um die API kümmern zu müssen.

Spende für ein Weizen an: 1NdhPG76eEzj86BDgihSWvVYSQKcA17iok
Darkwinde
Hero Member
*****
Offline Offline

Activity: 700
Merit: 500


View Profile
October 13, 2014, 08:13:26 AM
 #37

oh man... erst 2 Seiten und doch schon sooo viele Infos Smiley  wird bestimmt ein guter Thread Smiley

Ich musste meinen Programmierer leider "entlassen"... haben erst nach der Hälfte der Arbeit angefangen die Gewinnverteilung zu besprechen und er wollte einfach zu viel und das wäre alles zu kompliziert mit den Rechten am Bot usw. geworden.
Deswegen muss ich mich spätestens im Dezember mal dransetzen und programmieren lernen Cheesy kann ja nicht so schwer sein Roll Eyes

Mein Programmierer hatte in Python geschrieben. Hab mir da mal ein wenig Infos zu durchgelesen und es heißt, dass die Sprache sehr einfach sei, aber trzd. alles kann was man braucht, deswegen denke ich krieg ich das hin es zu lernen. Nur warum verwendet von euch keiner Python?
Das schwierigste wird dann vermutlich der Umgang mit den API's und die ganzen Fachbegriffe wie "generisch" und "Main Loop" Cheesy
Vermutlich werde ich, wenn es so weit ist und ich Python kann, nochmal den ein oder anderen hier anschreiben (oder im thread), was ich beachten muss.  Damit meine ich z.b Dinge wie "eine API fällt aus, dann muss die und die Sicherung rein" oder "Die API liefert Mist, das muss der Bot am besten so und so überprüfen"  usw. usw...

Ich nutze PHP da es zumeist von den Börsenbetreibern direkt Tutorials und Code gibt dies einzubinden. Python sollte aber auch kein Thema sein. Bin einfach nur faul Wink


Logbucheintrag vom 12.10.2014



Ob der Antizyklus Bot immer billiger kaufen sollte als verkaufen, muss ich noch einmal durchdenken. Bei der Gewichtungskorr 3 hat er billiger verkauft als gekauft.

Ob es billiger ist, mit 2 Trades über FTC ein Ungleichgewicht zwischen BTC und LTC auszugleichen, erscheint mir unglaubwürdig, in der Gewichtunskorr 4.

Einzig die Gewichtungskorr 5 ist plausibel, der DRC/LTC Markt ist auf CEX.IO hat über 10% Spread zwischen Bid und Ask.

Den Bug mit den fehlenden offenen Orders werde ich noch heute lösen, und bei jeder Gewichtskorrektur alle Daten ins Logfile ausgeben, zur genaueren Analyse.
Ist erledigt. Nach 3 Stunden Suche den Fehler mit den fehlenden Offenen Sell Orders gefunden, habe einen PHP Anfängerfehler gemacht. Typkonversion mißachtet.  Huh





Frage zu deinen Bots:
- sind der Arbitrage und der Anti einer die nur getrennt aufschlüsselst oder zwei eigenständige Programme?

Wenn ich das mit dem Antizyklischen korrekt verstanden habe, dann müssten beide sich zumindest nicht negativ beeinflussen. Potenziell kann sich zwar das Handelsvolumen bei gleichen Coins verringern so dass man bei einer kritischen Anzahl keine Arbitrage Möglichkeiten mehr hat aber würde das mal als gering einstufen.

Wie seht ihr das?

kalkulatorix (OP)
Sr. Member
****
Offline Offline

Activity: 388
Merit: 250


View Profile
October 13, 2014, 08:37:24 AM
 #38

Mein Programmierer hatte in Python geschrieben. Hab mir da mal ein wenig Infos zu durchgelesen und es heißt, dass die Sprache sehr einfach sei, aber trzd. alles kann was man braucht, deswegen denke ich krieg ich das hin es zu lernen. Nur warum verwendet von euch keiner Python?
Weil die Exchanges in ihrer API Beschreibung immer ein Beispiel in PHP angegeben haben. Ich denke nicht, daß es schwierig ist, mit einem PHP Sourcecode ein Python Programm zu machen, ist aber ein zusätzliche Herausforderung wenn man beide Sprachen erlernen müßte, ein Spezialist in Python wird wohl eher in Python arbeiten wollen, was auch sinnvoll ist.
Zusaätzlich schaut PHP so ähnlich wie C++ und C# aus, mit den beiden habe ich etwas Erfahrung.

Das schwierigste wird dann vermutlich der Umgang mit den API's und die ganzen Fachbegriffe wie "generisch" und "Main Loop" Cheesy
Das Schwierigste ist die Strategie. Das Programm soll ja Geld verdienen, ein Bot ist nur ein Werkzeug, der exakt das macht, wofür er programmiert wurde. Schnell und tausende Male hintereinander. Mit einer schlechen Strategie verliert der Bot viel mehr Geld, als es manuell möglich wäre.

Ich würde ein Bot Projekt von der Handelsstrategie angehen. Erst wenn die Strategie mit manuellem Handeln so funktioniert, wie geplant, lohnt es sich Zeit in die Entwicklung eines Bots zu investieren.

12313123
kneim
Legendary
*
Offline Offline

Activity: 1666
Merit: 1000


View Profile
October 13, 2014, 09:18:02 AM
 #39

Übertreibt es nicht mit dem Geld verdienen. Eine normale Anlage erhält das Vermögen. Ein Mehrertrag ist vor allem auf Kosten des dümmlichen Homo Oeconomicus möglich.

Arbitraging ist eine Leistung, für die zu Recht ein Ertrag für den Arbitrageur fällig wird.

kalkulatorix (OP)
Sr. Member
****
Offline Offline

Activity: 388
Merit: 250


View Profile
October 13, 2014, 09:28:26 AM
 #40

Frage zu deinen Bots:
- sind der Arbitrage und der Anti einer die nur getrennt aufschlüsselst oder zwei eigenständige Programme?
Das sind einzelne Scripts.  Jedes der Scripts hat eine separate Verbindung zur Exchange. Der AntiZyklus Bot macht selten Abfragen zur zeit nur alle 10 Minuten, deswegen bleibt für den Arbitragebot ausreichend API Calls übrig. 2 unterschiedliche Arbitragestrategien kann ich dadurch nicht gleichzeitig laufen lassen, da wird mich die Exchange blacklisten.  Sad

Ich wollte rasch etwas haben, das so halbwegs funktioniert. Sollte ich dauerhaft mehrere Arbitragebots gleichzeitig laufen lassen wollen, würde ich einen Proxy schreiben.


Wenn ich das mit dem Antizyklischen korrekt verstanden habe, dann müssten beide sich zumindest nicht negativ beeinflussen. Potenziell kann sich zwar das Handelsvolumen bei gleichen Coins verringern so dass man bei einer kritischen Anzahl keine Arbitrage Möglichkeiten mehr hat aber würde das mal als gering einstufen.
Wie seht ihr das?

Meine Arbitragebots sind zu jeder anderen Strategie kompatibel. Solange genug Funds vorhanden sind, schiessen sie ihre Orders in den Markt, ohne sich zu kümmern ob sie durchgeführt werden. Natürlich kann es passieren, daß Orders nicht gefillt werden, dann ist eben weniger Geld verfügbar, bis die Order gefillt wird. Ich gehe davon aus, daß jede Order irgendwann einmal gefillt wird.

Der Antizyklische Bot ist nicht so tolerant. Jede einzelne Order verändert die Gewichtung der Coins untereinander, was der Antizyklische Bot sofort wieder ausgleicht. Erst mit mehreren Orders kannst Du ihn überlisten. Die Orders einer Dreiecksarbitrage stören nicht, da sie die Gewichtung nur sehr gering ändern, nur um den Profit der Arbitrage (und der ist immer sehr klein.)

Bei einem "to da moon" kannst Du auch mit laufendem Antizyklus Bot mitmachen, Du mußt nur zu jeder Kauforder eine Fake - Verkaufsdorder mit gleichem Betrag aber extrem hohen Preis in den Markt stellen. Bei einer Verkaufsorder zusätzlich eine Fake - Kauforder mit extrem niedrigen Preis in den Markt stellen. Ist der Pump and Dump fertig, die beiden Fake - Orders löschen. Mit "Fake" meine ich, daß es nicht geplant ist, dass diese Orders jemals gefillt werden. Wäre schon ein Zufall, wenn der Bot gerade eine Umgewichtung machen will, während Du die Order manuell eingibts.

Es kann tatsächlich vorkommen, dass Arbitragemöglichkeiten nicht wahrgenommen werden können, wegen offener Order. Bei CEX.IO ist das problem harmlos, da werden die Arbitrageorders fast immer sofort gefillt, bei BTCe ist das umgekehrt, meistens bleibt ein Leg über, der aber meist in ein Paar Minuten matcht. Allerdings habe ich auf BTCe noch Orders offen wie Verkaufe BTC um 590 USD, oder verkaufe LTC um 7.90 USD........

12313123
Pages: « 1 [2] 3 4 5 6 7 8 9 10 11 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!