Backtesten geht von der Annahme aus, daß sich die Vergangeheit wiederholt. Aber sie reimt sich nur, und das nur manchmal.
Die Aussage solltest du nochmal überdenken. Du schreibst ja keinen Bot, der einem bestimmten Ablauf folgt, sondern einen, der auf bestimmte Ereignisse (Indikatoren) reagiert. Und die wiederholen sich sehr wohl. Wenn du es richtig machst, optimierst du deinen Bot mit einem bestimmten Set Testdaten und evaluierst ihn anschließend mit einem ganz anderen Set. (siehe
Walk forward optimization). Damit kannst du das Overfitting vermeiden.
Wie auch immer, weil mir langweilig ist, übernehme ich das backtesten mal für dich:
Wir nehmen 2 verschiedene Jahre: einmal einen einen Bullenmarkt (2013) und einen Bärenmarkt (2014).
Wir starten jedes Jahr mit 5000 USD und 0.5% Fees auf Bitstamp und gucken, was am Ende über ist.
Wir vergleichen 2 Bots:
- Der Rebalancing-Bot investiert anfangs 50% in Bitcoin und schichtet alle paar Tage um
- Der Trendfolge-Bot reagiert auf ein Crossover von zwei gleitenden Durchschnitten: SMA(10) und SMA(21)
Ergebnisse:
2013:
- Der
Rebalancing-Bot hat am Ende des Jahres 30.15 BTC (Wert 24814.93 USD) und 25702.48 USD in Fiat =
50517.41 USD- Der
Trendfolge-Bot hat am Ende des Jahres kein Fiat, aber 133.28 BTC im Wert von
109694.38 USD2014:
- Der
Rebalancing-Bot hat am Ende des Jahres 6.22 BTC (Wert 1411.97 USD) und 1412.65 USD in Fiat =
2824.62 USD- Der
Trendfolge-Bot hat
3686.51 USD über
(Quellcode und Ergebnisse kannst du durch anklicken des jeweiligen Links sehen)
(Noch ein Disclaimer: der Trendfolge-Bot ist der dümmste den es gibt, also bitte nicht produktiv verwenden)