python 量化交易日常积累 2019/1/22

  • zip函数

可以把列表合并成一个元组的列表。再用list转化之后使用。

a = ['a', 'b', 'c']
b = ['1', '2', '3']
s = list(zip(a, b))
print(s)
  • numpy.fromfile函数

从文件中读取数据。

with open(filename, "rb") as f:
    t = np.fromfile(f, dtype=dt)

dt 包含要从文件中获取的数据名以及类型。

例如:

[('min', 'i'),('code', 'i')]
  • 查询与pycharm有关的进程 终止掉

ps -ef|grep pycharm

kill -9 143883 后面为进程号

  • 滚动求值
highdf.rolling(5).corr(rankv)

计算前5天内的highdf和rankv的相关系数。

rolling_mean、rolling_max、rolling_min、等函数的实现:分开进行

 

volumedf.rolling(20).mean()

(vwapdf - closedf).rolling(3).max()

(vwapdf - closedf).rolling(3).min()

rolling_rank 当前数据在五天内数据的排位。

tsrank1 = highdf.rolling(5).apply(lambda x: pd.Series(x).rank()[4], raw=False)

例子为:序列末尾数据在5天的数据内的排位。
 

  • pandas中对dataframe实现sgn函数
highdf = pd.read_csv('high.csv', index_col=0)
    opendf = pd.read_csv('open.csv', index_col=0)
    delta = (opendf*0.85 + highdf*0.15).diff(periods=4)
    ones = pd.DataFrame(np.ones([465, 244]))
    ones.columns = delta.columns
    ones.index = delta.index
    nones = pd.DataFrame(-np.ones([465, 244]))
    nones.columns = delta.columns
    nones.index = delta.index
    zeros = pd.DataFrame(np.zeros([465, 244]))
    zeros.columns = delta.columns
    zeros.index = delta.index
    dfp = ones[delta > 0]
    dfz = zeros[delta == 0]
    dfn = nones[delta < 0]
    temp = dfp.combine_first(dfz)
    df = temp.combine_first(dfn)

建一个零,一,和负一矩阵。然后通过条件找到符合条件的索引,带入矩阵就可以得到对应位置的0、1、-1。

然后再把这三个矩阵用combine_first()组合起来。

注意中间有一个把ones和delta的Index以及columns名字设置为相同的操作,不然Dataframe的名字不一样会导致得不到正确的结果。

 

redis 包的import出错,显示no module named 'redis',解决方法:

第一步: 用把conda安装的redis卸载掉。

conda remove redis

第二步:然后用pip in install redis安装

pip install redis

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值