In [1]:
import requests
import json
import pandas as pd

url = 'http://192.168.5.9:10000/index/getIndexLevels'
body = """-"""

body = json.loads(body)

res = requests.post(url, json=body)

In [2]:
print(res)
data = res.json()['ITALIAN_SME']['LAST']
# print(data)
df = pd.DataFrame.from_dict(data, orient='index')[0]
# print(df.head())
df.index = pd.to_datetime(df.index, unit='s')
df = df.sort_index()
print(df.tail())
print('Save data....')
df.to_csv('ItalianBasket.csv')


<Response [200]>
2018-03-14    980.871348
2018-03-15    994.654251
2018-03-16    986.458630
2018-03-19    990.169474
2018-03-20    990.779849
Name: 0, dtype: float64
Save data....

In [3]:
# Test data @ 2018-03-15
# Basis price
preIndexLevel = 999.0
lastPrices = {'IB_tick_IP': 26.22, 'IB_tick_IF': 40.77, 'IB_tick_AST': 2.12, 'IB_tick_AMP': 12.84, 'IB_tick_IMA': 67.8, 'IB_tick_MTV': 6.38, 'IB_tick_ELN': 26.03, 'IB_tick_REY': 46.17, 'IB_tick_FKR': 2.17, 'IB_tick_GIMA': 16.61, 'IB_tick_SO': 4.01, 'IB_tick_BSS': 42.3, 'IB_tick_IGD': 9.64, 'IB_tick_DAL': 30.82, 'IB_tick_CEM': 7.55, 'IB_tick_MARR': 21.52, 'IB_tick_PRT': 4.116, 'IB_tick_LD': 16.39, 'IB_tick_TIP': 5.555, 'IB_tick_MN': 2.082, 'IB_tick_PRI': 33.8, 'IB_tick_EIT': 53.5, 'IB_tick_STS': 12.0, 'IB_tick_UNIR': 14.24, 'IB_tick_CAI': 3.71}
# trading price at 2018-03-15
targetPrices =  {"IB_tick_IP": 28.8, "IB_tick_IF": 31.58, "IB_tick_MTV": 5.1, "IB_tick_REY": 50.0, "IB_tick_AST": 2.456,
         "IB_tick_ELN": 30.48, "IB_tick_AMP": 14.15, "IB_tick_IMA": 77.35, "IB_tick_BSS": 50.75, "IB_tick_SO": 3.064,
         "IB_tick_FKR": 2.275, "IB_tick_GIMA": 17.065, "IB_tick_IGD": 7.346, "IB_tick_DAL": 32.15, "IB_tick_CEM": 7.21,
         "IB_tick_LD": 13.5, "IB_tick_MARR": 23.86, "IB_tick_PRT": 4.2, "IB_tick_TIP": 6.21, "IB_tick_MN": 1.828,
         "IB_tick_CAI": 3.4, "IB_tick_EIT": 45.45, "IB_tick_STS": 12.46, "IB_tick_PRI": 40.0, "IB_tick_UNIR": 11.96}


# download
tickerList = lastPrices.keys()
start = 1520985600
end = 1521072000
for ticker in tickerList:
    bbgTicker = '%s IM Equity' % ticker.split('_')[-1]
    url = """http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/%s/[TOT_RETURN_INDEX_NET_DVDS,PX_LAST]/%s/%s/EUR""" % (bbgTicker, start, end)
    res = requests.get(url).json()
    # check
    data = res[bbgTicker]['TOT_RETURN_INDEX_NET_DVDS']['%s' % end]
    assert data == targetPrices[ticker] # check bloomberg data with IB last trading data

print('All check passed!')


---------------------------------------------------------------------------
AssertionError                            Traceback (most recent call last)
<ipython-input-3-95705c6b5ae1> in <module>()
     21     # check
     22     data = res[bbgTicker]['TOT_RETURN_INDEX_NET_DVDS']['%s' % end]
---> 23     assert data == targetPrices[ticker] # check bloomberg data with IB last trading data
     24 
     25 print('All check passed!')

