我一直在尝试构建一个计算Heiken Ashi蜡烛的功能,以不同的方式可视化市场价格。为此我正在使用python的pandas库。在必须完成的不同行的列和行之间存在一些操作(例如,用前一个单元格添加值并更新实际值),所以我设法用循环制作那些,但我认为它必须是最可爱的方式来做到这一点。谁能告诉我是否真的可以从我的代码中消除循环?
def heikenashi(df):
df['HA_Close'] = df[['Open','High','Close','Low']].mean(axis=1)
ha_o = (df['Open'] + df['Close']) / 2 #Creating a Variable
df['HA_Open'] = 0.0
df['HA_High'] = 0.0
df['HA_Low'] = 0.0
df.ix[1, 'HA_Open'] = (df['Open'][0] + df['Close'][0]) / 2
i = 2
while i < len(df.index):
df.ix[i, 'HA_Open'] = (df.ix[i-1, 'HA_Open'] + df.ix[i-1, 'Close']) / 2
df.ix[i, 'HA_High'] = df.ix[i-1, ['High', 'HA_Open', 'HA_Close']].max()
df.ix[i, 'HA_Low'] = df.ix[i-1, ['Low', 'HA_Open', 'HA_Close']].min()
i += 1
return df
非常感谢你的帮助!