macroPriceData = {
mutable loadingState = true;
const startDate = "2009-01-01T00:00";
const todayEndAPIDate = new Date().toISOString().slice(0, -8);
const cmiAPIUrl = `https://production.api.coindesk.com/v2/tb/price/values/${ASSETS_SYMBOL.cmi}?start_date=${startDate}&end_date=${todayEndAPIDate}&ohlc=false`;
const cmiAPIResponse = await d3.json(replaceCharsForNoCorsServer(cmiAPIUrl));
const cmiData = cmiAPIResponse.data.entries.map(([date, value]) => ({
date: createNewDateObject(date),
price: value
}));
const goldData = (
await d3.csv(
replaceCharsForNoCorsServer(
`https://query1.finance.yahoo.com/v7/finance/download/GC=F?period1=1127987200&period2=${new Date().getTime()}&interval=1d&events=history`
)
)
).map(({ Date, Close }) => ({
date: createNewDateObject(Date),
price: Close
}));
const tltData = (
await d3.csv(
replaceCharsForNoCorsServer(
`https://query1.finance.yahoo.com/v7/finance/download/TLT?period1=1027987200&period2=${new Date().getTime()}&interval=1d&events=history`
)
)
).map(({ Date, Close }) => ({
date: createNewDateObject(Date),
price: Close
}));
const ftseData = (
await d3.csv(
replaceCharsForNoCorsServer(
`https://query1.finance.yahoo.com/v7/finance/download/^FTSE?period1=1230768000&period2=${new Date().getTime()}&interval=1d&events=history`
)
)
).map(({ Date, Close }) => ({
date: createNewDateObject(Date),
price: Close
}));
const sp500Data = (
await d3.csv(
replaceCharsForNoCorsServer(
"https://fred.stlouisfed.org/graph/fredgraph.csv?id=SP500"
)
)
).map(({ DATE, SP500 }) => ({
date: createNewDateObject(DATE),
price: SP500
}));
const nasdaqData = (
await d3.csv(
replaceCharsForNoCorsServer(
"https://fred.stlouisfed.org/graph/fredgraph.csv?id=NASDAQCOM"
)
)
).map(({ DATE, NASDAQCOM }) => ({
date: createNewDateObject(DATE),
price: NASDAQCOM
}));
const nasdaq100Data = (
await d3.csv(
replaceCharsForNoCorsServer(
"https://fred.stlouisfed.org/graph/fredgraph.csv?id=NASDAQ100"
)
)
).map(({ DATE, NASDAQ100 }) => ({
date: createNewDateObject(DATE),
price: NASDAQ100
}));
/* const silverData = (
await d3.csv(
`${CORS_HEAD}https://fred.stlouisfed.org/graph/fredgraph.csv?id=SLVPRUSD`
)
).map((asset) => {
const { DATE, SLVPRUSD } = asset;
return {
date: createNewDateObject(DATE),
price: SLVPRUSD
};
}); */
const nikkeiData = (
await d3.csv(
replaceCharsForNoCorsServer(
"https://fred.stlouisfed.org/graph/fredgraph.csv?id=NIKKEI225"
)
)
).map(({ DATE, NIKKEI225 }) => ({
date: new Date(DATE),
price: NIKKEI225
}));
// const dfxData = (
// await d3.csv(
// replaceCharsForNoCorsServer(
// "https://tradeblock.com/markets/api/v2.0/aslkjas9/index/dfx/csv"
// )
// )
// ).map(({ ts, price }) => ({
// date: createNewDateObject(ts),
// price: parseFloat(price)
// }));
// const dlcxData = (
// await d3.csv(
// replaceCharsForNoCorsServer(
// "https://tradeblock.com/markets/api/v2.0/aslkjas9/index/dlcx/csv"
// )
// )
// ).map(({ ts, price }) => ({
// date: createNewDateObject(ts),
// price: parseFloat(price)
// }));
const today = formatDateForChart(new Date());
const thirtyDaysReturns = {
cmiReturns: getMacroAssetReturn(cmiData, today),
goldReturns: getMacroAssetReturn(goldData, today),
sp500Returns: getMacroAssetReturn(sp500Data, today),
nasdaqReturns: getMacroAssetReturn(nasdaqData, today),
nasdaq100Returns: getMacroAssetReturn(nasdaq100Data, today),
nikkeiReturns: getMacroAssetReturn(nikkeiData, today),
tltReturns: getMacroAssetReturn(tltData, today),
ftseReturns: getMacroAssetReturn(ftseData, today)
// dfxReturns: getMacroAssetReturn(dfxData, today),
// dlcxReturns: getMacroAssetReturn(dlcxData, today)
};
mutable loadingState = false;
return {
prices: {
cmiData,
goldData,
// silverData, NOT AVAILABLE SINCE 2022-09-28
sp500Data,
nasdaqData,
nasdaq100Data,
nikkeiData,
tltData,
ftseData
// dfxData,
// dlcxData
},
thirtyDaysReturns
};
}