AssertionError: 

In [11]:
#### New PIR index conpenent and index calculate
tickers = ['FKR IM Equity',
'MTV IM Equity',
'SO IM Equity',
'PRT IM Equity',
'CAI IM Equity',
'BST IM Equity',
'AST IM Equity',
'IGD IM Equity',
'MN IM Equity',
'TIP IM Equity',
'RM IM Equity',
'LR IM Equity',
'DIB IM Equity',
'DIS IM Equity',
'AMP IM Equity',
'GIMA IM Equity',
'UNIR IM Equity',
'ELN IM Equity',
'ELC IM Equity',
'IP IM Equity',
'LD IM Equity',
'XPR IM Equity',
'IF IM Equity',
'DEA IM Equity',
'ASC IM Equity']

# generate data server requests
for t in tickers:

    u = """"%s":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/%s/TOT_RETURN_INDEX_NET_DVDS/1514419200/1521590400/EUR"}},""" % (t, t)

    print(u)


"FKR IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/FKR IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/1521590400/EUR"}},
"MTV IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/MTV IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/1521590400/EUR"}},
"SO IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/SO IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/1521590400/EUR"}},
"PRT IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/PRT IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/1521590400/EUR"}},
"CAI IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/CAI IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/1521590400/EUR"}},
"BST IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/BST IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/1521590400/EUR"}},
"AST IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/AST IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/1521590400/EUR"}},
"IGD IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/IGD IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/1521590400/EUR"}},
"MN IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/MN IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/1521590400/EUR"}},
"TIP IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/TIP IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/1521590400/EUR"}},
"RM IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/RM IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/1521590400/EUR"}},
"LR IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/LR IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/1521590400/EUR"}},
"DIB IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/DIB IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/1521590400/EUR"}},
"DIS IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/DIS IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/1521590400/EUR"}},
"AMP IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/AMP IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/1521590400/EUR"}},
"GIMA IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/GIMA IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/1521590400/EUR"}},
"UNIR IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/UNIR IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/1521590400/EUR"}},
"ELN IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/ELN IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/1521590400/EUR"}},
"ELC IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/ELC IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/1521590400/EUR"}},
"IP IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/IP IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/1521590400/EUR"}},
"LD IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/LD IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/1521590400/EUR"}},
"XPR IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/XPR IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/1521590400/EUR"}},
"IF IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/IF IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/1521590400/EUR"}},
"DEA IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/DEA IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/1521590400/EUR"}},
"ASC IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/ASC IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/1521590400/EUR"}},

In [ ]:
body = """{"percentageReturns": true,
 "indexStart":1000.00,
 "isRatesIndex": false,
 "isCashIndex":true,
 "beVerbose": true,
 "totalReturn": true,
 "indexDataIsComplex": true,
 "indexName": "ITALIAN_SME",
 "annualFee": 0.007,
 "annualFeeBasis": 360,
 "rebalancingFee": 0.001,
 "startDate": 1514419200,
 "endDate": 1521763200,
 "indexCurrency": "EUR",
 "rebalanceOffset": 1,
 "rebalanceFrequency":
 "Annually",
 "dataServer":{
 "FKR IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/FKR IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/1521763200/EUR"}},
"MTV IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/MTV IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/1521763200/EUR"}},
"SO IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/SO IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/1521763200/EUR"}},
"PRT IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/PRT IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/1521763200/EUR"}},
"CAI IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/CAI IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/1521763200/EUR"}},
"BST IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/BST IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/1521763200/EUR"}},
"AST IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/AST IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/1521763200/EUR"}},
"IGD IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/IGD IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/1521763200/EUR"}},
"MN IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/MN IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/1521763200/EUR"}},
"TIP IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/TIP IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/1521763200/EUR"}},
"RM IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/RM IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/1521763200/EUR"}},
"LR IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/LR IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/1521763200/EUR"}},
"DIB IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/DIB IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/1521763200/EUR"}},
"DIS IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/DIS IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/1521763200/EUR"}},
"AMP IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/AMP IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/1521763200/EUR"}},
"GIMA IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/GIMA IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/1521763200/EUR"}},
"UNIR IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/UNIR IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/1521763200/EUR"}},
"ELN IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/ELN IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/1521763200/EUR"}},
"ELC IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/ELC IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/1521763200/EUR"}},
"IP IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/IP IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/1521763200/EUR"}},
"LD IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/LD IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/1521763200/EUR"}},
"XPR IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/XPR IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/1521763200/EUR"}},
"IF IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/IF IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/1521763200/EUR"}},
"DEA IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/DEA IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/1521763200/EUR"}},
"ASC IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/ASC IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/1521763200/EUR"}}
 },
"datesServer":{"POST":{"url": "http://192.168.5.9:9999/dates/fromMarket/1514419200/1521676800/1/Annually"}},
"weightsServer":{"POST":{"url": "http://192.168.5.9:9998/weights/getWeights/1514419200/1521676800/Weights.WeightsServerEquallyWeighted.WeightsServerEquallyWeighted"}}
}"""

