-
Notifications
You must be signed in to change notification settings - Fork 1
/
170416_BacktestingImproved.nb
4764 lines (4750 loc) · 268 KB
/
170416_BacktestingImproved.nb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
(* Content-type: application/vnd.wolfram.mathematica *)
(*** Wolfram Notebook File ***)
(* http://www.wolfram.com/nb *)
(* CreatedBy='Mathematica 11.0' *)
(*CacheID: 234*)
(* Internal cache information:
NotebookFileLineBreakTest
NotebookFileLineBreakTest
NotebookDataPosition[ 158, 7]
NotebookDataLength[ 269259, 4756]
NotebookOptionsPosition[ 268792, 4736]
NotebookOutlinePosition[ 269148, 4752]
CellTagsIndexPosition[ 269105, 4749]
WindowFrame->Normal*)
(* Beginning of Notebook Content *)
Notebook[{
Cell[BoxData[
RowBox[{
RowBox[{
"The", " ", "following", " ", "code", " ", "adds", " ", "up", " ", "cost",
" ", "when", " ", "do", " ", "backtesting", " ", "by", " ", "Liu", " ",
"Hua"}], "-", "shan"}]], "DisplayFormula",
Editable->False,
CellChangeTimes->{{3.701330845962*^9, 3.7013309373380003`*^9}, {
3.7013310032390003`*^9, 3.701331018867*^9}}],
Cell[BoxData[{
RowBox[{
RowBox[{
RowBox[{"JLHold", "[", "stkPrice_", "]"}], ":=",
RowBox[{"Module", "[",
RowBox[{
RowBox[{"{",
RowBox[{
"capitals", ",", "position", ",", "ttassets", ",", "trdprice", ",",
"svramout", ",", "taxamout", ",", "capitals2", ",", "position2", ",",
"ttassets2", ",", "trdprice2", ",", "svramout2", ",", "taxamout2", ",",
"buyHands", ",", "result"}], "}"}], ",", "\[IndentingNewLine]",
RowBox[{
RowBox[{"capitals", "=",
RowBox[{
RowBox[{"Last", "[", "tradeList", "]"}], "[",
RowBox[{"[", "1", "]"}], "]"}]}], ";", "\[IndentingNewLine]",
RowBox[{"position", "=",
RowBox[{
RowBox[{"Last", "[", "tradeList", "]"}], "[",
RowBox[{"[", "2", "]"}], "]"}]}], ";", "\[IndentingNewLine]",
RowBox[{"ttassets", "=",
RowBox[{
RowBox[{"Last", "[", "tradeList", "]"}], "[",
RowBox[{"[", "3", "]"}], "]"}]}], ";", "\[IndentingNewLine]",
RowBox[{"trdprice", "=",
RowBox[{
RowBox[{"Last", "[", "tradeList", "]"}], "[",
RowBox[{"[", "4", "]"}], "]"}]}], ";", "\[IndentingNewLine]",
RowBox[{"svramout", "=",
RowBox[{
RowBox[{"Last", "[", "tradeList", "]"}], "[",
RowBox[{"[", "5", "]"}], "]"}]}], ";", "\[IndentingNewLine]",
RowBox[{"taxamout", "=",
RowBox[{
RowBox[{"Last", "[", "tradeList", "]"}], "[",
RowBox[{"[", "6", "]"}], "]"}]}], ";", "\[IndentingNewLine]",
RowBox[{"(*",
RowBox[{"not", " ", "buy"}], "*)"}], "\[IndentingNewLine]",
RowBox[{"capitals2", "=", "capitals"}], ";", "\[IndentingNewLine]",
RowBox[{"position2", "=", "position"}], ";", "\[IndentingNewLine]",
RowBox[{"ttassets2", "=",
RowBox[{"capitals", "+",
RowBox[{"position", "*", "stkPrice"}]}]}], ";", "\[IndentingNewLine]",
RowBox[{"trdprice2", "=", "stkPrice"}], ";", "\[IndentingNewLine]",
RowBox[{"svramout2", "=", "0"}], ";", "\[IndentingNewLine]",
RowBox[{"taxamout2", "=", "0"}], ";", "\[IndentingNewLine]",
RowBox[{"tradeList", "=",
RowBox[{"AppendTo", "[",
RowBox[{"tradeList", ",",
RowBox[{
RowBox[{
RowBox[{"Round", "[",
RowBox[{"#", ",", "0.01"}], "]"}], "&"}], "@",
RowBox[{"{",
RowBox[{
"capitals2", ",", "position2", ",", "ttassets2", ",", "trdprice2",
",", "svramout2", ",", "taxamout2"}], "}"}]}]}], "]"}]}], ";",
"\[IndentingNewLine]",
RowBox[{"(*",
RowBox[{"return", " ", "result"}], "*)"}], "\[IndentingNewLine]",
RowBox[{"Return", "[",
RowBox[{"Flatten", "@",
RowBox[{"{",
RowBox[{"\"\<Hold:\>\"", ",",
RowBox[{"Last", "@", "tradeList"}]}], "}"}]}], "]"}], ";"}]}],
"\[IndentingNewLine]", "]"}]}],
"\[IndentingNewLine]"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{"JLBuy", "[",
RowBox[{"buyRate_", ",", "buyPrice_", ",", "svrRate_", ",", "taxRate_"}],
"]"}], ":=",
RowBox[{"Module", "[",
RowBox[{
RowBox[{"{",
RowBox[{
"capitals", ",", "position", ",", "ttassets", ",", "trdprice", ",",
"svramout", ",", "taxamout", ",", "capitals2", ",", "position2", ",",
"ttassets2", ",", "trdprice2", ",", "svramout2", ",", "taxamout2", ",",
"buyHands", ",", "result"}], "}"}], ",", "\[IndentingNewLine]",
RowBox[{
RowBox[{"capitals", "=",
RowBox[{
RowBox[{"Last", "[", "tradeList", "]"}], "[",
RowBox[{"[", "1", "]"}], "]"}]}], ";", "\[IndentingNewLine]",
RowBox[{"position", "=",
RowBox[{
RowBox[{"Last", "[", "tradeList", "]"}], "[",
RowBox[{"[", "2", "]"}], "]"}]}], ";", "\[IndentingNewLine]",
RowBox[{"ttassets", "=",
RowBox[{
RowBox[{"Last", "[", "tradeList", "]"}], "[",
RowBox[{"[", "3", "]"}], "]"}]}], ";", "\[IndentingNewLine]",
RowBox[{"trdprice", "=",
RowBox[{
RowBox[{"Last", "[", "tradeList", "]"}], "[",
RowBox[{"[", "4", "]"}], "]"}]}], ";", "\[IndentingNewLine]",
RowBox[{"svramout", "=",
RowBox[{
RowBox[{"Last", "[", "tradeList", "]"}], "[",
RowBox[{"[", "5", "]"}], "]"}]}], ";", "\[IndentingNewLine]",
RowBox[{"taxamout", "=",
RowBox[{
RowBox[{"Last", "[", "tradeList", "]"}], "[",
RowBox[{"[", "6", "]"}], "]"}]}], ";", "\[IndentingNewLine]",
"\[IndentingNewLine]",
RowBox[{"(*",
RowBox[{"do", " ", "buy"}], "*)"}], "\[IndentingNewLine]",
RowBox[{"buyHands", "=",
RowBox[{"Floor", "[",
RowBox[{"capitals", "*",
RowBox[{"buyRate", "/",
RowBox[{"(",
RowBox[{"buyPrice", "*", "100",
RowBox[{"(",
RowBox[{"1", "+", "svrRate", "+", "taxRate"}], ")"}]}],
")"}]}]}], "]"}]}], ";", "\[IndentingNewLine]",
RowBox[{"If", "[",
RowBox[{
RowBox[{"buyHands", ">", "0"}], ",", "\[IndentingNewLine]",
RowBox[{"(*",
RowBox[{"do", " ", "buy"}], "*)"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"capitals2", "=",
RowBox[{"capitals", "-",
RowBox[{"buyHands", "*", "buyPrice", "*", "100",
RowBox[{"(",
RowBox[{"1", "+", "taxRate"}], ")"}]}], "-",
RowBox[{"Max", "[",
RowBox[{
RowBox[{
"buyHands", "*", "buyPrice", "*", "100", "*", "svrRate"}], ",",
"5"}], "]"}]}]}], ";", "\[IndentingNewLine]",
RowBox[{"position2", "=",
RowBox[{"position", "+",
RowBox[{"buyHands", "*", "100"}]}]}], ";", "\[IndentingNewLine]",
RowBox[{"ttassets2", "=",
RowBox[{"capitals2", "+",
RowBox[{"position2", "*", "buyPrice"}]}]}], ";",
"\[IndentingNewLine]",
RowBox[{"trdprice2", "=", "buyPrice"}], ";", "\[IndentingNewLine]",
RowBox[{"svramout2", "=",
RowBox[{"Max", "[",
RowBox[{
RowBox[{"buyHands", "*", "buyPrice", "*", "100", "*", "svrRate"}],
",", "5.00"}], "]"}]}], ";", "\[IndentingNewLine]",
RowBox[{"taxamout2", "=",
RowBox[{"buyHands", "*", "buyPrice", "*", "100", "*", "taxRate"}]}],
";", "\[IndentingNewLine]",
RowBox[{"tradeList", "=",
RowBox[{"AppendTo", "[",
RowBox[{"tradeList", ",",
RowBox[{
RowBox[{
RowBox[{"Round", "[",
RowBox[{"#", ",", "0.01"}], "]"}], "&"}], "@",
RowBox[{"{",
RowBox[{
"capitals2", ",", "position2", ",", "ttassets2", ",",
"trdprice2", ",", "svramout2", ",", "taxamout2"}], "}"}]}]}],
"]"}]}]}], ",", "\[IndentingNewLine]",
RowBox[{"(*",
RowBox[{"not", " ", "buy"}], "*)"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"JLHold", "[", "buyPrice", "]"}], ";"}]}],
"\[IndentingNewLine]", "]"}], ";", "\[IndentingNewLine]",
RowBox[{"(*",
RowBox[{"return", " ", "result"}], "*)"}], "\[IndentingNewLine]",
RowBox[{"Return", "[",
RowBox[{"Flatten", "@",
RowBox[{"{",
RowBox[{"\"\<Buy:\>\"", ",",
RowBox[{"Last", "@", "tradeList"}]}], "}"}]}], "]"}], ";"}]}],
"\[IndentingNewLine]", "]"}]}],
"\[IndentingNewLine]"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{"JLSell", "[",
RowBox[{
"sellRate_", ",", "sellPrice_", ",", "svrRate_", ",", "taxRate_"}], "]"}],
":=",
RowBox[{"Module", "[",
RowBox[{
RowBox[{"{",
RowBox[{
"capitals", ",", "position", ",", "ttassets", ",", "trdprice", ",",
"svramout", ",", "taxamout", ",", "capitals2", ",", "position2", ",",
"ttassets2", ",", "trdprice2", ",", "svramout2", ",", "taxamout2", ",",
"sellHands", ",", "sellQuans", ",", "result"}], "}"}], ",",
"\[IndentingNewLine]",
RowBox[{
RowBox[{"capitals", "=",
RowBox[{
RowBox[{"Last", "[", "tradeList", "]"}], "[",
RowBox[{"[", "1", "]"}], "]"}]}], ";", "\[IndentingNewLine]",
RowBox[{"position", "=",
RowBox[{
RowBox[{"Last", "[", "tradeList", "]"}], "[",
RowBox[{"[", "2", "]"}], "]"}]}], ";", "\[IndentingNewLine]",
RowBox[{"ttassets", "=",
RowBox[{
RowBox[{"Last", "[", "tradeList", "]"}], "[",
RowBox[{"[", "3", "]"}], "]"}]}], ";", "\[IndentingNewLine]",
RowBox[{"trdprice", "=",
RowBox[{
RowBox[{"Last", "[", "tradeList", "]"}], "[",
RowBox[{"[", "4", "]"}], "]"}]}], ";", "\[IndentingNewLine]",
RowBox[{"svramout", "=",
RowBox[{
RowBox[{"Last", "[", "tradeList", "]"}], "[",
RowBox[{"[", "5", "]"}], "]"}]}], ";", "\[IndentingNewLine]",
RowBox[{"taxamout", "=",
RowBox[{
RowBox[{"Last", "[", "tradeList", "]"}], "[",
RowBox[{"[", "6", "]"}], "]"}]}], ";", "\[IndentingNewLine]",
"\[IndentingNewLine]",
RowBox[{"(*",
RowBox[{"check", " ", "availabe"}], "*)"}], "\[IndentingNewLine]",
RowBox[{"sellHands", "=",
RowBox[{"Floor", "[",
RowBox[{"position", "*",
RowBox[{"sellRate", "/", "100"}]}], "]"}]}], ";",
"\[IndentingNewLine]",
RowBox[{"sellQuans", " ", "=",
RowBox[{"If", "[",
RowBox[{
RowBox[{"sellHands", ">", "1"}], ",",
RowBox[{"sellHands", "*", "100"}], ",", "position"}], "]"}]}], ";",
"\[IndentingNewLine]", "\[IndentingNewLine]",
RowBox[{"If", "[",
RowBox[{
RowBox[{"position", ">", "0"}], ",", "\[IndentingNewLine]",
RowBox[{"(*",
RowBox[{"do", " ", "sell"}], "*)"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"capitals2", "=",
RowBox[{"capitals", "+",
RowBox[{"sellQuans", "*", "sellPrice",
RowBox[{"(",
RowBox[{"1", "-", "taxRate"}], ")"}]}], "-",
RowBox[{"Max", "[",
RowBox[{
RowBox[{"sellQuans", "*", "sellPrice", "*", "svrRate"}], ",",
"5"}], "]"}]}]}], ";", "\[IndentingNewLine]",
RowBox[{"position2", "=",
RowBox[{"position", "-", "sellQuans"}]}], ";",
"\[IndentingNewLine]",
RowBox[{"ttassets2", "=",
RowBox[{"capitals2", "+",
RowBox[{"position2", "*", "sellPrice"}]}]}], ";",
"\[IndentingNewLine]",
RowBox[{"trdprice2", "=", "sellPrice"}], ";", "\[IndentingNewLine]",
RowBox[{"svramout2", "=",
RowBox[{"Max", "[",
RowBox[{
RowBox[{"sellQuans", "*", "sellPrice", "*", "svrRate"}], ",",
"5"}], "]"}]}], ";", "\[IndentingNewLine]",
RowBox[{"taxamout2", "=",
RowBox[{"sellQuans", "*", "sellPrice", "*", "taxRate"}]}], ";",
"\[IndentingNewLine]",
RowBox[{"tradeList", "=",
RowBox[{"AppendTo", "[",
RowBox[{"tradeList", ",",
RowBox[{
RowBox[{
RowBox[{"Round", "[",
RowBox[{"#", ",", "0.01"}], "]"}], "&"}], "@",
RowBox[{"{",
RowBox[{
"capitals2", ",", "position2", ",", "ttassets2", ",",
"trdprice2", ",", "svramout2", ",", "taxamout2"}], "}"}]}]}],
"]"}]}]}], ",", "\[IndentingNewLine]",
RowBox[{"(*",
RowBox[{"not", " ", "sell"}], "*)"}], "\[IndentingNewLine]",
RowBox[{"JLHold", "[", "sellPrice", "]"}]}], "]"}], ";",
"\[IndentingNewLine]",
RowBox[{"(*",
RowBox[{"return", " ", "result"}], "*)"}], "\[IndentingNewLine]",
RowBox[{"Return", "[",
RowBox[{"Flatten", "@",
RowBox[{"{",
RowBox[{"\"\<Sell:\>\"", ",",
RowBox[{"Last", "@", "tradeList"}]}], "}"}]}], "]"}], ";"}]}],
"\[IndentingNewLine]", "]"}]}],
"\[IndentingNewLine]"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"BacktestDo", "[",
RowBox[{
"list_List", ",", "buyRate_", ",", "sellRate_", ",", "svrRate_", ",",
"taxRate_"}], "]"}], ":=", "\[IndentingNewLine]",
RowBox[{"If", "[",
RowBox[{
RowBox[{
RowBox[{"Last", "@", "list"}], "<=", "0"}], ",", "\[IndentingNewLine]",
RowBox[{"JLBuy", "[",
RowBox[{"buyRate", ",",
RowBox[{"First", "[", "list", "]"}], ",", "svrRate", ",", "0"}], "]"}],
",", "\[IndentingNewLine]",
RowBox[{"JLSell", "[",
RowBox[{"sellRate", ",",
RowBox[{"First", "[", "list", "]"}], ",", "svrRate", ",", "taxRate"}],
"]"}]}], "]"}]}]}], "Input"],
Cell[BoxData[
RowBox[{
RowBox[{"lstPrice", "=",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"4.66", ",",
RowBox[{"-", "0.05"}]}], "}"}], ",",
RowBox[{"{",
RowBox[{"4.69", ",", "0.03"}], "}"}], ",",
RowBox[{"{",
RowBox[{"4.78", ",", "0.09"}], "}"}], ",",
RowBox[{"{",
RowBox[{"4.78", ",", "0."}], "}"}], ",",
RowBox[{"{",
RowBox[{"4.81", ",", "0.03"}], "}"}], ",",
RowBox[{"{",
RowBox[{"4.85", ",", "0.04"}], "}"}], ",",
RowBox[{"{",
RowBox[{"4.78", ",",
RowBox[{"-", "0.07"}]}], "}"}], ",",
RowBox[{"{",
RowBox[{"5.1", ",", "0.32"}], "}"}], ",",
RowBox[{"{",
RowBox[{"5.29", ",", "0.19"}], "}"}], ",",
RowBox[{"{",
RowBox[{"5.19", ",",
RowBox[{"-", "0.1"}]}], "}"}], ",",
RowBox[{"{",
RowBox[{"5.28", ",", "0.09"}], "}"}], ",",
RowBox[{"{",
RowBox[{"5.22", ",",
RowBox[{"-", "0.06"}]}], "}"}], ",",
RowBox[{"{",
RowBox[{"5.18", ",",
RowBox[{"-", "0.04"}]}], "}"}], ",",
RowBox[{"{",
RowBox[{"5.07", ",",
RowBox[{"-", "0.11"}]}], "}"}], ",",
RowBox[{"{",
RowBox[{"5.08", ",", "0.01"}], "}"}], ",",
RowBox[{"{",
RowBox[{"5.09", ",", "0.01"}], "}"}], ",",
RowBox[{"{",
RowBox[{"5.07", ",",
RowBox[{"-", "0.02"}]}], "}"}], ",",
RowBox[{"{",
RowBox[{"5.1", ",", "0.03"}], "}"}], ",",
RowBox[{"{",
RowBox[{"5.05", ",",
RowBox[{"-", "0.05"}]}], "}"}], ",",
RowBox[{"{",
RowBox[{"5.05", ",", "0."}], "}"}], ",",
RowBox[{"{",
RowBox[{"5.13", ",", "0.08"}], "}"}], ",",
RowBox[{"{",
RowBox[{"5.1", ",",
RowBox[{"-", "0.03"}]}], "}"}], ",",
RowBox[{"{",
RowBox[{"5.09", ",",
RowBox[{"-", "0.01"}]}], "}"}], ",",
RowBox[{"{",
RowBox[{"5.21", ",", "0.12"}], "}"}], ",",
RowBox[{"{",
RowBox[{"5.24", ",", "0.03"}], "}"}], ",",
RowBox[{"{",
RowBox[{"5.26", ",", "0.02"}], "}"}], ",",
RowBox[{"{",
RowBox[{"5.35", ",", "0.09"}], "}"}], ",",
RowBox[{"{",
RowBox[{"5.19", ",",
RowBox[{"-", "0.16"}]}], "}"}], ",",
RowBox[{"{",
RowBox[{"5.24", ",", "0.05"}], "}"}], ",",
RowBox[{"{",
RowBox[{"5.09", ",",
RowBox[{"-", "0.15"}]}], "}"}], ",",
RowBox[{"{",
RowBox[{"5.18", ",", "0.09"}], "}"}], ",",
RowBox[{"{",
RowBox[{"5.19", ",", "0.01"}], "}"}], ",",
RowBox[{"{",
RowBox[{"5.18", ",",
RowBox[{"-", "0.01"}]}], "}"}], ",",
RowBox[{"{",
RowBox[{"5.13", ",",
RowBox[{"-", "0.05"}]}], "}"}], ",",
RowBox[{"{",
RowBox[{"5.15", ",", "0.02"}], "}"}], ",",
RowBox[{"{",
RowBox[{"5.06", ",",
RowBox[{"-", "0.09"}]}], "}"}], ",",
RowBox[{"{",
RowBox[{"5.09", ",", "0.03"}], "}"}], ",",
RowBox[{"{",
RowBox[{"5.08", ",",
RowBox[{"-", "0.01"}]}], "}"}], ",",
RowBox[{"{",
RowBox[{"5.01", ",",
RowBox[{"-", "0.07"}]}], "}"}], ",",
RowBox[{"{",
RowBox[{"4.99", ",",
RowBox[{"-", "0.02"}]}], "}"}], ",",
RowBox[{"{",
RowBox[{"4.99", ",", "0."}], "}"}], ",",
RowBox[{"{",
RowBox[{"4.94", ",",
RowBox[{"-", "0.05"}]}], "}"}], ",",
RowBox[{"{",
RowBox[{"4.98", ",", "0.04"}], "}"}], ",",
RowBox[{"{",
RowBox[{"4.92", ",",
RowBox[{"-", "0.06"}]}], "}"}], ",",
RowBox[{"{",
RowBox[{"4.87", ",",
RowBox[{"-", "0.05"}]}], "}"}], ",",
RowBox[{"{",
RowBox[{"4.91", ",", "0.04"}], "}"}], ",",
RowBox[{"{",
RowBox[{"4.91", ",", "0."}], "}"}], ",",
RowBox[{"{",
RowBox[{"4.92", ",", "0.01"}], "}"}], ",",
RowBox[{"{",
RowBox[{"4.95", ",", "0.03"}], "}"}], ",",
RowBox[{"{",
RowBox[{"4.9", ",",
RowBox[{"-", "0.05"}]}], "}"}], ",",
RowBox[{"{",
RowBox[{"4.93", ",", "0.03"}], "}"}], ",",
RowBox[{"{",
RowBox[{"4.99", ",", "0.06"}], "}"}], ",",
RowBox[{"{",
RowBox[{"5.04", ",", "0.05"}], "}"}], ",",
RowBox[{"{",
RowBox[{"4.98", ",",
RowBox[{"-", "0.06"}]}], "}"}], ",",
RowBox[{"{",
RowBox[{"5.17", ",", "0.19"}], "}"}], ",",
RowBox[{"{",
RowBox[{"5.07", ",",
RowBox[{"-", "0.1"}]}], "}"}], ",",
RowBox[{"{",
RowBox[{"5.08", ",", "0.01"}], "}"}], ",",
RowBox[{"{",
RowBox[{"5.14", ",", "0.06"}], "}"}], ",",
RowBox[{"{",
RowBox[{"5.17", ",", "0.03"}], "}"}], ",",
RowBox[{"{",
RowBox[{"5.07", ",",
RowBox[{"-", "0.1"}]}], "}"}]}], "}"}]}], ";"}]], "Input",
CellChangeTimes->{3.701330795082*^9}],
Cell[CellGroupData[{
Cell[BoxData[{
RowBox[{
RowBox[{"tradeList", "=",
RowBox[{"{",
RowBox[{"{",
RowBox[{
"500000", ",", "0", ",", "500000", ",", "0", ",", "0", ",", "0"}], "}"}],
"}"}]}], ";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"buyRate", "=", "0.3"}], ";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"sellRate", "=", "0.8"}], ";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"svrRate", "=", "0.0003"}], ";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"taxRate", "=", "0.001"}], ";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{
RowBox[{"BacktestDo", "[",
RowBox[{
"#", ",", "buyRate", ",", "sellRate", ",", "svrRate", ",", "taxRate"}],
"]"}], "&"}], "/@", "lstPrice"}], ";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"tradeList", "=",
RowBox[{"Rest", "@", "tradeList"}]}], ";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{"{",
RowBox[{
"capitals", ",", "position", ",", "totalassets", ",", "closeprice", ",",
"servicefee", ",", "taxfee"}], "}"}], "=",
RowBox[{"Table", "[",
RowBox[{
RowBox[{"tradeList", "[",
RowBox[{"[",
RowBox[{"All", ",", "i"}], "]"}], "]"}], ",",
RowBox[{"{",
RowBox[{"i", ",", "1", ",", "6"}], "}"}]}], "]"}]}],
";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"servicefeesum", "=",
RowBox[{"Accumulate", "[", "servicefee", "]"}]}],
";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{"taxfeesum", "=",
RowBox[{"Accumulate", "[", "taxfee", "]"}]}], ";"}],
"\[IndentingNewLine]"}], "\[IndentingNewLine]",
RowBox[{"GraphicsGrid", "[",
RowBox[{
RowBox[{
RowBox[{
RowBox[{"Partition", "[",
RowBox[{"#", ",", "2"}], "]"}], "&"}], "@",
RowBox[{"Map", "[",
RowBox[{
RowBox[{
RowBox[{"ListLinePlot", "[",
RowBox[{
RowBox[{"ToExpression", "[", "#", "]"}], ",",
RowBox[{"DataRange", "\[Rule]",
RowBox[{
RowBox[{"Length", "[", "lstPrice", "]"}], "+", "1"}]}], ",",
RowBox[{"PlotLabel", "\[Rule]", "#"}], ",",
RowBox[{"ImagePadding", "\[Rule]",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"40", ",", "10"}], "}"}], ",",
RowBox[{"{",
RowBox[{"Automatic", ",", "Automatic"}], "}"}]}], "}"}]}], ",",
RowBox[{"PlotRange", "\[Rule]", "All"}], ",",
RowBox[{"InterpolationOrder", "\[Rule]", "2"}], ",",
"\[IndentingNewLine]",
RowBox[{"Frame", "\[Rule]", "True"}], ",",
RowBox[{"GridLines", "\[Rule]", "Automatic"}], ",",
RowBox[{"GridLinesStyle", "\[Rule]",
RowBox[{"Directive", "[",
RowBox[{"Gray", ",", " ", "Dotted"}], "]"}]}]}], "]"}], "&"}], ",",
"\[IndentingNewLine]",
RowBox[{"{",
RowBox[{
"\"\<capitals\>\"", ",", "\"\<position\>\"", ",",
"\"\<totalassets\>\"", ",", "\"\<closeprice\>\"", ",",
"\"\<servicefee\>\"", ",", "\"\<taxfee\>\"", ",",
"\"\<servicefeesum\>\"", ",", "\"\<taxfeesum\>\""}], "}"}]}], "]"}]}],
",",
RowBox[{"ImageSize", "\[Rule]", "Large"}]}], "]"}]}], "Input"],
Cell[BoxData[
GraphicsBox[{{}, {{InsetBox[
GraphicsBox[{{}, {{}, {},
{RGBColor[0.368417, 0.506779, 0.709798], PointSize[
0.016666666666666666`], AbsoluteThickness[1.6],
LineBox[CompressedData["
1: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
"]], LineBox[CompressedData["
1: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
EPOfWFp1fcSo////4f8Bl4jrEA==
"]], LineBox[CompressedData["
1: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
zoIPcw==
"]], LineBox[CompressedData["
1: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
"]], LineBox[CompressedData["
1:eJw1lHsw1XkUwEW1RVKXey/Xvb9fiAmhp5JV52yv3/crr9ImxUqSZCPpJayt
LpvaNjY2oiTdKJWE9UilLkkqkQgjengtKYmbpfbuzuwfZ86cOXNmznzmnI+B
d+DqLaoqKiqeyvg3T17omSQr4EC9/nzQ/EcsbjOXO3QVc6DR30pVC1kMCN25
VqWUA+qvKW2OY9H8EeMhLOegjjGS6vmyKDOq8rF8yMFtLUP7wjks1oXvD1he
zcFOO/X6YgWDlU0mIRvrOFDImmYYFDAYavfswK5GDvpWJUBXEIOdaT8finnJ
AVgtYnSMGJwyyerouTccvHa4X3rusQQH9zXHFXRxUJlhZx63S4KJXUeSnrzj
QAwp7m+nSlDhsSCt/SMHcu12p9OZYuQ9f5M5quCg1EhXI3eRGLtc4q7rfOFg
JHDuMasyfYx4uqTQXI3AccWCWk2ij49de+98N4HAsRLjVsdyETY2JVWs1yTQ
emskp/9bEab7ctVBPAJBIzftP2fpoV/np/poIYHrli7vvzB66Ot6/uUZMYEM
zfT2s6d1MeWSc0eeAQHXxDzLZkNdnPzX6LsqEwKpT6UVN3KFWMC/PPjanEB+
vk6uiYsQz5i5fRmeRSCY8/4wTyHAYtNx43nWBLqidkS2ZApQWztH09SWwPRg
m01GvgJMb/fkAxDQUb/3u5qFAAPTNSTrlhMoctTQ/ekLH0NWFUzfQQlMBt67