python kdj 不用ta-lib并可以自定义入参
时间: 2023-08-13 14:07:51 浏览: 87
TA-Lib python3.8 安装包 TA-Lib-0.4.28-cp38-cp38-win-amd64.whl
如果你不想使用ta-lib库,并且希望能够自定义KDJ指标的计算参数,你可以自行编写代码来实现。以下是一个使用pandas库计算KDJ指标并自定义参数的示例代码:
```python
import pandas as pd
def calculate_kdj(data, n=9, m1=3, m2=3):
# 计算最近n天的最高价和最低价
data['highest_high'] = data['high'].rolling(window=n).max()
data['lowest_low'] = data['low'].rolling(window=n).min()
# 计算未成熟随机值(RSV)
data['rsv'] = (data['close'] - data['lowest_low']) / (data['highest_high'] - data['lowest_low']) * 100
# 初始化K、D和J的初始值
data['K'] = 50
data['D'] = 50
data['J'] = 3 * data['K'] - 2 * data['D']
# 计算K、D和J
for i in range(1, len(data)):
data.loc[i, 'K'] = (m1-1) * data.loc[i-1, 'K'] / m1 + data.loc[i, 'rsv'] / m1
data.loc[i, 'D'] = (m2-1) * data.loc[i-1, 'D'] / m2 + data.loc[i, 'K'] / m2
data.loc[i, 'J'] = 3 * data.loc[i, 'K'] - 2 * data.loc[i, 'D']
return data
# 假设你有一个包含股票数据的DataFrame,其中包含'high'、'low'和'close'列
data = pd.read_csv('stock_data.csv')
# 自定义KDJ参数并计算KDJ指标
n = 9 # 周期参数n
m1 = 3 # 平滑参数m1
m2 = 3 # 平滑参数m2
data = calculate_kdj(data, n, m1, m2)
print(data)
```
这段代码假设你有一个名为`stock_data.csv`的CSV文件,其中包含了股票数据。你可以根据实际情况修改代码,适应你的数据格式和需求,并自定义KDJ指标的计算参数。
需要注意的是,这只是一个简单的KDJ指标计算示例。在实际应用中,你可能还需要考虑其他因素,如平滑计算、参数调优和数据预处理等。
阅读全文