url = 'http://192.168.5.9:10000/index/getIndexLevels'

body = json.loads(body)

res = requests.post(url, json=body)
print(res)
data = res.json()['ITALIAN_SME']['LAST']
# print(data)
df = pd.DataFrame.from_dict(data, orient='index')[0]
# print(df.head())
df.index = pd.to_datetime(df.index, unit='s')
df = df.sort_index()
print(df.tail())
print('Save data....')
df.to_csv('ItalianBasketNewComponent.csv')

In [ ]:
# Generate underly tickers
underlys = []
for t in tickers:
    tt = 'IB_tick_%s' % t.split(' ')[0]
    underlys.append(tt)

print(json.dumps(underlys))

# Get current weight
wei = {}
for ticker in underlys:
    wei[ticker] = 0.04

print(json.dumps(wei))

# Check bloomberg ticker list
api_ = [
"FKR IM Equity",
"MTV IM Equity",
"SO IM Equity",
"PRT IM Equity",
"CAI IM Equity",
"BST IM Equity",
"AST IM Equity",
"IGD IM Equity",
"MN IM Equity",
"TIP IM Equity",
"RM IM Equity",
"LR IM Equity",
"RM IM Equity",
"DIS IM Equity",
"AMP IM Equity",
"GIMA IM Equity",
"UNIR IM Equity",
"ELN IM Equity",
"ELC IM Equity",
"IP IM Equity",
"LD IM Equity",
"XPR IM Equity",
"IF IM Equity",
"DEA IM Equity",
"ASC IM Equity",
"DIB IM Equity"
]

print(len(api_))
assert api_ == tickers

In [13]:
# Get last prices
ur = 'http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/[%s]/[PX_LAST]/1514505600/1514505600/EUR' 
print(tickers)
res = {}
for t in tickers:
    _res = requests.get(ur % t)
    data = _res.json()
    tt = 'IB_tick_%s' % t.split(' ')[0]
    price = data[t]['PX_LAST']['1514505600']
    res[tt] = price

print(json.dumps(res))


['FKR IM Equity', 'MTV IM Equity', 'SO IM Equity', 'PRT IM Equity', 'CAI IM Equity', 'BST IM Equity', 'AST IM Equity', 'IGD IM Equity', 'MN IM Equity', 'TIP IM Equity', 'RM IM Equity', 'LR IM Equity', 'DIB IM Equity', 'DIS IM Equity', 'AMP IM Equity', 'GIMA IM Equity', 'UNIR IM Equity', 'ELN IM Equity', 'ELC IM Equity', 'IP IM Equity', 'LD IM Equity', 'XPR IM Equity', 'IF IM Equity', 'DEA IM Equity', 'ASC IM Equity']
{"IB_tick_DIS": 0.2585, "IB_tick_IGD": 0.964, "IB_tick_BST": 2.268, "IB_tick_SO": 4.01, "IB_tick_ASC": 3.546, "IB_tick_IF": 40.77, "IB_tick_AMP": 12.84, "IB_tick_LD": 16.39, "IB_tick_PRT": 4.116, "IB_tick_IP": 26.22, "IB_tick_MN": 2.082, "IB_tick_FKR": 2.17, "IB_tick_LR": 1.57, "IB_tick_ELC": 2.422, "IB_tick_CAI": 3.71, "IB_tick_AST": 2.12, "IB_tick_ELN": 26.03, "IB_tick_TIP": 5.555, "IB_tick_XPR": 1.505, "IB_tick_RM": 0.5055, "IB_tick_MTV": 6.38, "IB_tick_UNIR": 14.24, "IB_tick_GIMA": 16.61, "IB_tick_DIB": 10.82, "IB_tick_DEA": 1.349}

