【问题标题】:How to calculate the average true range - scipy如何计算平均真实范围 - scipy
【发布时间】:2021-06-17 22:37:15
【问题描述】:

我正在处理 OHLC 数据,我想在我的脚本中实现以下公式 ATR formula

这是我以前在 Excel 中的做法1D ATR excel formula

至于 python,这是我的共鸣程度

 df = pd.read_csv('^GSPC.csv',index_col=0, parse_dates=['Date'])
 df['True Range'] = df['High'] - df['Low']
 df['1D ATR'] = df['True Range'].rolling(2).sum()/2/???

【问题讨论】:

    标签: python pandas numpy scipy


    【解决方案1】:

    使用您的 excel 公式,您就快到了,您所需要做的就是在最后除以 df['Open']。下面的基本示例:

    d = {'Date':['2020-07-02', '2020-07-01', '2020-07-30'],
    'Open':[3143.64, 3105.92, 3050.2],
    'High':[3165.81, 3128.44, 3111.51],
    'Low':[3124.52, 3101.17, 3047.83]}
    df = pd.DataFrame.from_dict(d)
    df['True Range'] = df['High'] - df['Low']
    df['1D ATR'] = (df['True Range'].rolling(2).sum()/2)/df['Open']
    df.head()
    

    为您提供您在 excel 中获得的一维 ATR 数字: output

    【讨论】:

      【解决方案2】:

      请查看文档。

      在你的例子中是

      mean = df['True Range'].mean()
      print(mean)
      

      https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.mean.html

      【讨论】:

        猜你喜欢
        • 2021-10-13
        • 1970-01-01
        • 2017-03-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-15
        • 2020-06-25
        • 1970-01-01
        相关资源
        最近更新 更多