#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, но я каким-то образом. Это действительно случайно, потому что некоторые значения верны, а некоторые-нет. Что я делаю не так или в функции что-то не так?
Спасибо!
Другие данные:
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. Круто. Наверное, столько не нужно, но все хорошо 🙂