In [ ]:
import datetime
import requests
import time

def getReturnFile():
    """"""
    end = datetime.datetime.now()
    end = end.replace(hour=0, minute=0, second=0, microsecond=0)
    endStr = int(time.mktime(end.timetuple()))
    print('End date: %s %s' % (end, endStr))
    url = 'http://192.168.5.9:10000/index/getIndexLevels'
    body = """-""".replace('{endStr}', str(endStr))

    body = json.loads(body)
    res = requests.post(url, json=body)
    # print(json.dumps(body))
    data = res.json()['ITALIAN_SME']['LAST']
    # print(data)
    df = pd.DataFrame.from_dict(data, orient='index')[0]
    # print(df.head())
    df.index = pd.to_datetime(df.index, unit='s')
    df = df.sort_index()
    # print(df.tail())
    # print('Save data....')
    # df.to_csv('ItalianBasket.csv')
    ret = df.pct_change().iloc[:].fillna(0.0)
    
    mean = ret.mean() * 252**0.5
    std = ret.std() * 252**0.5
    print('Mean: ', mean)
    print('Vol: ', std)
    statics = pd.DataFrame([mean, std], ['Annual return', 'Annual volatility'])
    print(statics)
    df.append(statics)
    print(df)
    ret.to_csv('./%s_ret.csv' % end)
    df.to_csv('./%s_pnl.csv' % end)
    return ret

In [ ]:
ret = getReturnFile()

In [ ]:
## Reconcile @ 2018-04-03
ib_data = {
"IB_tick_FKR": 2.06,
"IB_tick_SO": 2.936,
"IB_tick_MTV": 5,
"IB_tick_IGD": 7.75,
"IB_tick_AST": 2.21,
"IB_tick_PRT": 4.325,
"IB_tick_CAI": 3.68,
"IB_tick_BST": 2.255,
"IB_tick_TIP": 6.1,
"IB_tick_RM": 0.783,
"IB_tick_MN": 1.704,
"IB_tick_LR": 1.486,
"IB_tick_DIB": 9.58,
"IB_tick_DIS": 0.2115,
"IB_tick_AMP": 14.49,
"IB_tick_GIMA": 17.125,
"IB_tick_ELN": 31.94,
"IB_tick_UNIR": 12.85,
"IB_tick_IP": 27.36,
"IB_tick_IF": 31.24,
"IB_tick_XPR": 1.394,
"IB_tick_LD": 12.82,
"IB_tick_ELC": 2.21,
"IB_tick_DEA": 1.472,
"IB_tick_ASC": 3.25
}
ib_basis_prices = {
"IB_tick_FKR": 2.17,
"IB_tick_MTV": 6.38,
"IB_tick_SO": 4.01,
"IB_tick_PRT": 4.116,
"IB_tick_CAI": 3.71,
"IB_tick_BST": 2.268,
"IB_tick_AST": 2.12,
"IB_tick_IGD": 9.64,
"IB_tick_MN": 2.082,
"IB_tick_TIP": 5.555,
"IB_tick_RM": 0.5055,
"IB_tick_LR": 1.57,
"IB_tick_DIB": 10.82,
"IB_tick_DIS": 0.2585,
"IB_tick_AMP": 12.84,
"IB_tick_GIMA": 16.61,
"IB_tick_UNIR": 14.24,
"IB_tick_ELN": 26.03,
"IB_tick_ELC": 2.422,
"IB_tick_IP": 26.22,
"IB_tick_LD": 16.39,
"IB_tick_XPR": 1.505,
"IB_tick_IF": 40.77,
"IB_tick_DEA": 1.349,
"IB_tick_ASC": 3.546
}
ib_level = 964.8432848736414
cal_level = 967.2744038879
bloomberg_data = {}
# date
test_date = datetime.datetime(2018, 4, 3, hour=0, minute=0, second=0, microsecond=0)
print(test_date)
test_date_int = int(time.mktime(test_date.timetuple()))
# get bloomberg data 
url = 'http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/[%s]/[TOT_RETURN_INDEX_NET_DVDS]/1514764800/1522713600/EUR' 
for ticker in api_:
    _res = requests.get(url % (ticker))
    data = _res.json()
    tt = 'IB_tick_%s' % ticker.split(' ')[0]
    price = data[ticker]['TOT_RETURN_INDEX_NET_DVDS']['1522713600']
    bloomberg_data[tt] = price

