股票交易记录

时间:2019-04-22 02:52:17

标签: python-3.x pandas

我是python的新手,所以如果问题不清楚,请提前道歉。

我有一个包含以下数据的投资组合,我想将其转换为交易记录。 日期,符号,份额,Portid 2015年12月31日,IBM,1000,帐户1 2015年12月31日,DIS,1000,帐户1 2016年1月1日,FB,2000,帐户1 2016年1月1日,IBM,2000,帐户1

可以按照以下步骤进行操作: 1.对于每个交易品种,记录下日期的最小份额(相对于该交易品种)。因此对于2015年12月31日,IBM记录为1000;在1/1/2016上记录了IBM 2000。 2.在接下来的几天中,记录该代码的股份差异。因此在2016年1月1日为IBM记录1000股。 3.如果第二天没有可用的交易品种,则在该日期创建抛售交易。因此,DIS会在2016年1月1日以-1000的股份记录一笔交易。

我在Windows机器上使用python 3.6,并且能够与#1&#2一起工作,但是在#3上需要您的帮助,如果有任何建议,对于#1&#2可以提高效率。

我在下面尝试#1,unique_port_id指向Portid,unique_symbol指向符号

#create transaction for first date:
for p in range(0,len(unique_port_id)):
        for s in range(0,len(unique_symbol)):
            ft_data=filedata[(filedata['portfolioid']==unique_port_id[p])
                             & (filedata['usersymbol']==unique_symbol[s])].sort_values(by='date',ascending=True)

            ft=ft.append(ft_data.head(1))

对于#2,如下所示:

for n in range(0,len(unique_port_id)):
    for k in range(0,len(unique_symbol)):
        tr_data=filedata[(filedata['portfolioid']==unique_port_id[n])
                         & (filedata['usersymbol']==unique_symbol[k])].sort_values(by='date',ascending=True)
        tr_data['transaction_quantity']=tr_data["Final_quantity"].diff(1)

        tr=tr.append([tr_data[(tr_data['transaction_quantity']!=0) & (tr_data['transaction_quantity'].notnull())]])

0 个答案:

没有答案