pandas_ta parabolic SAR дает неправильные значения для yfinance

#python #pandas #dataframe #cryptocurrency #yfinance

Вопрос:

Я создал функцию, которая использует функцию psar из библиотеки pandas_ta. Эта функция, похоже, работает неправильно, она выдает значения PSARl, PSARs и PSARr в неправильные даты. При использовании интервала в 1 день на BTC-USD я получаю следующий вывод:

Используемая функция:

 psar = df.ta.psar(high=df['High'], low=df['Low'], close=df['Close'], af0=0.02, af=0.02, max_af=0.2) print(psar)  

Выход:

 PSARl_0.02_0.2 PSARs_0.02_0.2 PSARaf_0.02_0.2 PSARr_0.02_0.2 Date  2021-10-29 NaN NaN 0.02 0 2021-10-30 NaN 62927.609375 0.02 1 2021-10-31 NaN 62927.609375 0.04 0 2021-11-01 NaN 62813.478125 0.06 0 2021-11-02 59695.183594 NaN 0.02 1 2021-11-03 59695.183594 NaN 0.02 0 2021-11-04 59786.135781 NaN 0.02 0 2021-11-05 59875.268925 NaN 0.02 0 2021-11-06 59962.619406 NaN 0.02 0 2021-11-07 60048.222877 NaN 0.02 0 2021-11-08 60132.114279 NaN 0.04 0 2021-11-09 60433.779395 NaN 0.06 0 2021-11-10 60919.572788 NaN 0.08 0 2021-11-11 61549.176965 NaN 0.08 0 2021-11-12 62128.412808 NaN 0.08 0 2021-11-13 62333.914062 NaN 0.08 0 2021-11-14 62333.914062 NaN 0.08 0 2021-11-15 62850.370938 NaN 0.08 0 2021-11-16 NaN 68789.625000 0.02 1 2021-11-17 NaN 68594.159219 0.04 0 2021-11-18 NaN 68191.009256 0.06 0 2021-11-19 NaN 67492.596279 0.08 0 2021-11-20 NaN 66549.602952 0.08 0 2021-11-21 NaN 65682.049091 0.08 0 2021-11-22 NaN 64883.899538 0.10 0 2021-11-23 NaN 63963.493569 0.12 0 2021-11-24 NaN 62963.805747 0.12 0 2021-11-25 NaN 62084.080463 0.12 0 2021-11-26 NaN 61309.922214 0.14 0 2021-11-27 NaN 60226.300292 0.14 0 2021-11-28 NaN 59294.385438 0.14 0 2021-11-29 NaN 58492.938664 0.14 0  

Глядя на график yfinance для BTC-USD, я не должен получить 1 в столбце PSARr в 2021-10-30, но я каким-то образом. Это действительно случайно, потому что некоторые значения верны, а некоторые-нет. Что я делаю не так или в функции что-то не так?

Спасибо!

изображение: Скриншот Yfinance

