Динамически изменить период просмотра - PullRequest
0 голосов
/ 24 мая 2018

Я пытаюсь динамически настроить период просмотра кадра данных pandas для запуска регрессий на разных длинах данных запаса.В качестве простого примера возьмем пересечение MA.

date        Prices  Diff    signal

20150101    8.5     -1.5    FALSE
20150101    11.5    0.3     TRUE 
20150102    14.5    4.5     FALSE
20150103    16.67   3.66    FALSE 
20150104    18      2       FALSE
20150105    18.5    0.5     FALSE 
20150106    18.17   -2.17   TRUE 
20150107    17      -3      FALSE

Разница - это разница между двумя скользящими средними, и сигнал идентифицирует пересечение с истиной / ложью.Числа произвольны, только примеры.Между каждым сигналом может быть 10, 50, 100 и т. Д. Строк.

Теперь я хотел бы провести регрессию цен для любой длины, существующей между сигналами, поэтому в строке 6 я хотел бы, чтобы цены [-4:], и в строке 8 я хотел бы, чтобы цены [-1:].

Может кто-нибудь помочь мне с этой проблемой?Цикл назад в каждом ряду, пока я не найду последний сигнал, кажется неэффективным.Должен ли я просто присвоить значение индекса переменной при каждом появлении сигнала и использовать эту переменную для определения периода просмотра?Я все еще относительно новичок в Python и не знаю, как это сделать.

Любая помощь будет оценена.Спасибо!

1 Ответ

0 голосов
/ 25 мая 2018

Я действительно решил эту проблему, но решение не очень элегантное.Если у кого-нибудь есть элегантное решение, пожалуйста, дайте мне знать.

    if diff[-1] > 0 and diff[-2] < 0:
        signal = True
        over_count += 1
        under_count = 0
    elif diff[-1] < 0 and diff[-2] > 0:
        signal = False
        under_count += 1
        over_count = 0
    elif signal:
        over_count += 1
    elif not signal:
        under_count += 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...