股票时间序列d的斐波那契回溯

2024-10-03 15:34:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我找不到解决下列问题的办法。 给定一个具有['Open', 'High', 'Low', Close']列的数据帧,我希望其他具有fibonacci级别的列有一个N回溯周期。你知道吗

伪代码如下:

look_back_period = 895
maxr = highest(close, look_back_period)
minr = lowest(close, look_back_period)
ranr = maxr - minr

ON = maxr
SS = maxr - 0.236 * ranr
SO = maxr - 0.382 * ranr
FI = maxr - 0.50 * ranr
TE = minr + 0.382 * ranr
TT = minr + 0.236 * ranr
ZZ = minr

我想把上面这一栏和相对数联系起来。只有当minrmaxr改变时才会改变。你知道吗

希望一切都清楚。你知道吗


Tags: 数据closebackopen级别fibonacciperiodlow
2条回答

这是一个如何解决的问题。不知道这是不是最有效的方式,但想分享一下。你知道吗

look_back_period = 895

c = 0 

ON = []
SS = []
TT = []
ZZ = [] 


for i in df['Close']:
    if c + look_back_period < len(df): 
        df2 = df.iloc[c : c + look_back_period, : ]
        maxr = df2['Close'].max()
        minr = df2['Close'].min()
        ranr = maxr - minr 

        ON.append(maxr)
        SS.append(maxr - 0.236 * ranr)
        TT.append(minr + 0.236 * ranr)
        ZZ.append(minr)
        c = c + 1
    else: 
        break 



df = df.head(-895)
df['ON'] = ON 
df['SS'] = SS
df['TT'] = TT
df['ZZ'] = ZZ

df = df.to_csv('5_min_fibonacci_values.csv', index=False)

假设您的数据已经存在于名为df的pandas数据框中,您就可以通过pandas apply方法获得所需的功能:

lookBack = 895
def minFunction(row):
    if row.name < lookBack:
        return 0
    return df['Close'].loc[row.name - lookBack:row.name].min()

df['minr'] = df.apply(minFunction, axis = 1)

您可以以相同的方式继续实现maxFunction。 我希望这个答案能帮助你解决问题。你知道吗

相关问题 更多 >