在 Python 交易策略中计算每日枢轴点

什么是枢轴点?

枢轴点是日内交易中经常使用的价格水平(但它们甚至可以在波段交易中使用)。它们被认为是每日市场交易期间价格的“自然”支撑和阻力,因此它们对于日内交易者来说非常有用,因为当市场接近它们时,市场通常会以不平凡的方式表现。

枢轴点有多种类型,但经典枢轴点通常是从最后一天的最高价、最低价和收盘价开始定义的。对前一个市场日的这些价格进行一些数学计算,交易者可以计算当前市场日的枢轴水平并使用它们。在本文中,我将重点讨论经典枢轴点。

例如,日间交易者可以寻找价格接近枢轴水平的交易机会,等待回调或突破,并使用最近的枢轴水平作为目标。

如何计算它们
经典枢轴水平根据以下公式计算,取自Tradingview 知识库,应用于最后一天的最高价、最低价和收盘价:

PP =(最高价 + 最低价 + 收盘价)/ 3
R1 = 2 * PP — 低
S1 = 2 * PP — 高
R2 = PP + (高位 - 低位)
S2 = PP —(高 — 低)
R3 = PP + 2 *(高位 - 低位)
S3 = PP — 2 *(高 — 低)
PP 是主要枢轴水平。S1、S2 和 S3 是支撑位。R1、R2 和 R3 是压力位。```

让我们看看如何在 Python 中计算这些级别。在本示例中,我将重点关注 Facebook 股票数据。整个笔记本可以在这里找到:https://github.com/gianlucamalato/machinelearning/blob/master/Calculation_of_daily_pivot_levels.ipynb

首先,我们必须使用yfinance库获取股票数据。

!pip install yfinance
import numpy as np
import pandas as pd
import yfinance

代码

ticker = yfinance.Ticker("FB")
df = ticker.history(interval="1d")

last_day = df.tail(1).copy()

last_day['Pivot'] = (last_day['High'] + last_day['Low'] + last_day['Close'])/3last_day['R1'] = 2*last_day['Pivot'] - last_day['Low']last_day['S1'] = 2*last_day['Pivot'] - last_day['High']last_day['R2'] = last_day['Pivot'] + (last_day['High'] - last_day['Low'])last_day['S2'] = last_day['Pivot'] - (last_day['High'] - last_day['Low'])last_day['R3'] = last_day['Pivot'] + 2*(last_day['High'] - last_day['Low'])last_day['S3'] = last_day['Pivot'] - 2*(last_day['High'] - last_day['Low'])