ipymd_test/Bot.md

30 KiB
Raw Permalink Blame History

import pandas as pd
import redis
import pickle

r=redis.Redis(port=6666)
#r=redis.Redis()

i=0

f={}
for st in r.lrange("strat_list",0,100):
                    try:   
                        #if st != 'MACROSS_2_20':  
                            s=pd.DataFrame([pickle.loads(i) 
                                for i in r.lrange('%s:positions'%st,0,100000)])
 
                            s.reset_index()
                            s.index=s.date
                            s=s.sort_index()

                            s=s[s.status=="filled"]#.fillna(0)
                            
                            s.pnl.fillna(0,inplace=True)
                            s.side.fillna(method='ffill',inplace=True)
                            
                            f[st]=(s.pnl).cumsum()
                            print 
                            print "profit/loss", st,((s[s.status=="filled"].pnl)).sum()#.abs()

                    except Exception, e :
                            print st, e
                            pass#print e# '%s : P/L:%f PnL:%f %d transactions'%(st,0,0,0)


profit/loss CCI 0.364493427108

profit/loss Volume_inbal 0.0311087466221

profit/loss VHMM_21_205 0.0892311999016

profit/loss VHMM_21_124 0.0269838540813

profit/loss VHMM_50_208 0.0777806134005

profit/loss MACROSS_2_20 0.247519265629

profit/loss MACROSS_21_15 0.0230190248993
for k in f.keys():
    #if k != 'MACROSS_2_20':
        f[k].plot(figsize=(15,8))
legend( f.keys(), "best")

<matplotlib.legend.Legend at 0x118459210>

png

st="Volume_inbal"
s=pd.DataFrame([pickle.loads(i) 
                                for i in r.lrange('%s:positions'%st,0,100000)])