Другие данные:

 Open High Low Close  Date  2021-10-29 60624.871094 62927.609375 60329.964844 62227.964844  2021-10-30 62239.363281 62330.144531 60918.386719 61888.832031  2021-10-31 61850.488281 62406.171875 60074.328125 61318.957031  2021-11-01 61320.449219 62419.003906 59695.183594 61004.406250  2021-11-02 60963.253906 64242.792969 60673.054688 63226.402344  2021-11-03 63254.335938 63516.937500 61184.238281 62970.046875  2021-11-04 62941.804688 63123.289062 60799.664062 61452.230469  2021-11-05 61460.078125 62541.468750 60844.609375 61125.675781  2021-11-06 61068.875000 61590.683594 60163.781250 61527.480469  2021-11-07 61554.921875 63326.988281 61432.488281 63326.988281  2021-11-08 63344.066406 67673.742188 63344.066406 67566.828125  2021-11-09 67549.734375 68530.335938 66382.062500 66971.828125  2021-11-10 66953.335938 68789.625000 63208.113281 64995.230469  2021-11-11 64978.890625 65579.015625 64180.488281 64949.960938  2021-11-12 64863.980469 65460.816406 62333.914062 64155.941406  2021-11-13 64158.121094 64915.675781 63303.734375 64469.527344  2021-11-14 64455.371094 65495.179688 63647.808594 65466.839844  2021-11-15 65521.289062 66281.570312 63548.144531 63557.871094  2021-11-16 63721.195312 63721.195312 59016.335938 60161.246094  2021-11-17 60139.621094 60823.609375 58515.410156 60368.011719  2021-11-18 60360.136719 60948.500000 56550.792969 56942.136719  2021-11-19 56896.128906 58351.113281 55705.179688 58119.578125  2021-11-20 58115.082031 59859.878906 57469.726562 59697.195312  2021-11-21 59730.507812 60004.425781 58618.929688 58730.476562  2021-11-22 58706.847656 59266.359375 55679.839844 56289.289062  2021-11-23 56304.554688 57875.515625 55632.761719 57569.074219  2021-11-24 57565.851562 57803.066406 55964.222656 56280.425781  2021-11-25 57165.417969 59367.968750 57146.683594 57274.679688  2021-11-26 58960.285156 59183.480469 53569.765625 53569.765625  2021-11-27 53736.429688 55329.257812 53668.355469 54815.078125  2021-11-28 54813.023438 57393.843750 53576.734375 57248.457031  2021-11-29 57474.843750 58749.250000 56856.371094 58749.250000    Adj Close Volume  Date  2021-10-29 62227.964844 36856881767  2021-10-30 61888.832031 32157938616  2021-10-31 61318.957031 32241199927  2021-11-01 61004.406250 36150572843  2021-11-02 63226.402344 37746665647  2021-11-03 62970.046875 36124731509  2021-11-04 61452.230469 32615846901  2021-11-05 61125.675781 30605102446  2021-11-06 61527.480469 29094934221  2021-11-07 63326.988281 24726754302  2021-11-08 67566.828125 41125608330  2021-11-09 66971.828125 42357991721  2021-11-10 64995.230469 48730828378  2021-11-11 64949.960938 35880633236  2021-11-12 64155.941406 36084893887  2021-11-13 64469.527344 30474228777  2021-11-14 65466.839844 25122092191  2021-11-15 63557.871094 30558763548  2021-11-16 60161.246094 46844335592  2021-11-17 60368.011719 39178392930  2021-11-18 56942.136719 41388338699  2021-11-19 58119.578125 38702407772  2021-11-20 59697.195312 30624264863  2021-11-21 58730.476562 26123447605  2021-11-22 56289.289062 35036121783  2021-11-23 57569.074219 37485803899  2021-11-24 56280.425781 36635566789  2021-11-25 57274.679688 34284016248  2021-11-26 53569.765625 41810748221  2021-11-27 54815.078125 30560857714  2021-11-28 57248.457031 28116886357  2021-11-29 58749.250000 33326104576   

Комментарии:

1. можете ли вы добавить вызов yf, чтобы получить базовые данные? было бы лучше взглянуть и на это. Кроме того, вы проверяли какие-либо другие сайты, чтобы узнать, как выглядит psar за тот же период времени?

2. @JonathanLeon Я не совсем понимаю, что вы имеете в виду, говоря о звонке yf. Но я добавил к вопросу фрейм данных о ценах. Также да, я посмотрел на tradingview и binance, но они все еще не соответствуют выводам функции psar

3. Да. Вот и все данные ohlc. У вас был еще один вопрос, где вы предоставили фактическую функцию yfinance для получения этих данных. Мне интересно, не в том ли ваша проблема, что вы начинаете с 29-го, а не за некоторое время до этого. Иногда для запуска этих функций требуется определенный период данных, прежде чем вы получите действительные показания.

4. @JonathanLeon Да, ты прав! Я изменил период на 10 лет, и теперь данные верны. Спасибо!

5. Круто. Наверное, столько не нужно, но все хорошо 🙂