python - 如何在 pandas dataframe 中编写简单的信号逻辑?

标签 python pandas trading algorithmic-trading

我想使用数据帧创建一个简单的交易系统信号表,例如:

            Close   buy   sell
2011-01-31  50       0     0
2011-02-28  40       1     0
2011-03-31  50       0     0
2011-04-30  80       0    -1
2011-05-31  60       1     0
2011-06-30  50       1     0 
2011-07-31  20       0     0
2011-08-31  30       0    -1

信号按以下方式生成:

df['buy'] = np.where( <condition> , 1, 0 )

sell 列以相同的方式创建。

问题在于 2011 年 6 月 30 日的双重购买信号,紧接在 2011 年 5 月 31 日的上一个信号之后。

2011-05-31  60       1     0
2011-06-30  50       1     0 

如何在 df['sell'] 列中以 -1 关闭信号之前阻止新的买入 ( == 1 ) 信号?

最佳答案

我参加聚会有点晚了,但我希望这会有所帮助。我想你想要替代 1 和 -1。虽然不是最好的方法,但我建议您添加买入和卖出信号并将新列称为交易信号。交易信号列可以有任意形式的 0、1 和 -1。以下代码解释了进一步的步骤。

import pandas as pd
import numpy as np
trade_signal= pd.DataFrame([1,1,0,0,-1,-1,1,1,-1])
ts_shifted=trade_signal.shift(1)
trade_rule=np.where(trade_signal!=ts_shifted,trade_signal,0)

关于python - 如何在 pandas dataframe 中编写简单的信号逻辑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40706588/

相关文章:

python - pandas groupby 组中忽略 NaN 的标准错误

python - 如何在 Python 中使用 pandas-datareader 提取看涨期权/看跌期权价格?

algorithmic-trading - 如何在 Amibroker 回测期间获得交易的利润百分比

Python 面向对象编程练习

python - Django celery 与 RabbitMQ

python - 根据用户输入从 python 中的 .txt 文件中提取信息

python - 显示评估选择的输出 - Sublime Text Python REPL

python - 在最近的日期合并数据框

python - 在 dt.datetime 中将两个字符串相加

python - 是否可以在不使用回测库的情况下回测交易算法?