【问题标题】:Match Trades from a CSV File in Python using Pandas使用 Pandas 在 Python 中匹配来自 CSV 文件的交易
【发布时间】:2014-02-13 14:51:00
【问题描述】:

所以我有一个包含排序交易数据的 CSV 文件。 它有以下列:

Trade_Price , TimeStamp , Buy/Sell , Contract

现在我已经对交易进行了排序,以便它们在 CSV 中连续行。现在我想通过获取 Trade_Price 的差值来配对交易找到净 PnL,并将其放入 Python 中的新数据帧中。我不确定如何准确地循环数据框以匹配这些交易,然后将它们存储在具有以下列的新数据框中。

Contract ,   Price_Change  ,         PnL  ,       Trade_Number

Price_Change = Trade_price(1) - Trade_price(2) 

如果我以 100 买入并以 101 卖出,那么我的 PnL 将为 1 美元,我假设交易规模为 1。

【问题讨论】:

  • 最好解析纯文件和 groubpy Contract。然后遍历组... Trade_Number 是什么?它在这里凭空出现......
  • 这只是我添加的另一列来表示交易。它是为了记录交易的数量。
  • 所以我已经按合同对它进行分组但是我不确定如何遍历它并一次抓取两行?一旦完成,移动到第三行而不是第二行。
  • 请记住,您可能会买入一个头寸,但您需要多次交易才能摆脱它。交易不是二元业务。或者您可能已经有仓位并再次购买...
  • 这只是一个测试,因此 CSV 文件已经有交易对。格式是一对交易一个接一个地列出。我想将这对交易调和到一张表中并从中计算 PnL。

标签: python pandas dataframe finance import-from-csv


【解决方案1】:

一次抓取两列,您可以执行以下操作:

import pandas as pd

Trade_Price = pd.DataFrame({'A':[1,2,3,4],'B':[5,6,7,8]})
Trade_Price1 = Trade_Price.iloc[::2,:].reset_index(drop=True)
Trade_Price2 = Trade_Price.iloc[1::2,:].reset_index(drop=True)
print Trade_Price1
print Trade_Price2
print Trade_Price1-Trade_Price2 #do your operations here

输出:

   A  B
0  1  5
1  3  7
   A  B
0  2  6
1  4  8
   A  B
0 -1 -1
1 -1 -1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-04
    • 2021-12-06
    • 1970-01-01
    • 1970-01-01
    • 2015-04-29
    • 2018-07-27
    相关资源
    最近更新 更多