【问题标题】:Finding Pivot Points for stock price, after grouping by symbol. Pivot Point is high for 10 values before and after point在按符号分组后查找股票价格的枢轴点。枢轴点在点之前和之后的 10 个值都很高
【发布时间】:2021-11-17 07:52:56
【问题描述】:
     Date   Symbol  Close   Volume
1259    2021-10-29  AA  45.950  6350815.000
1260    2021-10-28  AA  46.450  10265029.000
1261    2021-10-27  AA  45.790  12864700.000
1262    2021-10-26  AA  49.442  6153100.000
1263    2021-10-25  AA  51.058  11070100.000
1264    2021-10-22  AA  49.143  7453300.000
1265    2021-10-21  AA  49.881  9066900.000
1266    2021-10-20  AA  52.396  7330400.000
1267    2021-10-19  AA  53.563  10860800.000
1268    2021-10-18  AA  57.115  9883800.000

也在寻找类似的结果...

    Date    Symbol  Close   Volume  High Points Pivot Point
1379    2021-05-11  AA  41.230  9042100.000 41.230  True
1568    2020-08-10  AA  15.536  8087800.000 15.536  True
1760    2019-11-04  AA  22.860  3741000.000 22.860  True
1934    2019-02-27  AA  30.912  2880100.000 30.912  True
2149    2018-04-19  AA  60.099  11779200.00 60.099  True
2213    2018-01-17  AA  56.866  8189700.000 56.866  True
2445    2017-02-14  AA  38.476  3818600.000 38.476  True
5406    2021-06-02  AAL 25.820  58094598.00 25.820  True
5461    2021-03-15  AAL 25.170  93746800.00 25.170  True
5654    2020-06-08  AAL 20.310  175418900.0 20.310  True
5734    2020-02-12  AAL 30.470  9315400.000 30.470  True
5807    2019-10-28  AAL 31.144  10298500.00 31.144  True
5874    2019-07-24  AAL 34.231  7315300.000 34.231  True
6083    2018-09-21  AAL 42.788  10743100.00 42.788  True
6257    2018-01-12  AAL 56.989  7505800.000 56.989  True
6322    2017-10-10  AAL 51.574  9387100.000 51.574  True
6383    2017-07-14  AAL 52.624  4537900.000 52.624  True
   

我是编程新手,一直在努力解决这个问题。我正在尝试查找必须高于前后 10 个关闭点的局部最大值点。数据框上有大约 320 个和股票,需要按符号分组。我尝试了几种不同的方法来解决这个问题,但一直找不到可行的方法。任何见解将不胜感激。

#read in data, vol_list 是一个现有的屏幕,用于减少不符合数量标准的库存数量

df_prices = pd.read_csv('/Users/kylemerrick/Desktop/Stock Screener/price_data.csv')
include_pivot_points = df_prices[df_prices['Symbol'].isin(vol_list)]
n=10
pivot_points = include_pivot_points.groupby('Symbol')['Close'].apply(lambda x : iloc[argrelextrema(x.values, np.greater_equal, axis=1, order=n)

我也尝试编写自己的函数来执行此操作,但无法弄清楚如何将当前值与之前和之后的 10 个值进行比较

include_pivot_points.groupby('Symbol').iloc['Close'] + 10:['Close'] -10]

【问题讨论】:

    标签: python pandas dataframe pandas-groupby maxima


    【解决方案1】:

    我最终能够使用以下代码解决并想分享,因为我没有收到回复。对于枢轴点或(支撑/阻力点)将每个价格点附加到列表或仅用于一个符号,存在许多其他解决方案。我曾想保留带有多个符号的数据框。

    先用apply,21再移位,这样两边都有偶数

    include_pivot_points['High Points'] = include_pivot_points.groupby('Symbol').rolling(21)['Close'].max().shift(-11).reset_index(level = 'Symbol', drop = True)
    

    如果高点等于当前收盘价,我就知道这是支点,并为支点添加了真或假列

    include_pivot_points['Pivot Point'] = include_pivot_points['High Points'] == include_pivot_points['Close']
    

    然后删除错误值以获取所有股票的所有过去枢轴点

    pivot_points = include_pivot_points[include_pivot_points['Pivot Point'] == True]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-08
      • 2016-06-07
      • 2019-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-05
      • 2020-10-02
      相关资源
      最近更新 更多