Разработка торговой стратегии с использованием Pandas и Matplotlib - PullRequest
0 голосов
/ 12 июня 2018

Я пытаюсь определить бычью точку, основываясь на следующей формуле:

Bullish  Bar  =  Today’s  Low  <  Lowest  (Low  ,  13  Days)  AND  Today’s  Close  >  (((Todays  High  –  Todays  Low)  /  2)  +  Today  Low) 

Кроме того, я хочу рассчитать среднюю двухдневную доходность акций за определенный период времени (скажем, 2010 г.до 2017 года).Например:

( Close ( Day 2 ) - Open ( Day 1 ) )/ Open ( Day1 ) 

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

              Date   Close      High       Low    Open     Volume
Symbol                                                           
SPY     2010-01-01  111.44  112.8000  111.3900  112.77          0
SPY     2010-01-04  113.33  113.3900  111.5100  112.37  118944600
SPY     2010-01-05  113.63  113.6800  112.8500  113.26  111579900

Моя цель - создать отдельный столбец, в котором вдоль даты указывается бычья точка, чтобы я мог построить ее с зеленой стрелкой.

В настоящее время я конвертирую все в списки и использую индексы списков для расчета доходов;однако это довольно утомительно.

Есть ли способ сделать это более простым способом?

1 Ответ

0 голосов
/ 12 июня 2018

Если ваш фрейм данных называется df , и вы хотите, чтобы ваш результат был в новом столбце Return , вы можете использоватьследующий код для расчета доходности:

df['Return'] = (df.Close.shift(2) - df.Open.shift(1)) / df.Open.shift(1)

Чтобы рассчитать бычий сигнал, вы можете использовать следующий метод:

    df['bullishSignal'] = (df.Low < df.Low.shift(1).rolling(13).min()) & 
                              (df.Close > ((df.High - df.Low) / 2 + df.Low))
...