.csvで10分の価格で毎日の損益を計算しようとしています(各日付に42回あります)---1日の購入数と販売数が等しくない可能性があります。それらが等しくない場合、プログラムはその一意の日付df ["price"] [t]の終値を使用して、買いか売りかに応じて(から/によって)減算する必要があります。
import pandas as pd
df=pd.read_csv("file.csv", names="date time price mag signal".split())
s=df["signal"]=="S"
b=df["signal"]=="B"
ns=df["signal"]!="S"
nb=df["signal"]!="B"
t=df["time"]=="1620"
a1=df["price"][buy|(nb & t)]
b1=df["date"][buy|(nb & t)]
h=df["price"][s|(ns & t)]
g=df["date"][s|(ns & t)]
c1=zip(b1,a1)
c=zip(g,h)
c1、cは、それぞれの日付とともに、売買の数を含むリストです。ここでの問題は、c1とcが文字列であるということです。したがって、減算することはできません。a1、hの浮動小数点数を作成して、それらを区別できるようにすることは可能ですか?
c、c1の日付を一致させて、Sells-Buys:S_i-B_iで、特定の日のすべてのiの価格を減算し、すべてを合計して、すべての日付についてその1つの値を返します。日付が一致する場合にのみ、h-a1で価格を比較したいと思います。
いくつかのサンプルデータ:
日時価格雑誌信号
1/3/2007 930 1422.8
1/3/2007 940 1423.2 0
1/3/2007 950 1422.8 0
1/3/2007 1000 1420.5 0
1/3/2007 1010 1422.8 0
1/3/2007 1020 1426.2 1 S
。。。
2007年1月3日12301424.2-1B
2007年1月3日12401424.802007年
1月3日12501425.81 S
1/3/2007 1300 1426 0
1/3/2007 1310 1425 0
1/3/2007 1320 1423.5 -1 B
1/3/2007 1330 1421.8 0
1/3/2007 1340 1421.5 0
1/3/2007 1350 1420.5 0
1/3/2007 1400 1421 0
1/3/2007 1410 1417.2 -1 B
2007年1月3日14201412.8-1 B
1/3/2007 1430 1414.8 0
1/3/2007 1440 1413.5 0
1/3/2007 1450 1410 0
1/3/2007 1500 1407.2 -1 B
2007年1月3日15101410.21 S
2007年1月3日15201409.5-1 B
2007年1月3日15301410.51 S
2007年1月3日15401412.50
..。
2007年1月3日16101415.51 S
2007年1月3日16201414-1 B
1/4/2007 930 1412.2 0
1/4/2007 940 1411 0
1/4/2007 950 1413 0
1/4/2007 1000 1412.2 0
1/4/2007 1010 1407.2 -1 B
たとえば、zipの結果は次のようになります。
[('1/3/2007', '1424.2'),
('1/3/2007', '1423.5'),
('1/3/2007', '1417.2'),
('1/3/2007', '1412.8'),
('1/3/2007', '1407.2'),
('1/3/2007', '1409.5'),
('1/3/2007', '1414'),
etc - all dates in between
('8/30/2012','1324')]
どうもありがとう。