我有一个像这样的熊猫数据框-
Tstamp Token LTP Cum_bsdiffs Cum_ltpdiffs counts Entry Correl Exit ltpchange ltpcumchange ltppercumchange
0 2018-10-29 11:40:33 415745 138.40 NaN NaN 0 0 NaN 0 0 0 0
1 2018-10-29 11:40:34 415745 138.40 -200.0 0.00 1 0 NaN 0 0 0 0
2 2018-10-29 11:40:34 415745 138.35 -1437.0 -0.05 2 0 NaN 0 0 0 0
3 2018-10-29 11:40:36 415745 138.35 -1337.0 -0.05 3 0 NaN 0 0 0 0
现在,列Entry
,Exit
,ltpchange
和ltpcumchange
相互依存,如下所示-
Entry
根据以下条件而变为“购买”或“出售” 其他列。否则它将保持为0。
- 仅当
Entry
不等于0时,ltpchange
开始对LTP
的后续值进行更改。否则会 保持为0。ltpcumchange
将累计ltpchange
。- 只要
ltpcumchange
达到目标值(任何方向),Exit
就会变成1。Entry
将保持其“买入”或“卖出”的状态,具体取决于其上一行,直到Exit
变为1,之后它将恢复为0。
我已经使用iterrows
()来执行此逻辑,但是它太慢了。我的数据框包含超过200万行,并且以每秒近5行的速度运行。
我尝试使用数据框列逻辑,但未能获得所需的结果。有人可以帮我吗?