phildeutsch / bitbot Goto Github PK
View Code? Open in Web Editor NEWAlgorithmic bitcoin trading
Home Page: www.phildeutsch.com
Algorithmic bitcoin trading
Home Page: www.phildeutsch.com
Alle trader informationen sollten in status gegeben sein, d.h. die aktuellen Werte von allen Variablen.
check if coinstotrade in [-m.btc, p.EUR * m.bid]
priceHistory deque should be initialized automatically if enough data is available in history.csv
When reaching stop loss, trading should be suspended (not everything sold off at once).
Not used atm
Sollte nur price anzeigen (nicht bis ask)
Tab separated
Bid/ASK sind im plot vertauscht
Head.txt usw sollten in source sein
Es sollte nur mit x Prozent getraded werden (ca 80%).
Die restlichen (1-x)% bleiben in EUR, und werden verwendet um zu traden wenn der Preis innerhalb eines Tages (?) um y% (~20%?) einbricht.
Include error handling when using kraken api
Sollte aus history.csv ausgerechnet werden.
add usd to portfolio and market data
duplicate everything for usd?! how do i need to change the trader classe?
come up with strategy.
Wie kann man am besten Preisunterschiede ausnutzen
from smtplib import SMTP_SSL as SMTP
import sys
from email.mime.text import MIMEText
text = 'sent from python'
msg = MIMEText(text, 'plain')
recipient = '[email protected]'
sender = '[email protected]'
msg['Subject'] = "test email"
msg['To'] = recipient
msg['From'] = sender
conn = SMTP('smtpout.europe.secureserver.net')
conn.login(sender, 'Dezember2013')
conn.sendmail(sender, recipient, msg.as_string())
conn.close()
Function commented out atm.
Check behaviour and test different time horizons for moving average
Irgendwas passt nicht mit den incoming/outgoing cashflows.
Wenn suspend == 1, dann sollte auch coinsToTrade immer auf 0 gesetzt werden (damit das logfile und der plot stimmt).
Wenn target < 0.2 dann target = 0.2
Ein paar settings werden nicht verwendet:
middistance, midprice, tradefactor. Die sollten gelöscht werden.
Wie ist Risikomanagement implementiert?
Stop loss? Var? Recherche
change from btc/eur trading to btc/usd trading
Not used atm
Does this mean backtested values were wrong? Output old backtest with bounds.
Verkaufe alles bei bid < minPrice
Enthält Informationen zu Investments je Kunde
Time, CID, amount
Mehrere exchanges - Portfolio status auf den Börsen und Möglichkeit die Verteilung zu balancieren
File is outdated.
Update to incorporate new class structure.
printed output of status.txt is off
Preis mit dem letzten preis vergleichen. Wenn die Differenz zu groß ist - alles verkaufen.
shout be a callable function:
def backtest(settings, logfileName, logfileNameBT)
....
return 0
even if coinstotrade < mintrade
Börsen sollten unabhängig voneinander handeln. Das heißt bei N Börsen:
N marketData Instanzen
N trader Instanzen
N Portfolio Instanzen
Und Schleife innerhalb Main loop
Speichert kundeninfo
CID, Name, email
File is outdated. Rewrite to include new class structure.
Sollte nur am preis berechnet werden (und nicht Wechsel in eur und zurück berücksichtigen)
es sollte eine möglichkeit geben, in bitbot testen zu flaggen, sodass nicht gehandelt wird.
Historische Zeitreihen extern runterladen und für backtest formatieren.
Dadurch kann man einen Backtest für längeren Zeithorizont (Monate / Jahre) durchführen.
Monte Carlo Simulation basierend auf historischen Parametern.
Sollte zusätzlich zum backtesting implementiert werden.
Eigenes log für transactionen
Enthält alles, was bitbot schreibt:
log.csv
logTrades.csv
status.txt
plot.html
int data/ bleiben transfer.dat, cust.dat, backtestdaten usw
Tradesize needs to change depending on the value of the portfolio
Aussuchen ob
suspend
wenn nein, dann
override - wenn ja, target eingeben
Performance muss auf kundenebene gerechnet werden
Performance sollte Portfolio wert ausgeben (pro Tag)
Es sollte automatisch ein Bild mit den letzen Werten geneieriert wertden. Evtl google APIß
Überdenken, welche Funktionen Objektfunktionen sein sollen, und welche Standalone. Welche Funktionen muss Trader, Portfolio bzw Marktdaten haben?
Am Ende der Hauptschleife sollte ein Fehlercheck stattfinden, alle Fehler sollten
Total performance ist falsch: Zeigt negativen Wert an, obwohl bt performance positiv war.
Updated nicht mehr.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.