波动率指标源码

python

这是一个简单的波动率指标计算源码,使用了标准差来衡量波动率。
# 导入numpy库,用于数学计算

import numpy as np
def calculate_volatility(prices, window_size=30): """ 计算波动率。

:param prices: 价格列表 :param window_size: 计算波动率的窗口大小 :return: 波动率值 """ # 计算价格的标准差 std_dev = np.std(prices[-window_size:]) # 返回标准差作为波动率 return std_dev<br># 示例数据

prices_example = [100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120]
# 计算波动率 volatility = calculate_volatility(prices_example, 10)
# 打印波动率 print(f"计算得到的波动率为:{volatility:.2f}")
这段代码首先定义了一个函数calculate_volatility,它接受价格列表和窗口大小作为参数,然后计算并返回窗口大小的价格标准差作为波动率。这里的窗口大小默认为30,你可以根据需要修改它。
示例数据prices_example是一个包含20个价格点的列表,我们用这个列表来计算波动率,并将结果打印出来。这里的波动率值是计算得到的10个最近价格点的标准差。

波动率指标源码,比如ATR(平均真实范围): python import pandas as pd import numpy as np
def calculate_atr(high, low, close, period): tr = np.maximum(high - low, np.abs(high - close.shift(1))) atr = tr.rolling(window=period).mean() return atr
# 假设df是包含日期、高、低、收盘价数据的DataFrame

df = pd.read_csv('data.csv')
# 计算14天ATR

atr = calculate_atr(df['High'], df['Low'], df['Close'], period=14)

df['ATR'] = atr
你自己掂量。

相关推荐