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
Wenn target < 0.2 dann target = 0.2
File is outdated. Rewrite to include new class structure.
Es sollte automatisch ein Bild mit den letzen Werten geneieriert wertden. Evtl google APIß
Wenn suspend == 1, dann sollte auch coinsToTrade immer auf 0 gesetzt werden (damit das logfile und der plot stimmt).
add usd to portfolio and market data
duplicate everything for usd?! how do i need to change the trader classe?
come up with strategy.
check if coinstotrade in [-m.btc, p.EUR * m.bid]
Ü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
Bid/ASK sind im plot vertauscht
Head.txt usw sollten in source sein
Preis mit dem letzten preis vergleichen. Wenn die Differenz zu groß ist - alles verkaufen.
Updated nicht mehr.
Sollte aus history.csv ausgerechnet werden.
Not used atm
Does this mean backtested values were wrong? Output old backtest with bounds.
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()
Not used atm
Mehrere exchanges - Portfolio status auf den Börsen und Möglichkeit die Verteilung zu balancieren
printed output of status.txt is off
Enthält Informationen zu Investments je Kunde
Time, CID, amount
Eigenes log für transactionen
Tradesize needs to change depending on the value of the portfolio
Historische Zeitreihen extern runterladen und für backtest formatieren.
Dadurch kann man einen Backtest für längeren Zeithorizont (Monate / Jahre) durchführen.
change from btc/eur trading to btc/usd trading
Monte Carlo Simulation basierend auf historischen Parametern.
Sollte zusätzlich zum backtesting implementiert werden.
Performance muss auf kundenebene gerechnet werden
Performance sollte Portfolio wert ausgeben (pro Tag)
even if coinstotrade < mintrade
Enthält alles, was bitbot schreibt:
log.csv
logTrades.csv
status.txt
plot.html
int data/ bleiben transfer.dat, cust.dat, backtestdaten usw
Include error handling when using kraken api
Wie ist Risikomanagement implementiert?
Stop loss? Var? Recherche
Alle trader informationen sollten in status gegeben sein, d.h. die aktuellen Werte von allen Variablen.
Speichert kundeninfo
CID, Name, email
Wie kann man am besten Preisunterschiede ausnutzen
Irgendwas passt nicht mit den incoming/outgoing cashflows.
Sollte nur price anzeigen (nicht bis ask)
Tab separated
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.
Aussuchen ob
suspend
wenn nein, dann
override - wenn ja, target eingeben
Total performance ist falsch: Zeigt negativen Wert an, obwohl bt performance positiv war.
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
priceHistory deque should be initialized automatically if enough data is available in history.csv
Sollte nur am preis berechnet werden (und nicht Wechsel in eur und zurück berücksichtigen)
When reaching stop loss, trading should be suspended (not everything sold off at once).
File is outdated.
Update to incorporate new class structure.
Ein paar settings werden nicht verwendet:
middistance, midprice, tradefactor. Die sollten gelöscht werden.
Verkaufe alles bei bid < minPrice
es sollte eine möglichkeit geben, in bitbot testen zu flaggen, sodass nicht gehandelt wird.
shout be a callable function:
def backtest(settings, logfileName, logfileNameBT)
....
return 0
Function commented out atm.
Check behaviour and test different time horizons for moving average
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.