如何在pandas数据帧中编写一个简单的信号逻辑?

2024-05-16 09:33:58 发布

您现在位置:Python中文网/ 问答频道 /正文

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

            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

信号以以下方式生成:

^{pr2}$

sell列的创建方式相同。在

此次发行的是2011年6月30日的双重买入信号,紧随2011年5月31日的前一次。在

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

在一个新的buy(=1)信号在df['sell']列中以-1结束之前,如何阻止它?在


Tags: 数据dfclose信号方式buy交易系统双重
2条回答

我参加聚会有点晚了,但我希望这能有所帮助。我想你想要备用的1和-1。虽然不是最好的方法,但我建议您添加买入和卖出信号,并将新列称为交易信号。trade signal列将以任意方式包含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)

我怎样才能防止。。。?在

好吧,一旦需要比简单的numpy向量化/广播/条件操作更复杂的东西时,我们必须实现一些定制的特定功能,以处理这些附加功能,其中有限状态自动机可以很好地满足这些目的。在


但如何实施呢?在

简单地说,您的条件已经超出了简单的矢量化/广播矩阵操作的表达能力,交易管理子系统已经开始有一个内部的、一个顺序的行为和一些附加的规则,用于它的内部转换和转换限制。在

人们很难期望通用的工具,numpy-矩阵和pandas-数据帧实例被过度设计,以支持此类特定于问题领域的功能,从而原型化算法交易策略模拟。在

最好选择一些特定于交易的工具来满足这种需求,或者期望必须实现一个SEQ behavior迭代器函数,这将有助于实现所需的逻辑(智能numpy向量化/广播表达式或pandas one liner将不再满足这里的要求)。在

Scope?
for those really interested in a rapid prototyped Trading Strategy example, using a FSA-based implementation method, check the simplicity of such system design + built-in ( script-based ) automated conformance-testing capability + line numbers for an estimate of the code-span ( definitely not a numpy SLOC ): enter image description here

相关问题 更多 >