Python 其中,使用熊猫计算的价格指标应为';放置';?
首先,感谢你对像我这样的新人的爱 现在是代码 我有一个看似简单的代码,是有人写来计算移动平均价格的,但要理解它并遵循它,我有一个问题需要回答,关于where的定义 但说到3,我不明白。什么意思是把指示器放在哪里?我想计算数据,并使用这些数据。我不想把指标放在任何地方,只是想作为参考 这是我要用作数据的数据帧:Python 其中,使用熊猫计算的价格指标应为';放置';?,python,pandas,dataframe,matplotlib,ta-lib,Python,Pandas,Dataframe,Matplotlib,Ta Lib,首先,感谢你对像我这样的新人的爱 现在是代码 我有一个看似简单的代码,是有人写来计算移动平均价格的,但要理解它并遵循它,我有一个问题需要回答,关于where的定义 但说到3,我不明白。什么意思是把指示器放在哪里?我想计算数据,并使用这些数据。我不想把指标放在任何地方,只是想作为参考 这是我要用作数据的数据帧: open high low close hr
open high low close
hr
2021-02-01 01:00 32835.839519 33438.836060 32835.839519 33389.974454
2021-02-01 02:00 33400.422170 33663.000232 33260.343246 33569.816646
2021-02-01 03:00 33581.206956 33633.454861 33437.081539 33466.178320
2021-02-01 04:00 33473.881292 33680.926267 33473.881292 33512.310031
2021-02-01 05:00 33496.550836 33692.662741 33442.771302 33692.295982
2021-02-01 06:00 33674.363254 33931.304243 33372.640454 33372.640454
2021-02-01 07:00 33466.277250 33718.499099 33410.173005 33543.580113
2021-02-01 08:00 33691.622420 34155.668712 33577.491467 34155.668712
2021-02-01 09:00 34541.989582 34541.989582 34246.591606 34255.313422
2021-02-01 10:00 34254.311054 34318.042807 34009.930110 34043.516502
2021-02-01 11:00 34102.209535 34181.236131 33960.033182 34181.236131
2021-02-01 12:00 34196.688991 34196.688991 33677.872302 33677.872302
2021-02-01 13:00 33658.073761 33831.043558 33616.263612 33616.263612
2021-02-01 14:00 33506.144521 33698.288934 33298.355558 33458.379708
2021-02-01 15:00 33449.472954 33540.119075 33137.424801 33137.424801
2021-02-01 16:00 33129.661923 33444.487621 33129.661923 33444.487621
2021-02-01 17:00 33427.510914 33966.758995 33328.452664 33966.758995
2021-02-01 18:00 33883.647812 33883.647812 33692.664177 33753.657270
2021-02-01 19:00 33568.840250 33904.003721 33568.840250 33817.161851
2021-02-01 20:00 33716.826906 33857.417730 33663.339958 33757.230256
2021-02-01 21:00 33608.964863 33692.950108 33508.713475 33553.086495
2021-02-01 22:00 33475.494546 33629.985564 33423.225607 33423.225607
2021-02-01 23:00 33396.069559 33614.188165 33361.882597 33405.990357
2021-02-02 00:00 33423.242711 33912.467287 33423.242711 33626.927090
2021-02-02 01:00 33578.032588 33578.032588 33470.631802 33470.631802
其中
指的是存储结果的列名。在pandas中,通常不从函数返回列表,而只是将列/序列添加到DataFrame,下游函数可以根据需要使用这些列/序列
在本例中,我将结果保存到where='close-3-day-avg'
列。注:我对函数ma
进行了一些修改,因为我无法使其以如下形式工作:
将熊猫作为pd导入
pd.set\u选项('display.max\u columns',无)
pd.set_选项('display.width',2000)
def ma(数据、回望、内容、位置):
数据[其中]=0.0
对于范围内的i(len(数据)):
Data[where].loc[i]=Data[what].loc[i-回望+1:i].mean()
返回数据
数据=“高开低关”
人力资源
2021-02-01 01:00 32835.839519 33438.836060 32835.839519 33389.974454
2021-02-01 02:00 33400.422170 33663.000232 33260.343246 33569.816646
2021-02-01 03:00 33581.206956 33633.454861 33437.081539 33466.178320
2021-02-01 04:00 33473.881292 33680.926267 33473.881292 33512.310031
2021-02-01 05:00 33496.550836 33692.662741 33442.771302 33692.295982
2021-02-01 06:00 33674.363254 33931.304243 33372.640454 33372.640454
2021-02-01 07:00 33466.277250 33718.499099 33410.173005 33543.580113
2021-02-01 08:00 33691.622420 34155.668712 33577.491467 34155.668712
2021-02-01 09:00 34541.989582 34541.989582 34246.591606 34255.313422
2021-02-01 10:00 34254.311054 34318.042807 34009.930110 34043.516502
2021-02-01 11:00 34102.209535 34181.236131 33960.033182 34181.236131
2021-02-01 12:00 34196.688991 34196.688991 33677.872302 33677.872302
2021-02-01 13:00 33658.073761 33831.043558 33616.263612 33616.263612
2021-02-01 14:00 33506.144521 33698.288934 33298.355558 33458.379708
2021-02-01 15:00 33449.472954 33540.119075 33137.424801 33137.424801
2021-02-01 16:00 33129.661923 33444.487621 33129.661923 33444.487621
2021-02-01 17:00 33427.510914 33966.758995 33328.452664 33966.758995
2021-02-01 18:00 33883.647812 33883.647812 33692.664177 33753.657270
2021-02-01 19:00 33568.840250 33904.003721 33568.840250 33817.161851
2021-02-01 20:00 33716.826906 33857.417730 33663.339958 33757.230256
2021-02-01 21:00 33608.964863 33692.950108 33508.713475 33553.086495
2021-02-01 22:00 33475.494546 33629.985564 33423.225607 33423.225607
2021-02-01 23:00 33396.069559 33614.188165 33361.882597 33405.990357
2021-02-02 00:00 33423.242711 33912.467287 33423.242711 33626.927090
2021-02-02 01:00 33578.032588 33578.032588 33470.631802 33470.631802"""
行=[line.split(“”)用于数据中的行。split('\n')[2:]
df=pd.DataFrame(行、列=['hr'、'open'、'high'、'low'、'close'])#。设置索引('hr'))
df[['open'、'high'、'low'、'close']]=df[['open'、'high'、'low'、'close']]。应用(pd.到数值)
打印(ma(df,lookback=3,what='close',where='close-3-day-avg'))
结果(注意,结果在新列中):
谢谢,你解释得很好。另一个问题——“回顾”。为什么要定义一个时间段?函数不应该已经使用给定数据的时间段吗?通常您会使用时间戳作为索引(我在注释中这样做了),但是您的代码似乎只使用整数索引(0到24),所以我也使用了它们。使用时间戳有点棘手,因为你必须减去小时而不是数字。
open high low close
hr
2021-02-01 01:00 32835.839519 33438.836060 32835.839519 33389.974454
2021-02-01 02:00 33400.422170 33663.000232 33260.343246 33569.816646
2021-02-01 03:00 33581.206956 33633.454861 33437.081539 33466.178320
2021-02-01 04:00 33473.881292 33680.926267 33473.881292 33512.310031
2021-02-01 05:00 33496.550836 33692.662741 33442.771302 33692.295982
2021-02-01 06:00 33674.363254 33931.304243 33372.640454 33372.640454
2021-02-01 07:00 33466.277250 33718.499099 33410.173005 33543.580113
2021-02-01 08:00 33691.622420 34155.668712 33577.491467 34155.668712
2021-02-01 09:00 34541.989582 34541.989582 34246.591606 34255.313422
2021-02-01 10:00 34254.311054 34318.042807 34009.930110 34043.516502
2021-02-01 11:00 34102.209535 34181.236131 33960.033182 34181.236131
2021-02-01 12:00 34196.688991 34196.688991 33677.872302 33677.872302
2021-02-01 13:00 33658.073761 33831.043558 33616.263612 33616.263612
2021-02-01 14:00 33506.144521 33698.288934 33298.355558 33458.379708
2021-02-01 15:00 33449.472954 33540.119075 33137.424801 33137.424801
2021-02-01 16:00 33129.661923 33444.487621 33129.661923 33444.487621
2021-02-01 17:00 33427.510914 33966.758995 33328.452664 33966.758995
2021-02-01 18:00 33883.647812 33883.647812 33692.664177 33753.657270
2021-02-01 19:00 33568.840250 33904.003721 33568.840250 33817.161851
2021-02-01 20:00 33716.826906 33857.417730 33663.339958 33757.230256
2021-02-01 21:00 33608.964863 33692.950108 33508.713475 33553.086495
2021-02-01 22:00 33475.494546 33629.985564 33423.225607 33423.225607
2021-02-01 23:00 33396.069559 33614.188165 33361.882597 33405.990357
2021-02-02 00:00 33423.242711 33912.467287 33423.242711 33626.927090
2021-02-02 01:00 33578.032588 33578.032588 33470.631802 33470.631802
hr open high low close close-3-day-avg
0 2021-02-01 01:00 32835.839519 33438.836060 32835.839519 33389.974454 33389.974454
1 2021-02-01 02:00 33400.422170 33663.000232 33260.343246 33569.816646 33479.895550
2 2021-02-01 03:00 33581.206956 33633.454861 33437.081539 33466.178320 33475.323140
3 2021-02-01 04:00 33473.881292 33680.926267 33473.881292 33512.310031 33516.101666
4 2021-02-01 05:00 33496.550836 33692.662741 33442.771302 33692.295982 33556.928111
5 2021-02-01 06:00 33674.363254 33931.304243 33372.640454 33372.640454 33525.748822
6 2021-02-01 07:00 33466.277250 33718.499099 33410.173005 33543.580113 33536.172183
7 2021-02-01 08:00 33691.622420 34155.668712 33577.491467 34155.668712 33690.629760
8 2021-02-01 09:00 34541.989582 34541.989582 34246.591606 34255.313422 33984.854082
9 2021-02-01 10:00 34254.311054 34318.042807 34009.930110 34043.516502 34151.499545
10 2021-02-01 11:00 34102.209535 34181.236131 33960.033182 34181.236131 34160.022018
11 2021-02-01 12:00 34196.688991 34196.688991 33677.872302 33677.872302 33967.541645
12 2021-02-01 13:00 33658.073761 33831.043558 33616.263612 33616.263612 33825.124015
13 2021-02-01 14:00 33506.144521 33698.288934 33298.355558 33458.379708 33584.171874
14 2021-02-01 15:00 33449.472954 33540.119075 33137.424801 33137.424801 33404.022707
15 2021-02-01 16:00 33129.661923 33444.487621 33129.661923 33444.487621 33346.764043
16 2021-02-01 17:00 33427.510914 33966.758995 33328.452664 33966.758995 33516.223806
17 2021-02-01 18:00 33883.647812 33883.647812 33692.664177 33753.657270 33721.634629
18 2021-02-01 19:00 33568.840250 33904.003721 33568.840250 33817.161851 33845.859372
19 2021-02-01 20:00 33716.826906 33857.417730 33663.339958 33757.230256 33776.016459
20 2021-02-01 21:00 33608.964863 33692.950108 33508.713475 33553.086495 33709.159534
21 2021-02-01 22:00 33475.494546 33629.985564 33423.225607 33423.225607 33577.847453
22 2021-02-01 23:00 33396.069559 33614.188165 33361.882597 33405.990357 33460.767486
23 2021-02-02 00:00 33423.242711 33912.467287 33423.242711 33626.927090 33485.381018
24 2021-02-02 01:00 33578.032588 33578.032588 33470.631802 33470.631802 33501.183083