s.reset_index()
s.index=s.date
s=s.sort_index()
%qtconsole
s[(s.status=='filled') & (s.index.duplicated() == True)]
date exit fill_time order_type pnl price side status
date
2015-01-20 19:11:00 2015-01-20 19:11:00 0 2015-01-20 19:26:00 limit -0.000970 1298.50 1 filled
2015-01-20 19:48:00 2015-01-20 19:48:00 0 2015-01-21 02:06:00 limit 0.000000 1301.82 0 filled
2015-01-20 21:31:00 2015-01-20 21:31:00 0 2015-01-20 21:32:00 limit 0.000000 1298.63 1 filled
2015-01-20 21:39:00 2015-01-20 21:39:00 0 2015-01-20 21:40:00 limit 0.002974 1291.10 1 filled
2015-01-20 22:13:00 2015-01-20 22:13:00 0 2015-01-20 22:15:00 limit -0.000000 1286.29 0 filled
2015-01-20 22:19:00 2015-01-20 22:19:00 0 2015-01-20 22:22:00 limit 0.000000 1289.50 0 filled
2015-01-20 22:29:00 2015-01-20 22:29:00 0 2015-01-20 22:30:00 limit 0.000000 1289.60 1 filled
2015-01-20 22:31:00 2015-01-20 22:31:00 0 2015-01-20 22:34:00 limit 0.000000 1289.29 0 filled
2015-01-20 22:41:00 2015-01-20 22:41:00 0 2015-01-20 22:43:00 limit 0.000016 1288.32 1 filled
2015-01-20 22:49:00 2015-01-20 22:49:00 0 2015-01-20 22:50:00 limit 0.000536 1286.90 1 filled
2015-01-20 23:03:00 2015-01-20 23:03:00 0 2015-01-20 23:04:00 limit 0.000000 1292.69 0 filled
2015-01-20 23:08:00 2015-01-20 23:08:00 0 2015-01-20 23:09:00 limit 0.000000 1294.60 0 filled
2015-01-20 23:09:00 2015-01-20 23:09:00 0 2015-01-20 23:11:00 limit 0.000000 1295.14 0 filled
2015-01-20 23:24:00 2015-01-20 23:24:00 0 2015-01-20 23:30:00 limit 0.000000 1292.00 0 filled
2015-01-20 23:33:00 2015-01-20 23:33:00 0 2015-01-20 23:34:00 limit -0.000000 1292.98 0 filled
2015-01-20 23:33:00 2015-01-20 23:33:00 0 2015-01-20 23:35:00 limit -0.000008 1292.01 1 filled
2015-01-20 23:37:00 2015-01-20 23:37:00 0 2015-01-20 23:39:00 limit 0.000000 1292.14 0 filled
2015-01-20 23:39:00 2015-01-20 23:39:00 0 2015-01-20 23:40:00 limit 0.000000 1292.31 0 filled
2015-01-20 23:57:00 2015-01-20 23:57:00 0 2015-01-20 23:58:00 limit 0.000000 1292.36 0 filled
2015-01-20 23:57:00 2015-01-20 23:57:00 0 2015-01-21 00:39:00 limit 0.000333 1292.02 1 filled
2015-01-21 00:00:00 2015-01-21 00:00:00 0 2015-01-21 00:01:00 limit -0.000193 1293.91 1 filled
2015-01-21 00:01:00 2015-01-21 00:01:00 0 2015-01-21 00:02:00 limit -0.000000 1294.76 0 filled
2015-01-21 00:12:00 2015-01-21 00:12:00 0 2015-01-21 00:13:00 limit 0.000000 1294.85 1 filled
2015-01-21 00:26:00 2015-01-21 00:26:00 0 2015-01-21 00:28:00 limit -0.000000 1294.99 0 filled
2015-01-21 00:29:00 2015-01-21 00:29:00 0 2015-01-21 00:30:00 limit 0.000000 1295.00 0 filled
2015-01-21 00:30:00 2015-01-21 00:30:00 0 2015-01-21 00:31:00 limit 0.000000 1295.00 0 filled
2015-01-21 00:40:00 2015-01-21 00:40:00 0 2015-01-21 00:41:00 limit 0.000000 1292.80 0 filled
2015-01-21 00:41:00 2015-01-21 00:41:00 0 2015-01-21 00:43:00 limit 0.000000 1293.14 0 filled
2015-01-21 00:45:00 2015-01-21 00:45:00 0 2015-01-21 00:46:00 limit 0.000000 1293.91 0 filled
2015-01-21 00:50:00 2015-01-21 00:50:00 0 2015-01-21 01:01:00 limit -0.003326 1293.00 1 filled
2015-01-21 00:53:00 2015-01-21 00:53:00 0 2015-01-21 00:54:00 limit 0.000000 1293.48 1 filled
2015-01-21 00:56:00 2015-01-21 00:56:00 0 2015-01-21 00:58:00 limit 0.000054 1293.27 1 filled
2015-01-21 01:08:00 2015-01-21 01:08:00 0 2015-01-21 01:09:00 limit 0.000000 1290.00 0 filled
2015-01-21 01:10:00 2015-01-21 01:10:00 0 2015-01-21 01:32:00 limit 0.000000 1290.00 1 filled
2015-01-21 01:13:00 2015-01-21 01:13:00 0 2015-01-21 01:14:00 limit 0.000000 1291.92 0 filled
2015-01-21 01:30:00 2015-01-21 01:30:00 0 2015-01-21 01:33:00 limit -0.000000 1293.24 0 filled
2015-01-21 01:35:00 2015-01-21 01:35:00 0 2015-01-21 01:37:00 limit 0.000874 1292.25 1 filled
2015-01-21 02:05:00 2015-01-21 02:05:00 0 2015-01-21 02:08:00 limit 0.003692 1300.20 1 filled
2015-01-21 02:13:00 2015-01-21 02:13:00 0 2015-01-21 02:23:00 limit 0.000000 1309.90 1 filled
2015-01-21 02:30:00 2015-01-21 02:30:00 0 2015-01-21 02:31:00 limit -0.000000 1304.00 0 filled
2015-01-21 02:31:00 2015-01-21 02:31:00 0 2015-01-21 02:33:00 limit 0.000000 1303.78 0 filled
2015-01-21 02:35:00 2015-01-21 02:35:00 0 2015-01-21 02:37:00 limit 0.000038 1300.63 1 filled
2015-01-21 02:48:00 2015-01-21 02:48:00 0 2015-01-21 02:58:00 limit 0.000000 1301.00 1 filled
2015-01-21 03:02:00 2015-01-21 03:02:00 0 2015-01-21 03:10:00 limit 0.000000 1298.68 0 filled
2015-01-21 03:06:00 2015-01-21 03:06:00 0 2015-01-21 03:07:00 limit -0.000363 1295.59 1 filled
2015-01-21 03:18:00 2015-01-21 03:18:00 0 2015-01-21 03:19:00 limit 0.000000 1300.00 0 filled
name='VHMM_50_208'
zz=pickle.loads(r.get('strategy:%s'%name))
zz[zz.signal.diff()!=0]
signal price returns
2015-01-21 19:21:00 0 1324.20 NaN
2015-01-21 23:25:00 1 1396.86 -0.000136
2015-01-22 00:14:00 0 1403.35 -0.000783
ww.pnl.fillna(0,inplace=True)
ww.pnl.cumsum().plot()
<matplotlib.axes.AxesSubplot at 0x109de1c50>

