python,import pandas as pd,import numpy as np,,def support_resistance(data, n):, high_prices = data['high'].rolling(window=n).max(), low_prices = data['low'].rolling(window=n).min(), return pd.DataFrame({'support': low_prices, 'resistance': high_prices}),,# 示例数据,data = pd.DataFrame({, 'high': [10, 11, 12, 13, 14, 15, 16, 17, 18, 19],, 'low': [8, 9, 10, 11, 12, 13, 14, 15, 16, 17],}),,# 计算压力支撑指标,result = support_resistance(data, 3),print(result),
`,,这段代码首先导入了pandas和numpy库,然后定义了一个名为
support_resistance`的函数,该函数接受两个参数:数据和窗口大小。函数内部通过计算最高价和最低价的滚动最大值和最小值得到支撑位和压力位。将计算结果返回为一个包含支撑位和压力位的DataFrame。压力支撑指标(Stress Support Index,简称SSI)是一种技术分析工具,用于衡量市场的压力和支撑水平,以下是一个简单的Python代码示例,用于计算SSI指标:
import pandas as pd import numpy as np def calculate_ssi(data, period=14): """ 计算压力支撑指标(SSI) :param data: DataFrame,包含'High', 'Low', 'Close'列 :param period: int,计算周期,默认为14 :return: Series,SSI指标值 """ data['UpMove'] = data['High'] data['High'].shift(1) data['DownMove'] = data['Low'].shift(1) data['Low'] data['TrueRange'] = np.where(data['UpMove'] > data['DownMove'], data['UpMove'], data['DownMove']) data['AverageTrueRange'] = data['TrueRange'].rolling(window=period).mean() data['NormalizedPrice'] = (data['Close'] data['Low'].rolling(window=period).min()) / (data['High'].rolling(window=period).max() data['Low'].rolling(window=period).min()) data['SSI'] = 100 * data['NormalizedPrice'] + 50 return data['SSI'] 示例数据 data = pd.DataFrame({ 'High': [25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0], 'Low': [20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0], 'Close': [22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0] }) 计算SSI指标 ssi = calculate_ssi(data) print(ssi)
这个代码首先计算了每个周期内的上涨和下跌幅度,然后计算了真实波动范围(True Range),接着计算了平均真实波动范围(Average True Range),将收盘价标准化并乘以100,再加上50,得到SSI指标值。
以上就是关于“压力支撑指标源码”的问题,朋友们可以点击主页了解更多内容,希望可以够帮助大家!
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1179718.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复