我有一个严重的问题需要了解这个pandas / numpy数据帧/系列的详细信息。
我想解决的问题是我有两个指标 - MACD和AROON。
如果MACD高于零(时间t0),则AROON应该是100(t0,t1,t2等)的两倍,而MACD不会低于零(t1,t2等)。如果计数器为2且MACD持续高于零,则应生成买入信号。
def find_buy_signal(xDate, xMacd, xAroon):
for n in range(0, len(xDate)):
if (xMacd.shift(n).macd > 0)[n]:
for m in range(n, len(xDate)):
buy_signal_counter = 0
if (xMacd.shift(m).macd > 0):
if (xAroon.shift(m).up == 100):
buy_signal_counter += 1
if buy_signal_counter == 2:
return True
else:
return False
else:
return False
data = read_data()
xMacd = macd(data, 10, 15, 1)
xAroon = aroon(data, 12)
buy = find_buy_date(xMacd.index, xMacd, xAroon)
print(buy) # The result is False but should be a series
即使我知道伪代码,我也可以将两个时间帧放在一起。
以下是MACD的一些示例数据:
fast hist macd signal slow
Date
2018-04-08 12358.294033 0.0 -96.857954 -96.857954 12455.151987
2018-04-15 12391.422390 0.0 -74.398098 -74.398098 12465.820488
2018-04-22 12425.867432 0.0 -54.334260 -54.334260 12480.201692
2018-04-29 12497.455100 0.0 -25.171331 -25.171331 12522.626432
2018-05-04 12556.026829 0.0 -3.721250 -3.721250 12559.748079
这里有一些Aroon的样本数据:
down up
Date
2018-04-08 83.333333 8.333333
2018-04-15 75.000000 0.000000
2018-04-22 66.666667 0.000000
2018-04-29 58.333333 100.000000
我知道我可以将两个数据帧合并为一个数据帧。
这是信号的预期结果而不是:
macd up
Date
t0 macd > 0 100.00 (counter == 1)
t1 macd > 0 96.00
t2 macd > 0 100.00 (counter == 2) signal
macd up
Date
t0 macd > 0 100.00 (counter == 1)
t1 macd > 0 96.00
t2 macd < 0 100.00 (counter == 0)
答案 0 :(得分:0)
我找到的解决方案并不是我原先要求的。两个数据帧连接在一起并命名为concat。与
$mail->SMTPAuth = false;
至少我能够找到上限值为100的条目。也许我将来会找到正确的解决方案。