png

s[s.index.duplicated()==True]
date exit fill_time order_type pnl price side status
date
2015-01-20 19:11:00 2015-01-20 19:11:00 0 2015-01-20 19:26:00 limit -0.000970 1298.50 1 filled
2015-01-20 19:48:00 2015-01-20 19:48:00 0 2015-01-21 02:06:00 limit 0.000000 1301.82 0 filled
2015-01-20 21:29:00 2015-01-20 21:29:00 0 NaT limit 0.000000 1298.88 1 open
2015-01-20 21:31:00 2015-01-20 21:31:00 0 2015-01-20 21:32:00 limit 0.000000 1298.63 1 filled
2015-01-20 21:31:00 2015-01-20 21:31:00 0 NaT limit 0.000000 1298.87 0 open
2015-01-20 21:39:00 2015-01-20 21:39:00 0 2015-01-20 21:40:00 limit 0.002974 1291.10 1 filled
2015-01-20 21:49:00 2015-01-20 21:49:00 0 NaT limit 0.000000 1294.56 1 open
2015-01-20 22:13:00 2015-01-20 22:13:00 0 NaT limit 0.000000 1286.10 0 open
2015-01-20 22:13:00 2015-01-20 22:13:00 0 2015-01-20 22:15:00 limit -0.000000 1286.29 0 filled
2015-01-20 22:19:00 2015-01-20 22:19:00 0 NaT limit 0.000000 1288.92 0 open
2015-01-20 22:19:00 2015-01-20 22:19:00 0 2015-01-20 22:22:00 limit 0.000000 1289.50 0 filled
2015-01-20 22:29:00 2015-01-20 22:29:00 0 2015-01-20 22:30:00 limit 0.000000 1289.60 1 filled
2015-01-20 22:31:00 2015-01-20 22:31:00 0 2015-01-20 22:34:00 limit 0.000000 1289.29 0 filled
2015-01-20 22:41:00 2015-01-20 22:41:00 0 2015-01-20 22:43:00 limit 0.000016 1288.32 1 filled
2015-01-20 22:49:00 2015-01-20 22:49:00 0 2015-01-20 22:50:00 limit 0.000536 1286.90 1 filled
2015-01-20 23:03:00 2015-01-20 23:03:00 0 2015-01-20 23:04:00 limit 0.000000 1292.69 0 filled
2015-01-20 23:08:00 2015-01-20 23:08:00 0 2015-01-20 23:09:00 limit 0.000000 1294.60 0 filled
2015-01-20 23:09:00 2015-01-20 23:09:00 0 2015-01-20 23:11:00 limit 0.000000 1295.14 0 filled
2015-01-20 23:24:00 2015-01-20 23:24:00 0 2015-01-20 23:30:00 limit 0.000000 1292.00 0 filled
2015-01-20 23:33:00 2015-01-20 23:33:00 0 2015-01-20 23:34:00 limit -0.000000 1292.98 0 filled
2015-01-20 23:33:00 2015-01-20 23:33:00 0 2015-01-20 23:35:00 limit -0.000008 1292.01 1 filled
2015-01-20 23:37:00 2015-01-20 23:37:00 0 2015-01-20 23:39:00 limit 0.000000 1292.14 0 filled
2015-01-20 23:39:00 2015-01-20 23:39:00 0 2015-01-20 23:40:00 limit 0.000000 1292.31 0 filled
2015-01-20 23:57:00 2015-01-20 23:57:00 0 2015-01-20 23:58:00 limit 0.000000 1292.36 0 filled
2015-01-20 23:57:00 2015-01-20 23:57:00 0 2015-01-21 00:39:00 limit 0.000333 1292.02 1 filled
2015-01-21 00:00:00 2015-01-21 00:00:00 0 2015-01-21 00:01:00 limit -0.000193 1293.91 1 filled
2015-01-21 00:01:00 2015-01-21 00:01:00 0 2015-01-21 00:02:00 limit -0.000000 1294.76 0 filled
2015-01-21 00:01:00 2015-01-21 00:01:00 0 NaT limit 0.000000 1293.59 1 open
2015-01-21 00:12:00 2015-01-21 00:12:00 0 2015-01-21 00:13:00 limit 0.000000 1294.85 1 filled
2015-01-21 00:26:00 2015-01-21 00:26:00 0 2015-01-21 00:28:00 limit -0.000000 1294.99 0 filled
... ... ... ... ... ... ... ... ...
2015-01-21 00:30:00 2015-01-21 00:30:00 0 2015-01-21 00:31:00 limit 0.000000 1295.00 0 filled
2015-01-21 00:40:00 2015-01-21 00:40:00 0 2015-01-21 00:41:00 limit 0.000000 1292.80 0 filled
2015-01-21 00:41:00 2015-01-21 00:41:00 0 2015-01-21 00:43:00 limit 0.000000 1293.14 0 filled
2015-01-21 00:45:00 2015-01-21 00:45:00 0 2015-01-21 00:46:00 limit 0.000000 1293.91 0 filled
2015-01-21 00:50:00 2015-01-21 00:50:00 0 2015-01-21 01:01:00 limit -0.003326 1293.00 1 filled
2015-01-21 00:53:00 2015-01-21 00:53:00 0 2015-01-21 00:54:00 limit 0.000000 1293.48 1 filled
2015-01-21 00:56:00 2015-01-21 00:56:00 0 2015-01-21 00:58:00 limit 0.000054 1293.27 1 filled
2015-01-21 01:08:00 2015-01-21 01:08:00 0 2015-01-21 01:09:00 limit 0.000000 1290.00 0 filled
2015-01-21 01:10:00 2015-01-21 01:10:00 0 NaT limit 0.000000 1290.00 1 open
2015-01-21 01:10:00 2015-01-21 01:10:00 0 2015-01-21 01:32:00 limit 0.000000 1290.00 1 filled
2015-01-21 01:13:00 2015-01-21 01:13:00 0 2015-01-21 01:14:00 limit 0.000000 1291.92 0 filled
2015-01-21 01:22:00 2015-01-21 01:22:00 0 NaT limit 0.000000 1292.98 1 open
2015-01-21 01:30:00 2015-01-21 01:30:00 0 2015-01-21 01:33:00 limit -0.000000 1293.24 0 filled
2015-01-21 01:35:00 2015-01-21 01:35:00 0 2015-01-21 01:37:00 limit 0.000874 1292.25 1 filled
2015-01-21 01:57:00 2015-01-21 01:57:00 0 NaT limit 0.000000 1296.15 0 open
2015-01-21 02:03:00 2015-01-21 02:03:00 0 NaT limit 0.000000 1295.64 1 open
2015-01-21 02:05:00 2015-01-21 02:05:00 0 2015-01-21 02:08:00 limit 0.003692 1300.20 1 filled
2015-01-21 02:13:00 2015-01-21 02:13:00 0 2015-01-21 02:23:00 limit 0.000000 1309.90 1 filled
2015-01-21 02:14:00 2015-01-21 02:14:00 0 NaT limit 0.000000 1311.10 1 open
2015-01-21 02:30:00 2015-01-21 02:30:00 0 2015-01-21 02:31:00 limit -0.000000 1304.00 0 filled
2015-01-21 02:31:00 2015-01-21 02:31:00 0 NaT limit 0.000000 1303.51 0 open
2015-01-21 02:31:00 2015-01-21 02:31:00 0 2015-01-21 02:33:00 limit 0.000000 1303.78 0 filled
2015-01-21 02:35:00 2015-01-21 02:35:00 0 2015-01-21 02:37:00 limit 0.000038 1300.63 1 filled
2015-01-21 02:39:00 2015-01-21 02:39:00 0 NaT limit 0.000000 1299.96 1 open
2015-01-21 02:48:00 2015-01-21 02:48:00 0 2015-01-21 02:58:00 limit 0.000000 1301.00 1 filled
2015-01-21 02:52:00 2015-01-21 02:52:00 0 NaT limit 0.000000 1304.57 0 open
2015-01-21 03:02:00 2015-01-21 03:02:00 0 2015-01-21 03:10:00 limit 0.000000 1298.68 0 filled
2015-01-21 03:06:00 2015-01-21 03:06:00 0 2015-01-21 03:07:00 limit -0.000363 1295.59 1 filled
2015-01-21 03:09:00 2015-01-21 03:09:00 0 NaT limit 0.000000 1297.88 1 open
2015-01-21 03:18:00 2015-01-21 03:18:00 0 2015-01-21 03:19:00 limit 0.000000 1300.00 0 filled

61 rows × 8 columns