print(bloomberg_data)

In [ ]:
## asset bloomberg data and IB
print('**** Reconcile IB last price and bloomberg last prices:')
for ticker, value in ib_data.items():
    assert value==bloomberg_data[ticker]

print('**** Reconciled!!!')

In [10]:
## 
import pandas as pd
import requests

url = 'http://192.168.5.4:8808/bdh/"SPXT Index"/["TOT_RETURN_INDEX_NET_DVDS"]/20000101/20180706/{"currency":"USD"}'

res = requests.get(url).json()
df = pd.DataFrame.from_dict(json.loads(res))
df.index = pd.to_datetime(df.index, unit='s')
print(df)
df.to_csv('./SPXT.csv')


            TOT_RETURN_INDEX_NET_DVDS
2001-09-10                   1533.981
2001-09-11                   1533.981
2001-09-12                   1533.981
2001-09-13                   1533.981
2001-09-14                   1533.981
2001-09-17                   1458.995
2001-09-18                   1450.540
2001-09-19                   1427.245
2001-09-20                   1382.932
2001-09-21                   1356.609
2001-09-24                   1409.497
2001-09-25                   1421.908
2001-09-26                   1415.014
2001-09-27                   1431.294
2001-09-28                   1462.690
2001-10-01                   1459.333
2001-10-02                   1477.291
2001-10-03                   1507.029
2001-10-04                   1503.312
2001-10-05                   1506.111
2001-10-08                   1493.544
2001-10-09                   1485.628
2001-10-10                   1519.771
2001-10-11                   1542.979
2001-10-12                   1534.862
2001-10-15                   1532.517
2001-10-16                   1543.149
2001-10-17                   1514.497
2001-10-18                   1502.610
2001-10-19                   1509.458
...                               ...
2001-07-27                   1689.785
2001-07-30                   1688.029
2001-07-31                   1697.445
2001-08-01                   1704.240
2001-08-02                   1711.174
2001-08-03                   1702.434
2001-08-06                   1683.031
2001-08-07                   1688.603
2001-08-08                   1659.581
2001-08-09                   1659.756
2001-08-10                   1669.206
2001-08-13                   1670.962
2001-08-14                   1664.611
2001-08-15                   1652.713
2001-08-16                   1657.875
2001-08-17                   1630.345
2001-08-20                   1643.590
2001-08-21                   1623.739
2001-08-22                   1635.160
2001-08-23                   1630.665
2001-08-24                   1662.741
2001-08-27                   1654.720
2001-08-28                   1629.908
2001-08-29                   1612.047
2001-08-30                   1584.773
2001-08-31                   1591.182
2001-09-04                   1590.293
2001-09-05                   1588.926
2001-09-06                   1553.410
2001-09-07                   1524.473

[4660 rows x 1 columns]

In [ ]: