我的输入是,数据输入顶部
Date Time Open High Low Close Volume
02/01/2015 14:30 79.52 79.73 79.52 79.71 10841
02/01/2015 14:31 79.6999 79.6999 79.61 79.67 1426
02/01/2015 14:32 79.69 79.7 79.69 79.7 800
02/01/2015 14:33 79.7 79.759 79.7 79.759 1158
02/01/2015 14:34 79.747 79.747 79.73 79.73 1125
02/01/2015 14:35 79.73 79.73 79.71 79.71 301
02/01/2015 14:36 79.8 79.82 79.75 79.82 7818
02/01/2015 14:37 79.82 79.83 79.778 79.82 6985
02/01/2015 14:38 79.8099 79.8099 79.72 79.72 1026
02/01/2015 14:39 79.77 79.78 79.7396 79.78 870
02/01/2015 14:40 79.79 79.79 79.73 79.73 12031
02/01/2015 14:41 79.76 79.76 79.6901 79.736 4642
02/01/2015 14:42 79.7301 79.744 79.7301 79.744 1099
numRow = 1
endRow = 50
dHaGreen0 = {}
for ticker in Index_tickers.ticker:
index_data = pd.read_csv('C:\\Users\\me\\Dropbox\\MktData\\Index_list\\' + ticker + '_' + str(timeFrame) + '.csv')
open0 = index_data.Open
close0 = index_data.Close
high0 = index_data.High
low0 = index_data.Low
dHaClose0 = (open0 + high0 + low0 + close0) / 4
dHaOpen0 = (dHaClose1 + dHaOpen1) / 2
dHaGreen0 = dHaClose0 >= dHaOpen0
if numRow < endRow:
dOpen0 = index_data.ix[numRow, index_data.Open]
if dHaGreen0 == True & dHaGreen1 == True:
dPosition = "Long"
numRow = numRow + 1
当我打印dHaGreen0时,它返回一个bool列表和“dtype:bool”。但是当我在if语句中使用dHaGreen0时,我得到错误ValueError:
系列的真值是模棱两可的。使用a.empty,a.bool(), a.item(),a.any()或a.all()。
我已经检查了之前问题的许多建议答案,但无法阅读。所有回复都非常感谢。
答案 0 :(得分:2)
您看到的错误是正确的。 dHaGreen0是一组bool值。当你问“dHaGreen0 == True”时,你需要决定以下两种解释中的一种:
你的意思是如果任何值是dHaGreen0是真的吗?如果是这样,请将“dHaGreen0 == True”替换为“any(dHaGreen0)== True”。
或者你的意思是如果dHaGreen0中的所有值都是真的吗?如果是这样,请将“dHaGreen0 == True”替换为“all(dHaGreen0)== True”。
同样适用于dHaGreen1
如果你想为每一对做这件事:
dPosition = dHaGreen0 & dHaGreen1
然后,这将为您提供一组布尔值,给出每对的结果。