theme: smartblue 最近在做交易数据的统计分析时,多次用到数据行之间的一些操作,对于其中的细节,简单做了个笔记。 1. shfit函数 shift函数在策略回测代码中经常出现,计算交易信号,持仓信号以及资金曲线时都有涉及。这个函数的主要作用是将某列的值上下移动。默认情况下,shift函
最近在做交易数据的统计分析时,多次用到数据行之间的一些操作,对于其中的细节,简单做了个笔记。
在策略回测代码中,
shift
函数经常出现,用于计算交易信号、持仓信号以及资金曲线。这个函数的主要作用是将某列的值上下移动。默认情况下,
shift
函数是向下移动一行,移动后,新数据列的第一行数据用
NaN
(空值)填充,原始数据列的最后一行丢弃。
也可以在
shift
函数中指定移动的行数。指定的行数为负值时,表示向上移动,此时,下面的部分用
NaN
填充。在使用
shift
之后,一般会在首部/尾部产生
NaN
空值,根据情况看是否需要进一步处理。
在交易数据分析中,
shift
函数常用于计算交易信号和持仓信号。
shift
函数还是比较好理解的。为了简化,创建两个测试数据。把一个数据集的某一列赋值给另一个数据集时,
pandas
会自动比较两个数据的索引,只赋值具有相同索引的行。
不同行数的两个数据集互相赋值时,是根据两个数据的索引来匹配赋值的。这时,再回头看计算交易信号的代码,虽然经过过滤之后,行数比数据集要少,但是过滤之后的每行数据会根据对应的索引准确的赋给数据集中相同索引的行。
在分析交易信息,特别是统计收益和收益率的变化时,上面几个函数能帮助我们极大简化代码,避免写各种复杂的循环。
小编推荐阅读