In [4]:
#!/bin/python3
import numpy as np
import sys
import pytz
def printMatrix(matrix):
""""""
for row in range(len(matrix)):
for col in range(len(matrix[row])):
print(int(matrix[row][col]), end=' ')
print('')
def matrixRotation(matrix: [list], r: int):
""""""
rowNum = len(matrix)
colNum = len(matrix)
result = np.zeros((rowNum, colNum))
# Complete this function
numLayers = min(rowNum, colNum) % 2
# for layer in range(numLayers):
printMatrix(result)
if __name__ == "__main__":
t = [[1,2], [3,4]]
matrixRotation(t, 1)
In [43]:
import requests
import pandas as pd
import datetime
import time
def datetimeToUnix(dt: str='2018-01-01'):
""""""
date = datetime.datetime.strptime(dt, '%Y-%m-%d')
date = date.replace(tzinfo=pytz.UTC)
return int(time.mktime(date.timetuple()))
"""
a = ['IP IM Equity', 'IF IM Equity', 'AST IM Equity', 'AMP IM Equity',
'IMA IM Equity', 'MTV IM Equity', 'ELN IM Equity', 'REY IM Equity',
'FKR IM Equity', 'GIMA IM Equity', 'SO IM Equity', 'BSS IM Equity',
'IGD IM Equity', 'DAL IM Equity', 'CEM IM Equity', 'MARR IM Equity',
'PRT IM Equity', 'LD IM Equity', 'TIP IM Equity', 'MN IM Equity',
'PRI IM Equity', 'EIT IM Equity', 'STS IM Equity', 'UNIR IM Equity',
'CAI IM Equity']
"""
# ------------ new intalian basket tickers --------------- #
dataServer = {
"FKR IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/FKR IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/{endStr}/EUR"}},
"MTV IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/MTV IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/{endStr}/EUR"}},
"SO IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/SO IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/{endStr}/EUR"}},
"PRT IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/PRT IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/{endStr}/EUR"}},
"CAI IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/CAI IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/{endStr}/EUR"}},
"BST IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/BST IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/{endStr}/EUR"}},
"AST IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/AST IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/{endStr}/EUR"}},
"IGD IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/IGD IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/{endStr}/EUR"}},
"MN IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/MN IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/{endStr}/EUR"}},
"TIP IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/TIP IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/{endStr}/EUR"}},
"RM IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/RM IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/{endStr}/EUR"}},
"LR IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/LR IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/{endStr}/EUR"}},
"DIB IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/DIB IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/{endStr}/EUR"}},
"DIS IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/DIS IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/{endStr}/EUR"}},
"AMP IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/AMP IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/{endStr}/EUR"}},
"GIMA IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/GIMA IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/{endStr}/EUR"}},
"UNIR IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/UNIR IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/{endStr}/EUR"}},
"ELN IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/ELN IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/{endStr}/EUR"}},
"ELC IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/ELC IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/{endStr}/EUR"}},
"IP IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/IP IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/{endStr}/EUR"}},
"LD IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/LD IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/{endStr}/EUR"}},
"XPR IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/XPR IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/{endStr}/EUR"}},
"IF IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/IF IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/{endStr}/EUR"}},
"DEA IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/DEA IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/{endStr}/EUR"}},
"ASC IM Equity":{"GET":{"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/ASC IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514419200/{endStr}/EUR"}}
}
ds = {
"FKR IM Equity":{
"GET":{
"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/FKR IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514246400/1530662400/EUR"
}
},
"MTV IM Equity":{
"GET":{
"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/MTV IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514246400/1530662400/EUR"
}
},
"SO IM Equity":{
"GET":{
"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/SO IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514246400/1530662400/EUR"
}
},
"PRT IM Equity":{
"GET":{
"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/PRT IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514246400/1530662400/EUR"
}
},
"CAI IM Equity":{
"GET":{
"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/CAI IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514246400/1530662400/EUR"
}
},
"BST IM Equity":{
"GET":{
"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/BST IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514246400/1530662400/EUR"
}
},
"AST IM Equity":{
"GET":{
"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/AST IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514246400/1530662400/EUR"
}
},
"IGD IM Equity":{
"GET":{
"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/IGD IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514246400/1530662400/EUR"
}
},
"MN IM Equity":{
"GET":{
"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/MN IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514246400/1530662400/EUR"
}
},
"TIP IM Equity":{
"GET":{
"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/TIP IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514246400/1530662400/EUR"
}
},
"REY IM Equity":{
"GET":{
"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/REY IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514246400/1530662400/EUR"
}
},
"LR IM Equity":{
"GET":{
"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/LR IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514246400/1530662400/EUR"
}
},
"DIB IM Equity":{
"GET":{
"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/DIB IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514246400/1530662400/EUR"
}
},
"IMA IM Equity":{
"GET":{
"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/IMA IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514246400/1530662400/EUR"
}
},
"AMP IM Equity":{
"GET":{
"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/AMP IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514246400/1530662400/EUR"
}
},
"GIMA IM Equity":{
"GET":{
"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/GIMA IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514246400/1530662400/EUR"
}
},
"UNIR IM Equity":{
"GET":{
"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/UNIR IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514246400/1530662400/EUR"
}
},
"ELN IM Equity":{
"GET":{
"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/ELN IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514246400/1530662400/EUR"
}
},
"ELC IM Equity":{
"GET":{
"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/ELC IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514246400/1530662400/EUR"
}
},
"IP IM Equity":{
"GET":{
"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/IP IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514246400/1530662400/EUR"
}
},
"LD IM Equity":{
"GET":{
"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/LD IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514246400/1530662400/EUR"
}
},
"BSS IM Equity":{
"GET":{
"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/BSS IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514246400/1530662400/EUR"
}
},
"IF IM Equity":{
"GET":{
"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/IF IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514246400/1530662400/EUR"
}
},
"PRI IM Equity":{
"GET":{
"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/PRI IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514246400/1530662400/EUR"
}
},
"GE IM Equity":{
"GET":{
"url":"http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/GE IM Equity/TOT_RETURN_INDEX_NET_DVDS/1514246400/1530662400/EUR"
}
}
}
a = list(dataServer.keys())
tickers = { "IB_tick_AMP": 18.84,
"IB_tick_AST": 1.878,
"IB_tick_BSS": 32.3,
"IB_tick_BST": 2.06,
"IB_tick_CAI": 3.28,
"IB_tick_DIB": 9.61,
"IB_tick_ELC": 2.14,
"IB_tick_ELN": 28.7,
"IB_tick_FKR": 2.24,
"IB_tick_GE": 7.46,
"IB_tick_GIMA": 13.07,
"IB_tick_IF": 22.56,
"IB_tick_IGD": 6.921,
"IB_tick_IMA": 72.75,
"IB_tick_IP": 27.18,
"IB_tick_LD": 10.16,
"IB_tick_LR": 1.396,
"IB_tick_MN": 1.46,
"IB_tick_MTV": 4.15,
"IB_tick_PRI": 31.75,
"IB_tick_PRT": 3.79,
"IB_tick_REY": 57.25,
"IB_tick_SO": 2.088,
"IB_tick_TIP": 6.31,
"IB_tick_UNIR": 11.34}
tickers = ['%s IM Equity' % k.split('_')[-1] for k in tickers.keys()]
print(tickers)
print('----- Italian basket ticker list: ')
newTicker = list(ds.keys())
print('----- New Ticker: ')
print(newTicker)
# tickers = newTicker
a = newTicker
print('----- ', set(a) == set(tickers))
# ----------- Intalian Basket tickers Done ------------- #
a = ['LDO IM Equity', 'UCG IM Equity', 'ISP IM Equity']
a = ['AAPL US Equity', 'AMZN US Equity']
cef = {
"BFZ US Equity": 0.1,
"BNY US Equity": 0.1,
"CEV US Equity": 0.1,
"EVM US Equity": 0.1,
"IEF US Equity": -0.7362570731796376,
"JRI US Equity": 0.1,
"LQD US Equity": -0.7233316214456829,
"MVT US Equity": 0.1,
"NKG US Equity": 0.1,
"NKX US Equity": 0.1,
"NMT US Equity": 0.1,
"NRK US Equity": 0.1,
}
cefNew = {
"NRK US Equity": 0.1,
"JRS US Equity": 0.1,
"MYJ US Equity": 0.1,
"EVM US Equity": 0.1,
"CEV US Equity": 0.1,
"NKX US Equity": 0.1,
"BFZ US Equity": 0.1,
"MVT US Equity": 0.1,
"BNY US Equity": 0.1,
"NKG US Equity": 0.1,
"IEF US Equity": -0.9774592071035839,
"LQD US Equity": -0.5341753659773385
}
# a = list(cef.keys())
a = list(cefNew.keys())
# a = ['CB CQISCEFT Index']
lis = ''
for i in a:
lis += i
lis += ','
print(a)
print(lis)
filename = 'CEF_New_Weights_data'
startdate = '2018-08-28'
enddate = '2018-08-30'
currency = 'USD'
field = 'PX_LAST'
# field = 'PX_LAST'
# field = 'CUR_MKT_CAP'
In [44]:
start = datetimeToUnix(startdate)
end = datetimeToUnix(enddate)
print(start)
print(end)
# start = 1363046400
# end = 1523538414
url = "http://192.168.5.9:9997/data/bbg/getAssetsHistoryStartEnd/[%s]/[%s]/%s/%s/%s" % (lis[:-1], field, start, end, currency)
print(url)
res = requests.get(url)
data = res.json()
df = pd.DataFrame()
for k, value in data.items():
_ = pd.DataFrame.from_dict(value)[field]
df[k] = _
df.index = pd.to_datetime(df.index, unit='s')
print(df.tail())
df.to_csv('data_%s_%s.csv' % (filename, field))
In [7]:
# 2018-04-24
import json
d = df.loc['2017-12-28']
data = d.to_dict()
ddd = {}
for ticker, price in data.items():
ibt = 'IB_tick_%s' % ticker.split(' ')[0]
ddd[ibt] = price
print('PriceBase: ')
print(json.dumps(ddd))
print('IndexBase: ', 1003.638966)
In [8]:
# Publishing API data (2017-12-28)
currentBasePrices = {
"IB_tick_BST": 2.286,
"IB_tick_IGD": 9.0965,
"IB_tick_LR": 1.58,
"IB_tick_SO": 4.058,
"IB_tick_RM": 0.556,
"IB_tick_IP": 26.56,
"IB_tick_ELN": 26.3,
"IB_tick_ELC": 2.448,
"IB_tick_TIP": 5.58,
"IB_tick_AMP": 13.1,
"IB_tick_DIS": 0.2618,
"IB_tick_CAI": 3.764,
"IB_tick_ASC": 3.602,
"IB_tick_XPR": 1.527,
"IB_tick_DIB": 10.86,
"IB_tick_FKR": 2.072,
"IB_tick_GIMA": 16.59,
"IB_tick_LD": 16.39,
"IB_tick_PRT": 4.188,
"IB_tick_AST": 2.088,
"IB_tick_UNIR": 14.3,
"IB_tick_DEA": 1.37,
"IB_tick_MTV": 6.545,
"IB_tick_IF": 41.5,
"IB_tick_MN": 2.162
}
for ticker, price in d.to_dict().items():
ib_ticker = 'IB_tick_%s' % ticker.split(' ')[0]
publishPrice = currentBasePrices[ib_ticker]
if round(publishPrice - price, 4) != 0.0:
raise
print('prices checked!')
In [9]:
a = {
"IB_tick_FKR": 2.12211164,
"IB_tick_MTV": 6.38,
"IB_tick_SO": 4.01,
"IB_tick_PRT": 3.9919639764,
"IB_tick_CAI": 3.6120657182,
"IB_tick_BST": 2.1843024302,
"IB_tick_AST": 2.12,
"IB_tick_IGD": 8.9617,
"IB_tick_MN": 2.082,
"IB_tick_TIP": 5.555,
"IB_tick_RM": 0.503611457,
"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": 39.5337547004,
"IB_tick_DEA": 1.349,
"IB_tick_ASC": 3.3651628161
}
print(json.dumps(a))
In [10]:
import copy
# Get right last prices at 2018-05-18
last = df.loc['2018-05-18']
last = last.to_json()
# Get right last total return index at 2018-05-18
last = df.loc['2018-05-18']
last = last.to_json()
# Get right adjusted base price at 2017-12-28
print('----- Last Price: ')
lastPrices = {"GIMA IM Equity":15.33,"SO IM Equity":3.106,"MTV IM Equity":4.55,"IGD IM Equity":7.449,"XPR IM Equity":1.362,"ELC IM Equity":2.35,"BST IM Equity":2.015,"FKR IM Equity":2.165,"AST IM Equity":2.37,"UNIR IM Equity":14.64,"TIP IM Equity":6.06,"LR IM Equity":1.466,"DEA IM Equity":1.548,"CAI IM Equity":3.245,"ASC IM Equity":3.115,"PRT IM Equity":4.155,"DIB IM Equity":9.76,"IF IM Equity":28.78,"LD IM Equity":11.1,"ELN IM Equity":30.08,"MN IM Equity":1.378,"DIS IM Equity":0.1958,"IP IM Equity":28.1,"AMP IM Equity":15.78,"RM IM Equity":0.788}
print('----- Total return Price: ')
totalReturnLast = {"GIMA IM Equity":15.33,"SO IM Equity":3.106,"MTV IM Equity":4.55,"IGD IM Equity":7.449,"XPR IM Equity":1.362,"ELC IM Equity":2.35,"BST IM Equity":2.0922,"FKR IM Equity":2.2138,"AST IM Equity":2.37,"UNIR IM Equity":14.64,"TIP IM Equity":6.06,"LR IM Equity":1.466,"DEA IM Equity":1.548,"CAI IM Equity":3.3329,"ASC IM Equity":3.2824,"PRT IM Equity":4.2841,"DIB IM Equity":9.76,"IF IM Equity":29.6799,"LD IM Equity":11.1,"ELN IM Equity":30.08,"MN IM Equity":1.378,"DIS IM Equity":0.1958,"IP IM Equity":28.1,"AMP IM Equity":15.78,"RM IM Equity":0.791}
print(totalReturnLast)
print('----- Original base Price: ')
basePrice = {"GIMA IM Equity":16.59,"SO IM Equity":4.058,"MTV IM Equity":6.545,"IGD IM Equity":9.0965,"XPR IM Equity":1.527,"ELC IM Equity":2.448,"BST IM Equity":2.286,"FKR IM Equity":2.072,"AST IM Equity":2.088,"UNIR IM Equity":14.3,"TIP IM Equity":5.58,"LR IM Equity":1.58,"DEA IM Equity":1.37,"CAI IM Equity":3.764,"ASC IM Equity":3.602,"PRT IM Equity":4.188,"DIB IM Equity":10.86,"IF IM Equity":41.5,"LD IM Equity":16.39,"ELN IM Equity":26.3,"MN IM Equity":2.162,"DIS IM Equity":0.2618,"IP IM Equity":26.56,"AMP IM Equity":13.1,"RM IM Equity":0.556}
# Update the Intalian Basket json file
def _getAdjustedLastPrice(lastPrices: dict, currentClosePrices: dict, bbgTotalReturnIndexs: dict) -> dict:
"""
:param lastPrices: base price to calculate return.
:param currentClosePrices: PX_LAST for current trading day.
:param bbgTotalReturnIndexs: with IB ticker!!!
:return: with IB ticker!!!
"""
res = {}
for ticker, lastPrice in lastPrices.items():
currentClosePrice = currentClosePrices[ticker]
bbgTotalReturnIndex = bbgTotalReturnIndexs[ticker]
res[ticker] = round(currentClosePrice * lastPrice / bbgTotalReturnIndex, 10)
return res
print('------- Adjusted base prices')
adjustedBasePrices = _getAdjustedLastPrice(basePrice, lastPrices, totalReturnLast)
# print(adjustedBasePrices)
for ticker, item in adjustedBasePrices.items():
# print(ticker, item == basePrice[ticker])
# print(lastPrices[ticker]/item)
# print(totalReturnLast[ticker]/basePrice[ticker])
if not round((lastPrices[ticker]/item), 8) == round(totalReturnLast[ticker]/basePrice[ticker], 8):
print(ticker, 'test NOT passed!')
def _changeBbgTickerToIb(bbgPrices: dict) -> dict:
"""
IP IM Equity ---> IB_tick_IP
:param bbgPrices:
:return:
"""
res = {}
for bbgTicker, value in bbgPrices.items(): # type: str
symbol, _, _ = bbgTicker.split(' ')
ticker = 'IB_tick_%s' % symbol
res[ticker] = value
return res
print('\npersistLastPrices: ')
persistLastPrices = _changeBbgTickerToIb(basePrice)
print(json.dumps(persistLastPrices))
print('\ncurrentTickPrice:')
currentTickPrice = _changeBbgTickerToIb(lastPrices)
print(json.dumps(currentTickPrice))
print('\nlastPrices: ')
lastAdjPrices = _changeBbgTickerToIb(adjustedBasePrices)
print(json.dumps(lastAdjPrices))
print('\nTotal reuturn prices: ')
print(_changeBbgTickerToIb(basePrice))
# Launch the live publish
# done.
# Test form Restlet
# done.
In [11]:
# download data to test blending function
tickers = ["SPY", "IWM", "EFA", ]
In [ ]: