Я смотрю на реализацию основных торговых стратегий. Для моего первого я использую простой кроссовер MACD с сигнальной линией MACD. Я получил временной ряд цены акций и рассчитал MACD для этого, а затем сжал соответствующие строки в следующем фрейме данных, который содержит точки, соответствующие точкам для тестирования на истории.
Out[6]:
close macd_crossover_signal pct_change
date
2018-07-12 4.39 up NaN
2018-07-31 4.37 down -0.004556
2018-08-08 4.43 up 0.013730
2018-08-15 4.26 down -0.038375
2018-09-18 3.62 up -0.150235
2018-10-08 3.61 down -0.002762
2018-10-12 3.96 up 0.096953
2018-10-25 3.64 down -0.080808
2018-10-29 3.90 up 0.071429
2018-11-14 3.97 down 0.017949
2018-12-04 4.10 up 0.032746
2018-12-21 4.03 down -0.017073
2018-12-31 4.19 up 0.039702
2019-02-22 6.32 down 0.508353
2019-03-29 7.11 up 0.125000
2019-04-17 7.43 down 0.045007
2019-05-14 8.09 up 0.088829
2019-05-29 8.29 down 0.024722
2019-06-14 8.80 up 0.061520
2019-07-08 8.85 down 0.005682
2019-08-16 7.66 up -0.134463
2019-09-25 8.57 down 0.118799
Я пытаюсь придумать лучший способ протестировать эту стратегию? Я предполагаю, что это было бы что-то вроде высказывания «когда вы впервые столкнетесь с сигналом вверх или вниз, откройте позицию long / short и сохраните эту позицию до следующего сигнала вниз или вверх, затем выйдите из позиции» ... В этом случае это будетоткрывайте и выходите из позиции каждую строку, потому что она чередуется вверх / вниз по каждой строке, но если бы у вас было несколько подъемов подряд, я бы хотел, чтобы он поддерживал длинную позицию до следующего сигнала «вниз».
Хороший способ проверки этой очень простой стратегии может быть применен к любому методу, выбранному для генерации сигналов.