我有 Pandas DataFrame 对象,其中包含日期、开盘价、收盘价、每日最低股票数据和最高股票数据。我想计算的组成部分Ichimoku https://www.investopedia.com/terms/i/ichimoku-cloud.asp图表。我可以使用以下代码获取我的数据:
high_prices = data['High']
close_prices = data['Close']
low_prices = data['Low']
dates = data['Date'] # contains datetime objects
我需要计算以下序列(Ichimoku 称之为 Tenkan-Sen 线):
(9 周期高点 + 9 周期低点)/ 2
- 9周期高点=过去9天的最高点值,
- 9周期低点=过去9天的最低低值,
所以两者都应该从第 9 天开始。
我找到了R语言的解决方案here http://www.r-bloggers.com/ichimoku-clouds-r-code-trading/,但是我很难将它翻译成Python/Pandas代码。
Ichimoku 图表包含更多组件,但是当我知道如何计算 Pandas 中的 Tenkan-Sen 线时,我将能够计算所有组件(我将分享代码)。
感谢之前的回答,有代码:
# Tenkan-sen (Conversion Line): (9-period high + 9-period low)/2))
period9_high = pd.rolling_max(high_prices, window=9)
period9_low = pd.rolling_min(low_prices, window=9)
tenkan_sen = (period9_high + period9_low) / 2
# Kijun-sen (Base Line): (26-period high + 26-period low)/2))
period26_high = pd.rolling_max(high_prices, window=26)
period26_low = pd.rolling_min(low_prices, window=26)
kijun_sen = (period26_high + period26_low) / 2
# Senkou Span A (Leading Span A): (Conversion Line + Base Line)/2))
senkou_span_a = ((tenkan_sen + kijun_sen) / 2).shift(26)
# Senkou Span B (Leading Span B): (52-period high + 52-period low)/2))
period52_high = pd.rolling_max(high_prices, window=52)
period52_low = pd.rolling_min(low_prices, window=52)
senkou_span_b = ((period52_high + period52_low) / 2).shift(26)
# The most current closing price plotted 22 time periods behind (optional)
chikou_span = close_prices.shift(-22) # 22 according to investopedia
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)