Abend liebe Bitcoiner. Heute ging es ja mal wieder richtig rund.
Da will ich doch gleich mal weiter machen!
Ich habe weiterhin mit dem Wochen-HMM gespielt (siehe hier
https://bitcointalksearch.org/topic/m.43170802 und hier
https://bitcointalksearch.org/topic/methoden-und-algorithmen-zur-fortgeschrittenen-kursanalyse-4586924).
Jetzt kommts: ich habe mir überlegt, was passieren würde, wenn man bei jeder Zustandsänderung mit Geld spielte. Die Idee ist: Blase (grün) => long; Bär (rot) => short; Seitwärts (schwarz) => 50:50; und "Bullenfalle" (violett) => long. Dafür muss man jeweils zwei Wochen im Auge behalten, d.h. nehmen wir an heute ist ein Montag, gestern war Sonntag und der HMM hat eine Zustandsänderung vorhergesagt, relativ zum Sonntag davor. Jetzt tauscht man seinen Wert entsprechend der genannten Regeln. Und zwar zum Opening Price der aktuellen Woche, also dem aktuellen Montag. Starteinsatz sind 1000$, los geht es in der Blase Anfang/Mitte 2013. Die Spalten sind Wochen#, HMM-Zustand, Dollar-Balance, Bitcoin-Balance und Opening Price der folgenden Woche:
75 green 0 23.4631628343501 42.62
76 green 0 23.4631628343501 46.93
77 green 0 23.4631628343501 72
78 green 0 23.4631628343501 88
79 green 0 23.4631628343501 134.98
80 green 0 23.4631628343501 61.3
81 green 0 23.4631628343501 100.01
82 green 0 23.4631628343501 138.87
83 red 2648.99108399812 0 112.9
84 red 2648.99108399812 0 111.97
85 red 2648.99108399812 0 111.03
86 red 2648.99108399812 0 123.58
87 red 2648.99108399812 0 127.03
88 red 2648.99108399812 0 119.27
89 red 2648.99108399812 0 100.01
90 red 2648.99108399812 0 104.66
91 red 2648.99108399812 0 97.89
92 red 2648.99108399812 0 78.94
93 red 2648.99108399812 0 86.14
94 black 1324.49554199906 15.5621612266368 85.11
95 black 1324.49554199906 15.5621612266368 89.99
96 black 1324.49554199906 15.5621612266368 96.04
97 black 1324.49554199906 15.5621612266368 93.56
98 black 1324.49554199906 15.5621612266368 98.14
99 black 1324.49554199906 15.5621612266368 109.35
100 black 1324.49554199906 15.5621612266368 118.95
101 black 1324.49554199906 15.5621612266368 123.47
102 black 1324.49554199906 15.5621612266368 127.16
103 black 1324.49554199906 15.5621612266368 124.39
104 black 1324.49554199906 15.5621612266368 124.89
105 black 1324.49554199906 15.5621612266368 117.21
106 black 1324.49554199906 15.5621612266368 126.42
107 violet 0 24.7702781760185 143.84
108 violet 0 24.7702781760185 186.4
109 violet 0 24.7702781760185 203.49
110 violet 0 24.7702781760185 292.88
111 violet 0 24.7702781760185 418.11
112 violet 0 24.7702781760185 725
113 violet 0 24.7702781760185 1016.02
114 red 25389.0397248555 0 1024.98
115 red 25389.0397248555 0 869.14
116 red 25389.0397248555 0 680.99
117 red 25389.0397248555 0 760
118 red 25389.0397248555 0 786.91
119 red 25389.0397248555 0 834.99
120 red 25389.0397248555 0 817.88
121 red 25389.0397248555 0 812.4
122 red 25389.0397248555 0 799.89
123 red 25389.0397248555 0 760.6
124 red 25389.0397248555 0 620.04
125 red 25389.0397248555 0 569.83
126 red 25389.0397248555 0 587.73
127 red 25389.0397248555 0 661.84
128 red 25389.0397248555 0 641.82
129 red 25389.0397248555 0 586.73
130 red 25389.0397248555 0 510.01
131 red 25389.0397248555 0 446.01
132 red 25389.0397248555 0 382.95
133 red 25389.0397248555 0 506.51
134 red 25389.0397248555 0 498.32
135 red 25389.0397248555 0 460.3
136 red 25389.0397248555 0 442.72
137 red 25389.0397248555 0 447.46
138 red 25389.0397248555 0 524.88
139 red 25389.0397248555 0 571.49
140 red 25389.0397248555 0 663.5
141 red 25389.0397248555 0 575.5
142 red 25389.0397248555 0 596.63
143 red 25389.0397248555 0 573.85
144 red 25389.0397248555 0 642.98
145 red 25389.0397248555 0 617.99
146 red 25389.0397248555 0 625.32
147 red 25389.0397248555 0 604
148 red 25389.0397248555 0 584.96
149 red 25389.0397248555 0 588.39
150 red 25389.0397248555 0 511.88
151 red 25389.0397248555 0 525.16
152 red 25389.0397248555 0 507
153 red 25389.0397248555 0 488.88
154 red 25389.0397248555 0 475.2
155 red 25389.0397248555 0 428.95
156 red 25389.0397248555 0 412.39
157 red 25389.0397248555 0 373.92
158 red 25389.0397248555 0 355.43
159 red 25389.0397248555 0 382.08
160 red 25389.0397248555 0 355.9
161 red 25389.0397248555 0 344.73
162 red 25389.0397248555 0 350.73
163 red 25389.0397248555 0 418
164 red 25389.0397248555 0 357.95
165 red 25389.0397248555 0 368.69
166 red 25389.0397248555 0 369.85
167 red 25389.0397248555 0 348.85
168 red 25389.0397248555 0 315
169 red 25389.0397248555 0 318.49
170 red 25389.0397248555 0 315.27
171 red 25389.0397248555 0 268.36
172 red 25389.0397248555 0 210.38
173 red 25389.0397248555 0 253.42
174 red 25389.0397248555 0 227.33
175 black 12694.5198624277 56.6390927694987 224.13
176 black 12694.5198624277 56.6390927694987 234.06
177 black 12694.5198624277 56.6390927694987 235.99
178 black 12694.5198624277 56.6390927694987 257.44
179 black 12694.5198624277 56.6390927694987 275.01
180 black 12694.5198624277 56.6390927694987 286.48
181 black 12694.5198624277 56.6390927694987 268.38
182 black 12694.5198624277 56.6390927694987 242.56
183 black 12694.5198624277 56.6390927694987 257.39
184 black 12694.5198624277 56.6390927694987 236.5
185 black 12694.5198624277 56.6390927694987 222.89
186 black 12694.5198624277 56.6390927694987 219.52
187 black 12694.5198624277 56.6390927694987 239
188 black 12694.5198624277 56.6390927694987 240.09
189 black 12694.5198624277 56.6390927694987 235.75
190 black 12694.5198624277 56.6390927694987 239.97
191 black 12694.5198624277 56.6390927694987 230.29
192 black 12694.5198624277 56.6390927694987 222.54
193 black 12694.5198624277 56.6390927694987 231.45
194 black 12694.5198624277 56.6390927694987 243.14
195 black 12694.5198624277 56.6390927694987 248.33
196 violet 0 103.520398118593 270.78
197 violet 0 103.520398118593 307.94
198 red 28486.7431542744 0 275.18
199 red 28486.7431542744 0 292.57
200 red 28486.7431542744 0 281.56
201 red 28486.7431542744 0 264.56
202 red 28486.7431542744 0 256.67
203 red 28486.7431542744 0 227.82
204 black 14243.3715771372 62.7627195608408 226.94
205 black 14243.3715771372 62.7627195608408 241.23
206 black 14243.3715771372 62.7627195608408 228.99
207 black 14243.3715771372 62.7627195608408 229.6
208 black 14243.3715771372 62.7627195608408 232.02
209 black 14243.3715771372 62.7627195608408 238.54
210 black 14243.3715771372 62.7627195608408 247.89
211 black 14243.3715771372 62.7627195608408 262
212 violet 0 112.136581101111 288.48
213 violet 0 112.136581101111 326.18
214 violet 0 112.136581101111 373.65
215 red 35912.8614634418 0 320.26
216 red 35912.8614634418 0 323.48
217 red 35912.8614634418 0 372.21
218 red 35912.8614634418 0 391.44
219 red 35912.8614634418 0 434.8
220 red 35912.8614634418 0 442.92
221 red 35912.8614634418 0 424.79
222 red 35912.8614634418 0 428.42
223 red 35912.8614634418 0 447.11
224 red 35912.8614634418 0 386.7
225 black 17956.4307317209 44.5856650238887 402.74
226 black 17956.4307317209 44.5856650238887 374.72
227 black 17956.4307317209 44.5856650238887 374.67
228 black 17956.4307317209 44.5856650238887 403.26
229 black 17956.4307317209 44.5856650238887 438.88
230 black 17956.4307317209 44.5856650238887 431.64
231 black 17956.4307317209 44.5856650238887 408.76
232 black 17956.4307317209 44.5856650238887 412.58
233 black 17956.4307317209 44.5856650238887 410.53
234 black 17956.4307317209 44.5856650238887 424.99
235 black 17956.4307317209 44.5856650238887 418.2
236 black 17956.4307317209 44.5856650238887 420.55
237 black 17956.4307317209 44.5856650238887 427.33
238 black 17956.4307317209 44.5856650238887 457.71
239 black 17956.4307317209 44.5856650238887 452.97
240 black 17956.4307317209 44.5856650238887 457.39
241 black 17956.4307317209 44.5856650238887 456.79
242 black 17956.4307317209 44.5856650238887 438.5
243 violet 0 79.5060880645159 514.21
244 violet 0 79.5060880645159 571.55
245 violet 0 79.5060880645159 667.04
246 violet 0 79.5060880645159 761.49
247 red 49689.7149185611 0 624.98
248 black 24844.8574592806 37.5867737659313 661
249 black 24844.8574592806 37.5867737659313 647
250 black 24844.8574592806 37.5867737659313 678.42
251 black 24844.8574592806 37.5867737659313 662
252 black 24844.8574592806 37.5867737659313 629.88
253 black 24844.8574592806 37.5867737659313 590.28
254 black 24844.8574592806 37.5867737659313 568.01
255 black 24844.8574592806 37.5867737659313 576.3
256 black 24844.8574592806 37.5867737659313 572
257 black 24844.8574592806 37.5867737659313 601.74
258 black 24844.8574592806 37.5867737659313 603
259 black 24844.8574592806 37.5867737659313 608.77
260 black 24844.8574592806 37.5867737659313 599
261 black 24844.8574592806 37.5867737659313 608.08
262 black 24844.8574592806 37.5867737659313 611.79
263 black 24844.8574592806 37.5867737659313 639
264 black 24844.8574592806 37.5867737659313 649.31
265 black 24844.8574592806 37.5867737659313 694.02
266 black 24844.8574592806 37.5867737659313 709.99
267 black 24844.8574592806 37.5867737659313 700.02
268 black 24844.8574592806 37.5867737659313 727.03
269 black 24844.8574592806 37.5867737659313 726.98
270 black 24844.8574592806 37.5867737659313 759.76
271 black 24844.8574592806 37.5867737659313 768.19
272 black 24844.8574592806 37.5867737659313 788.17
273 violet 0 65.5532492148164 888.38
274 violet 0 65.5532492148164 1002.4
275 red 59698.6885274411 0 910.69
276 red 59698.6885274411 0 816.23
277 red 59698.6885274411 0 918.36
278 red 59698.6885274411 0 913.76
279 red 59698.6885274411 0 1010.01
280 red 59698.6885274411 0 1002.92
281 red 59698.6885274411 0 1052.01
282 red 59698.6885274411 0 1176.37
283 red 59698.6885274411 0 1270
284 red 59698.6885274411 0 1231.8
285 red 59698.6885274411 0 1034.79
286 red 59698.6885274411 0 952.46
287 red 59698.6885274411 0 1081.82
288 red 59698.6885274411 0 1211.52
289 black 29849.3442637206 25.4335681598137 1173.62
290 black 29849.3442637206 25.4335681598137 1241.99
291 violet 0 47.5278274223752 1351
292 violet 0 47.5278274223752 1535.98
293 violet 0 47.5278274223752 1780
294 violet 0 47.5278274223752 2016
295 violet 0 47.5278274223752 2162.7
296 violet 0 47.5278274223752 2509.01
297 violet 0 47.5278274223752 2942.24
298 red 118151.802580654 0 2485.95
299 red 118151.802580654 0 2485
300 red 118151.802580654 0 2515.99
301 red 118151.802580654 0 2525.89
302 green 0 62.1871230568616 1899.94
303 green 0 62.1871230568616 2769.97
304 green 0 62.1871230568616 2739.52
305 green 0 62.1871230568616 3264.89
306 green 0 62.1871230568616 4100
307 red 254548.68519496 0 4093.27
308 red 254548.68519496 0 4349.23
309 red 254548.68519496 0 4599.99
310 red 254548.68519496 0 4238.99
311 red 254548.68519496 0 3695.77
312 red 254548.68519496 0 3668.41
313 red 254548.68519496 0 4322.05
314 red 254548.68519496 0 4573.11
315 red 254548.68519496 0 5561.97
316 red 254548.68519496 0 5899.89
317 red 254548.68519496 0 6173
318 green 0 34.6614294383281 7343.86
319 green 0 34.6614294383281 5699.48
320 green 0 34.6614294383281 8015
321 green 0 34.6614294383281 9235.08
322 green 0 34.6614294383281 11100
323 green 0 34.6614294383281 14255.36
324 green 0 34.6614294383281 19208.06
325 green 0 34.6614294383281 13790
326 red 482660.404928718 0 13925
327 red 482660.404928718 0 16439.43
328 red 482660.404928718 0 13585.01
329 red 482660.404928718 0 11241.99
330 red 482660.404928718 0 11713.01
331 red 482660.404928718 0 8387.58
332 red 482660.404928718 0 8319.03
333 red 482660.404928718 0 10600
334 red 482660.404928718 0 9686.1
335 red 482660.404928718 0 11368.76
336 red 482660.404928718 0 9517.07
337 red 482660.404928718 0 8161.91
338 red 482660.404928718 0 8632.99
339 red 482660.404928718 0 6818.64
340 red 482660.404928718 0 7005.12
341 red 482660.404928718 0 8306.88
342 red 482660.404928718 0 8915
343 red 482660.404928718 0 9313.8
344 red 482660.404928718 0 9516.99
345 red 482660.404928718 0 8653.69
346 red 482660.404928718 0 8523.5
347 red 482660.404928718 0 7333.24
348 red 482660.404928718 0 7681.6
349 red 482660.404928718 0 6758.5
350 red 482660.404928718 0 6493.26
351 red 482660.404928718 0 6166.85
352 red 482660.404928718 0 6367.31
353 red 482660.404928718 0 6751.23
354 red 482660.404928718 0 6379.95
355 red 482660.404928718 0 7375.99
Natürlich ist sowas rückblickend immer einfach gemacht. Einmal ist nicht klar, ob der HMM nach 75 Wochen schon ein stabiles Modell gefittet hätte. Es wird ausserdem wohl noch zusätzliche Gebühren geben und den Opening Price wird man so auch nicht immer treffen. Die Rechnung ist ohne Steuer! Man kann aber prinzipiell den entsprechenden Prozentsatz (20%???) alle 52 Wochen vom Gewinn abziehen. Und ich habe mich sicherlich irgendwo vertan, Indizes vertauscht oder verrechnet (z.B. bei der 50:50-Kalkulation) u.ä.. Das sieht nämlich viel zu schön aus um wahr zu sein. Aber als Werbung sollte das ganz gut funktionieren. Wer dadurch reich wird kann mir dann gerne was davon abgeben
.
Hätte man die 23 Coins vom Start liegen gelassen, dann hätte man aktuell "nur" umgerechnet ca. 184000$ und hätte man diese beim ATH verkauft ca. 460000$. Der Unterschied ist also doch gar nicht so gross ... aber wer trifft schon immer das Top? Das Problem scheint hier zu sein, dass man mit einer Wochenauflösung das ATH, also die richtige Übertreibung, gar nicht zu sehen bekommt. Von daher vielleicht doch nicht so schlecht. Und man kann den HMM ja alternativ auf kleinere Zeitabstände einstellen bzw trainieren. Es stellt sich aber trotzdem die Frage ob man sich den Stress überhaupt geben möchte und nicht einfach hodled. Wobei, das Maximum an Coins zwischen drin waren 112 BTC, wenn man die behalten hätte ... da geht also noch was!Das Modell bzw. die Methode ist natürlich Dollar zentriert, ein Bitcoin bleibt auch hier weiterhin exakt ein Bitcoin!!!1
Anbei noch der Code (in meinem Modell ist Zustand 1 grün, Zustand 2 rot, Zustand 3 schwarz und Zustand 4 violett):
dol <- 1000;
btc <- 0;
col <- NULL;
for (i in 75:(nrow(post_probs4)-1)){
op <- y$OPEN_PRICE[i+1]; # opening price monday
os <- post_probs4[i-1,1]; # state prediction sunday before last sunday
ns <- post_probs4[i,1]; # state prediction last sunday
if (os != ns || is.null(col)){
# if green, go long
if (ns == 1){
col <- "green";
btc <- btc + dol/op;
dol <- 0;
}
# if red, go short
if (ns == 2){
col <- "red";
dol <- dol + btc*op;
btc <- 0;
}
# if black, make 50:50
if (ns == 3){
col <- "black";
# more dollars?
if (dol > btc*op){
btc_new <- btc + 0.5*(dol - btc*op)/op;
dol_new <- dol - 0.5*(dol - btc*op);
}
# more btc?
if (dol < btc*op){
btc_new <- btc - 0.5*(dol - btc*op)/op;
dol_new <- dol + 0.5*(dol - btc*op);
}
dol <- dol_new;
btc <- btc_new;
}
# if violet, go long
if (ns == 4){
col <- "violet";
btc <- btc + dol/op;
dol <- 0;
}
}
cat(paste(i, col, dol, btc, op, sep="\t")); cat("\n");
}
Edit: Da fällt mir ein, dass man ja nun auch noch die Tauschverhältnisse optimieren könnte. Oberes Beispiel ist ja ziemlich naiv: 0:100, 100:0, 50:50 und 0:100. Das sind ja nur vier Parameter. Man könnte also den Raum der Verhältnisse absuchen. Bei 10% Sprüngen sind das nur 10000 Möglichkeiten und dann die Verhältnisse nehmen welche den maximalen Wertoutcome (in Dollar oder BTC) erzeugen. Ob so eine Optimierung dann aber auch für die Zukunft gülitg ist, das weiss ich auch nicht.