const api_url = "https://buena-sphere.s3.us-west-1.amazonaws.com/red-api.json"; const apiUrlQuickFacts = "https://buena-sphere.s3.us-west-1.amazonaws.com/sphere-bofa.json" const apiUrlQuickFacts1 = "https://buena-sphere.s3.us-west-1.amazonaws.com/sphere-bofa-summary.json" const user = "sphere"; const password = "g@M9APa8ftST"; const baseUrl = "https://api.bitadata.com/v1"; const baseUrlConstituents = "https://api.bitadata.com/v2"; const indexId = "SPFFXI"; var newToken; var yGreenDiff = []; var yRedDiff = []; var dailyVal = []; var valRedClose = []; var valGreenClose = []; var redAnnualizedVol = []; var greenAnnualizedVol = []; var rRRatioRedList = []; var rRRatioGreenList = []; var annualizedGreenReturns = []; var annualizedRedReturns = []; var graphRedBigListXAxis = []; var graphRedBigListVal = []; var threeMonthRedXAxis = []; var threeMonthRedVal = []; var oneYearRedXAxis = []; var oneYearRedVal = []; var threeYearRedXAxis = []; var threeYearRedVal = []; var fiveYearRedXAxis = []; var fiveYearRedVal = []; var tenYearRedXAxis = []; var tenYearRedVal = []; var allYearRedXAxis = []; var allYearRedVal = []; var graphGreenBigListXAxis = []; var graphGreenBigListVal = []; var threeMonthGreenXAxis = []; var threeMonthGreenVal = []; var oneYearGreenXAxis = []; var oneYearGreenVal = []; var threeYearGreenXAxis = []; var threeYearGreenVal = []; var fiveYearGreenXAxis = []; var fiveYearGreenVal = []; var tenYearGreenXAxis = []; var tenYearGreenVal = []; var allYearGreenXAxis = []; var allYearGreenVal = []; var data = []; var data1 = []; let counterGraph = 0; var counterAnnualized = 0; //// RAM PAGE xGreenUSBank = []; yGreenUSBank = []; xRedUSBank =[]; yRedUSBank =[]; xThreeMonthRedUSBank = []; yThreeMonthRedUSBank = []; xThreeMonthGreenUSBank = []; yThreeMonthGreenUSBank = []; // 6 Month New xSixNewMonthRedUSBank = []; ySixNewMonthRedUSBank = []; xSixNewMonthGreenUSBank = []; ySixNewMonthGreenUSBank = []; xOneYearRedUSBank = []; yOneYearRedUSBank = []; xOneYearGreenUSBank = []; yOneYearGreenUSBank = []; xThreeYearRedUSBank = []; yThreeYearRedUSBank = []; xThreeYearGreenUSBank = []; yThreeYearGreenUSBank = []; xFiveYearRedUSBank = []; yFiveYearRedUSBank = []; xFiveYearGreenUSBank = []; yFiveYearGreenUSBank = []; xTenYearRedUSBank = []; yTenYearRedUSBank = []; xTenYearGreenUSBank = []; yTenYearGreenUSBank = []; xYearToDateRedUSBank = []; yYearToDateRedUSBank = []; xYearToDateGreenUSBank = []; yYearToDateGreenUSBank = []; xAllYearRedUSBank = []; yAllYearRedUSBank = []; xAllYearGreenUSBank = []; yAllYearGreenUSBank = []; standardizedReturnRedUSBank = []; standardizedReturnGreenUSBank = []; annualizedReturnsRedUSBank = []; annualizedReturnsGreenUSBank = []; standardizedReturnAnnualizedGreenUSBank = [] standardizedReturnAnnualizedRedUSBank = [] xRedAnnRetUSBank = [] yRedAnnRetUSBank = [] xGreenAnnRetUSBank = [] yGreenAnnRetUSBank = [] let counterUSBankGrph = 0; apiAuth(); quickFactsTable(); function apiAuth(){ fetch(baseUrl + '/login/', { method: 'POST', body: JSON.stringify({ "user": user, "password": password }), headers: { "Content-Type": "application/json" } }).then(function (response) { if (response.ok) { return response.json(); } return Promise.reject(response); }).then(function (data) { newToken = data["token"]; fetchOneYearUSBankHistoricalData(); fetchIndexComponentDate(newToken) }).catch(function (error) { console.warn('Something went wrong.', error); }); } // Method to fix initial Date of the lines issue function fixInitialDate(xRed, xGreen, yGreen){ var initialRedDate = xRed[xRed.length-1] console.log(xRed[xRed.length-1]) //console.log(xGreen[xGreen.length-1]) var i=0; for(; i<=xRed.length-1; i++){ if(initialRedDate == xGreen[i]){ //console.log("i:", i) break; } } xGreen = xGreen.slice(0,i+1); yGreen = yGreen.slice(0,i+1); return {xGreen, yGreen} } // formatting date function formatDateGraph(DateList) { //console.log("User Date : ", DateList); let ddl = new Array(); DateList.forEach(key => { var months = [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ]; var partyArray = key.split("-"); // console.log(partyArray[0], partyArray[1], partyArray[2]); partyArray[2] = partyArray[2].toString(); // DD partyArray[1] = partyArray[1].toString(); // MM partyArray[0] = partyArray[0].toString(); // YYYY // if(partyArray[1].length == 1) partyArray[1] = '0' + partyArray[1] // if(partyArray[0].length == 1) partyArray[0] = '0' + partyArray[0] // console.log(partyArray[0], partyArray[1], partyArray[2]); // var newUserDate = new Date(partyArray[2], partyArray[1], partyArray[0]); // console.log("New User Date : ", newUserDate); // y = newUserDate.getFullYear().toString(); y = partyArray[0].toString(); // console.log("Year : ", y); // console.log(partyArray[1]) // m = (newUserDate.getMonth()).toString(); m = partyArray[1].toString(); // console.log("Month : ", m); // d = newUserDate.getDate().toString(); d = partyArray[2].toString(); // console.log("Day : ", d); if(m.length == 1) m = '0' + m; if(d.length == 1) d = '0' + d; // console.log("MM/DD/YYYY : ", m, "/", d, "/", y); var selectedMonthName = months[parseInt(m)-1]; ddl.push(selectedMonthName+' '+d+', '+y); }); return ddl; } // Three Months Plot async function fetchThreeMonthsUSBankHistoricalData(){ var returnedData = fixInitialDate(xThreeMonthRedUSBank, xThreeMonthGreenUSBank, yThreeMonthGreenUSBank) xThreeMonthGreenUSBank = returnedData.xGreen yThreeMonthGreenUSBank = returnedData.yGreen yThreeMonthGreenUSBank[yThreeMonthGreenUSBank.length-1] = '10000' console.log(xThreeMonthRedUSBank, yThreeMonthRedUSBank) console.log(xThreeMonthGreenUSBank, yThreeMonthGreenUSBank) var trace1 = { x:xThreeMonthRedUSBank, y:yThreeMonthRedUSBank, mode: 'lines', type: 'scatter', line: {color: '#CF87E6', width: '3'}, name : 'SPDR S&P 500 ETF (SPY ETF)', text: formatDateGraph(xThreeMonthRedUSBank), //fill: 'tonexty' } var trace2 = { x:xThreeMonthGreenUSBank, y:yThreeMonthGreenUSBank, mode: 'lines', type: 'scatter', line: {color: '#F1A83E', width: '3'}, name: 'Sphere 500 Fossil-Free Index (SPPFXI)', text: formatDateGraph(xThreeMonthGreenUSBank), //fill: 'tonexty' } var layout = { autosize: true, // set autosize to rescale height: 500, showlegend: false, margin: { l: 0, r: 50, b: 0, t: 0, pad: 0 }, //paper_bgcolor: '#000000', //plot_bgcolor: '#000000', xaxis: { fixedrange: true, showgrid: false, //tickcolor: '#fff', //color: '#fff', rangeslider: { }, type: 'date', side:'right' }, yaxis: { fixedrange: true, showgrid: true, color: '#fff', autorange: true, range: [86.8700008333, 138.870004167], type: 'linear', side:'right', tickformat: "$,.0f", gridcolor: '#bdbdbd' } }; const config = { displayModeBar: false, // this is the line that hides the bar. }; var myDiv = document.getElementById('myDivUSBank'); Plotly.newPlot(myDiv, [trace1, trace2], layout, config); // Plotly.newPlot(myDiv, [trace1, trace2]); } // Six Month New Plot async function fetchSixNewMonthsUSBankHistoricalData(){ var returnedData = fixInitialDate(xSixNewMonthRedUSBank, xSixNewMonthGreenUSBank, ySixNewMonthGreenUSBank) xSixNewMonthGreenUSBank = returnedData.xGreen ySixNewMonthGreenUSBank = returnedData.yGreen ySixNewMonthGreenUSBank[ySixNewMonthGreenUSBank.length-1] = '10000' console.log(xSixNewMonthRedUSBank, ySixNewMonthRedUSBank) console.log(xSixNewMonthGreenUSBank, ySixNewMonthGreenUSBank) var trace1 = { x:xSixNewMonthRedUSBank, y:ySixNewMonthRedUSBank, mode: 'lines', type: 'scatter', line: {color: '#CF87E6', width: '3'}, name : 'SPDR S&P 500 ETF (SPY ETF)', text: formatDateGraph(xSixNewMonthRedUSBank), //fill: 'tonexty' } var trace2 = { x:xSixNewMonthGreenUSBank, y:ySixNewMonthGreenUSBank, mode: 'lines', type: 'scatter', line: {color: '#F1A83E', width: '3'}, name: 'Sphere 500 Fossil-Free Index (SPPFXI)', text: formatDateGraph(xSixNewMonthGreenUSBank), //fill: 'tonexty' } var layout = { autosize: true, // set autosize to rescale height: 500, showlegend: false, margin: { l: 0, r: 50, b: 0, t: 0, pad: 0 }, //paper_bgcolor: '#000000', //plot_bgcolor: '#000000', xaxis: { fixedrange: true, showgrid: false, //tickcolor: '#fff', //color: '#fff', rangeslider: { }, type: 'date', side:'right' }, yaxis: { fixedrange: true, showgrid: true, color: '#fff', autorange: true, range: [86.8700008333, 138.870004167], type: 'linear', side:'right', tickformat: "$,.0f", gridcolor: '#bdbdbd' } }; const config = { displayModeBar: false, // this is the line that hides the bar. }; var myDiv = document.getElementById('myDivUSBank'); Plotly.newPlot(myDiv, [trace1, trace2], layout, config); // Plotly.newPlot(myDiv, [trace1, trace2]); } // One Year Plot async function fetchOneYearUSBankHistoricalData(){ if(counterUSBankGrph == 0){ await fetchGreenUSBankData() await fetchRedUSBankData() tablePlotUSBankData() } var returnedData = fixInitialDate(xOneYearRedUSBank, xOneYearGreenUSBank, yOneYearGreenUSBank) xOneYearGreenUSBank = returnedData.xGreen yOneYearGreenUSBank = returnedData.yGreen var trace1 = { x:xOneYearRedUSBank, y:yOneYearRedUSBank, mode: 'lines', type: 'scatter', line: {color: '#CF87E6', width: '3'}, name : 'SPDR S&P 500 ETF (SPY ETF)', text: formatDateGraph(xOneYearRedUSBank), //fill: 'tonexty' } var trace2 = { x:xOneYearGreenUSBank, y:yOneYearGreenUSBank, mode: 'lines', type: 'scatter', line: {color: '#F1A83E', width: '3'}, name: 'Sphere 500 Fossil-Free Index (SPPFXI)', text: formatDateGraph(xOneYearGreenUSBank), //fill: 'tonexty' } var layout = { autosize: true, // set autosize to rescale height: 500, showlegend: false, margin: { l: 0, r: 50, b: 0, t: 0, pad: 0 }, //paper_bgcolor: '#000000', //plot_bgcolor: '#000000', xaxis: { fixedrange: true, showgrid: false, //tickcolor: '#fff', //color: '#fff', rangeslider: { }, type: 'date', side:'right' }, yaxis: { fixedrange: true, showgrid: true, color: '#fff', autorange: true, range: [86.8700008333, 138.870004167], type: 'linear', side:'right', tickformat: "$,.0f", gridcolor: '#bdbdbd' } }; const config = { displayModeBar: false, // this is the line that hides the bar. }; var myDiv = document.getElementById('myDivUSBank'); Plotly.newPlot(myDiv, [trace1, trace2], layout, config); // Plotly.newPlot(myDiv, [trace1, trace2]); } // Three Year Plot async function fetchThreeYearUSBankHistoricalData(){ var returnedData = fixInitialDate(xThreeYearRedUSBank, xThreeYearGreenUSBank, yThreeYearGreenUSBank) xThreeYearGreenUSBank = returnedData.xGreen yThreeYearGreenUSBank = returnedData.yGreen var trace1 = { x:xThreeYearRedUSBank, y:yThreeYearRedUSBank, mode: 'lines', type: 'scatter', line: {color: '#CF87E6', width: '3'}, name : 'SPDR S&P 500 ETF (SPY ETF)', text: formatDateGraph(xThreeYearRedUSBank), //fill: 'tonexty' } var trace2 = { x:xThreeYearGreenUSBank, y:yThreeYearGreenUSBank, mode: 'lines', type: 'scatter', line: {color: '#F1A83E', width: '3'}, name: 'Sphere 500 Fossil-Free Index (SPPFXI)', text: formatDateGraph(xThreeYearGreenUSBank), //fill: 'tonexty' } var layout = { autosize: true, // set autosize to rescale height: 500, showlegend: false, margin: { l: 0, r: 50, b: 0, t: 0, pad: 0 }, //paper_bgcolor: '#000000', //plot_bgcolor: '#000000', xaxis: { fixedrange: true, showgrid: false, //tickcolor: '#fff', //color: '#fff', rangeslider: { }, type: 'date', side:'right' }, yaxis: { fixedrange: true, showgrid: true, color: '#fff', autorange: true, range: [86.8700008333, 138.870004167], type: 'linear', side:'right', tickformat: "$,.0f", gridcolor: '#bdbdbd' } }; const config = { displayModeBar: false, // this is the line that hides the bar. }; var myDiv = document.getElementById('myDivUSBank'); Plotly.newPlot(myDiv, [trace1, trace2], layout, config); // Plotly.newPlot(myDiv, [trace1, trace2]); } // Five Year Plot async function fetchFiveYearUSBankHistoricalData(){ var returnedData = fixInitialDate(xFiveYearRedUSBank, xFiveYearGreenUSBank, yFiveYearGreenUSBank) xFiveYearGreenUSBank = returnedData.xGreen yFiveYearGreenUSBank = returnedData.yGreen var trace1 = { x:xFiveYearRedUSBank, y:yFiveYearRedUSBank, mode: 'lines', type: 'scatter', line: {color: '#CF87E6', width: '3'}, name : 'SPDR S&P 500 ETF (SPY ETF)', text: formatDateGraph(xFiveYearRedUSBank), //fill: 'tonexty' } var trace2 = { x:xFiveYearGreenUSBank, y:yFiveYearGreenUSBank, mode: 'lines', type: 'scatter', line: {color: '#F1A83E', width: '3'}, name: 'Sphere 500 Fossil-Free Index (SPPFXI)', text: formatDateGraph(xFiveYearGreenUSBank), //fill: 'tonexty' } var layout = { autosize: true, // set autosize to rescale height: 500, showlegend: false, margin: { l: 0, r: 50, b: 0, t: 0, pad: 0 }, //paper_bgcolor: '#000000', //plot_bgcolor: '#000000', xaxis: { fixedrange: true, showgrid: false, //tickcolor: '#fff', //color: '#fff', rangeslider: { }, type: 'date', side:'right' }, yaxis: { fixedrange: true, showgrid: true, color: '#fff', autorange: true, range: [86.8700008333, 138.870004167], type: 'linear', side:'right', tickformat: "$,.0f", gridcolor: '#bdbdbd' } }; const config = { displayModeBar: false, // this is the line that hides the bar. }; var myDiv = document.getElementById('myDivUSBank'); Plotly.newPlot(myDiv, [trace1, trace2], layout, config); // Plotly.newPlot(myDiv, [trace1, trace2]); } // Ten Year Plot async function fetchTenYearUSBankHistoricalData(){ var returnedData = fixInitialDate(xTenYearRedUSBank, xTenYearGreenUSBank, yTenYearGreenUSBank) xTenYearGreenUSBank = returnedData.xGreen yTenYearGreenUSBank = returnedData.yGreen var trace1 = { x:xTenYearRedUSBank, y:yTenYearRedUSBank, mode: 'lines', type: 'scatter', line: {color: '#CF87E6', width: '3'}, name : 'SPDR S&P 500 ETF (SPY ETF)', text: formatDateGraph(xTenYearRedUSBank), //fill: 'tonexty' } var trace2 = { x:xTenYearGreenUSBank, y:yTenYearGreenUSBank, mode: 'lines', type: 'scatter', line: {color: '#F1A83E', width: '3'}, name: 'Sphere 500 Fossil-Free Index (SPPFXI)', text: formatDateGraph(xTenYearGreenUSBank), //fill: 'tonexty' } var layout = { autosize: true, // set autosize to rescale height: 500, showlegend: false, margin: { l: 0, r: 50, b: 0, t: 0, pad: 0 }, //paper_bgcolor: '#000000', //plot_bgcolor: '#000000', xaxis: { fixedrange: true, showgrid: false, //tickcolor: '#fff', //color: '#fff', rangeslider: { }, type: 'date', side:'right' }, yaxis: { fixedrange: true, showgrid: true, color: '#fff', autorange: true, range: [86.8700008333, 138.870004167], type: 'linear', side:'right', tickformat: "$,.0f", gridcolor: '#bdbdbd' } }; const config = { displayModeBar: false, // this is the line that hides the bar. }; var myDiv = document.getElementById('myDivUSBank'); Plotly.newPlot(myDiv, [trace1, trace2], layout, config); // Plotly.newPlot(myDiv, [trace1, trace2]); } // Year to Date Plot async function fetchYearToDateUSBankHistoricalData(){ var returnedData = fixInitialDate(xYearToDateRedUSBank, xYearToDateGreenUSBank, yYearToDateGreenUSBank) xYearToDateGreenUSBank = returnedData.xGreen yYearToDateGreenUSBank = returnedData.yGreen yYearToDateGreenUSBank[yYearToDateGreenUSBank.length-1] = '10000' var trace1 = { x:xYearToDateRedUSBank, y:yYearToDateRedUSBank, mode: 'lines', type: 'scatter', line: {color: '#CF87E6', width: '3'}, name : 'SPDR S&P 500 ETF (SPY ETF)', text: formatDateGraph(xYearToDateRedUSBank), //fill: 'tonexty' } var trace2 = { x:xYearToDateGreenUSBank, y:yYearToDateGreenUSBank, mode: 'lines', type: 'scatter', line: {color: '#F1A83E', width: '3'}, name: 'Sphere 500 Fossil-Free Index (SPPFXI)', text: formatDateGraph(xYearToDateGreenUSBank), //fill: 'tonexty' } var layout = { autosize: true, // set autosize to rescale height: 500, showlegend: false, margin: { l: 0, r: 50, b: 0, t: 0, pad: 0 }, //paper_bgcolor: '#000000', //plot_bgcolor: '#000000', xaxis: { fixedrange: true, showgrid: false, //tickcolor: '#fff', //color: '#fff', rangeslider: { }, type: 'date', side:'right' }, yaxis: { fixedrange: true, showgrid: true, color: '#fff', autorange: true, range: [86.8700008333, 138.870004167], type: 'linear', side:'right', tickformat: "$,.0f", gridcolor: '#bdbdbd' } }; const config = { displayModeBar: false, // this is the line that hides the bar. }; var myDiv = document.getElementById('myDivUSBank'); Plotly.newPlot(myDiv, [trace1, trace2], layout, config); // Plotly.newPlot(myDiv, [trace1, trace2]); } // All Year Plot async function fetchAllYearUSBankHistoricalData(){ console.log(xAllYearRedUSBank) var returnedData = fixInitialDate(xAllYearRedUSBank, xAllYearGreenUSBank, yAllYearGreenUSBank) xAllYearGreenUSBank = returnedData.xGreen yAllYearGreenUSBank = returnedData.yGreen yAllYearGreenUSBank[yAllYearGreenUSBank.length-1] = '10000' if(counterUSBankGrph == 0){ yAllYearRedUSBank = yAllYearRedUSBank.slice(0, yAllYearRedUSBank.length); console.log(yAllYearRedUSBank) yAllYearRedUSBank[yAllYearRedUSBank.length-1] = '10000' console.log(xAllYearRedUSBank, yAllYearRedUSBank) console.log(xAllYearGreenUSBank, yAllYearGreenUSBank) } counterUSBankGrph++; var trace1 = { x:xAllYearRedUSBank, y:yAllYearRedUSBank, mode: 'lines', type: 'scatter', line: {color: '#CF87E6', width: '3'}, name : 'SPDR S&P 500 ETF (SPY ETF)', text: formatDateGraph(xAllYearRedUSBank), //fill: 'tonexty' } var trace2 = { x:xAllYearGreenUSBank, y:yAllYearGreenUSBank, mode: 'lines', type: 'scatter', line: {color: '#F1A83E', width: '3'}, name: 'Sphere 500 Fossil-Free Index (SPPFXI)', text: formatDateGraph(xAllYearGreenUSBank), //fill: 'tonexty' } var layout = { autosize: true, // set autosize to rescale height: 500, showlegend: false, margin: { l: 0, r: 50, b: 0, t: 0, pad: 0 }, //paper_bgcolor: '#000000', //plot_bgcolor: '#000000', xaxis: { fixedrange: true, showgrid: false, //tickcolor: '#fff', //color: '#fff', rangeslider: { }, type: 'date', side:'right' }, yaxis: { fixedrange: true, showgrid: true, color: '#fff', autorange: true, range: [86.8700008333, 138.870004167], type: 'linear', side:'right', tickformat: "$,.0f", gridcolor: '#bdbdbd' } }; const config = { displayModeBar: false, // this is the line that hides the bar. }; var myDiv = document.getElementById('myDivUSBank'); Plotly.newPlot(myDiv, [trace1, trace2], layout, config); // Plotly.newPlot(myDiv, [trace1, trace2]); } function tablePlotUSBankData(){ console.log(xRedUSBank, yRedUSBank) console.log(xGreenUSBank, yGreenUSBank) // Three Months xThreeMonthRedUSBank = xRedUSBank.slice(0,63) yThreeMonthRedUSBank = yRedUSBank.slice(0,63) xThreeMonthGreenUSBank = xGreenUSBank.slice(0,63) yThreeMonthGreenUSBank = yGreenUSBank.slice(0,63) console.log(xThreeMonthRedUSBank, yThreeMonthRedUSBank) console.log(xThreeMonthGreenUSBank, yThreeMonthGreenUSBank) for(var i=0; i {yThreeMonthGreenUSBank, yThreeMonthRedUSBank} yThreeMonGreenUSBank = yGreenUSBank.slice(0,63) yThreeMonRedUSBank = yRedUSBank.slice(0,63) // 6 Months ySixMonthGreenUSBank = yGreenUSBank.slice(0,126) ySixMonthRedUSBank = yRedUSBank.slice(0,126) // Year to Date -> {yYearToDateGreenUSBank, yYearToDateRedUSBank} yYTDGreenUSBank = [] yYTDRedUSBank = [] for(var i=0; i {yGreenUSBank, yRedUSBank} //console.log(yOneMonthGreenUSBank, yThreeMonGreenUSBank, ySixMonthGreenUSBank, yYTDGreenUSBank, yGreenUSBank) //console.log(xGreenUSBank, yGreenUSBank) // Green Line standardizedReturnGreenUSBank.push(cumulativeReturns(yOneMonthGreenUSBank[0], yOneMonthGreenUSBank[yOneMonthGreenUSBank.length-1])) standardizedReturnGreenUSBank.push(cumulativeReturns(yThreeMonGreenUSBank[0], yThreeMonGreenUSBank[yThreeMonGreenUSBank.length-1])) if(yGreenUSBank.length >= 126){ standardizedReturnGreenUSBank.push(cumulativeReturns(ySixMonthGreenUSBank[0], ySixMonthGreenUSBank[ySixMonthGreenUSBank.length-1])) } if(yGreenUSBank.length < 126){ standardizedReturnGreenUSBank.push("NaN") } standardizedReturnGreenUSBank.push(cumulativeReturns(yYTDGreenUSBank[0], yYTDGreenUSBank[yYTDGreenUSBank.length-1])) standardizedReturnGreenUSBank.push(cumulativeReturns(yGreenUSBank[0], yGreenUSBank[yGreenUSBank.length-1])) //console.log("Green Standardized Returns:"+ standardizedReturnGreenUSBank) // Red Line standardizedReturnRedUSBank.push(cumulativeReturns(yOneMonthRedUSBank[0], yOneMonthRedUSBank[yOneMonthRedUSBank.length-1])) standardizedReturnRedUSBank.push(cumulativeReturns(yThreeMonthRedUSBank[0], yThreeMonthRedUSBank[yThreeMonthRedUSBank.length-1])) standardizedReturnRedUSBank.push(cumulativeReturns(ySixMonthRedUSBank[0], ySixMonthRedUSBank[ySixMonthRedUSBank.length-1])) standardizedReturnRedUSBank.push(cumulativeReturns(yYearToDateRedUSBank[0], yYearToDateRedUSBank[yYearToDateRedUSBank.length-1])) standardizedReturnRedUSBank.push(cumulativeReturns(yRedUSBank[0], yRedUSBank[yRedUSBank.length-1])) //console.log("Red Standardized Returns:"+ standardizedReturnRedUSBank) /* if(standardizedReturnGreenUSBank[0] === 0){ document.getElementById("1monthSRGreen").innerHTML = "NA"; } if(standardizedReturnGreenUSBank[0] !== 0){ document.getElementById("1monthSRGreen").innerHTML = standardizedReturnGreenUSBank[0].toFixed(2)+"%"; } if(standardizedReturnGreenUSBank[1] === 0){ document.getElementById("3monthSRGreen").innerHTML = "NA"; } if(standardizedReturnGreenUSBank[1] !== 0){ document.getElementById("3monthSRGreen").innerHTML = standardizedReturnGreenUSBank[1].toFixed(2)+"%"; } if(isNaN(standardizedReturnGreenUSBank[2])){ document.getElementById("6monthSRGreen").innerHTML = "NA"; } if(!isNaN(standardizedReturnGreenUSBank[2])){ document.getElementById("6monthSRGreen").innerHTML = standardizedReturnGreenUSBank[2].toFixed(2)+"%"; } if(standardizedReturnGreenUSBank[3] === 0){ document.getElementById("YTDSRGreen").innerHTML = "NA"; } if(standardizedReturnGreenUSBank[3] !== 0){ document.getElementById("YTDSRGreen").innerHTML = standardizedReturnGreenUSBank[3].toFixed(2)+"%"; } document.getElementById("allSRGreen").innerHTML = standardizedReturnGreenUSBank[4].toFixed(2)+"%"; if(standardizedReturnRedUSBank[0] === 0){ document.getElementById("1monthSRRed").innerHTML = "NA"; } if(standardizedReturnRedUSBank[0] !== 0){ document.getElementById("1monthSRRed").innerHTML = standardizedReturnRedUSBank[0].toFixed(2)+"%"; } if(standardizedReturnRedUSBank[1] === 0){ document.getElementById("3monthSRRed").innerHTML = "NA"; } if(standardizedReturnRedUSBank[1] !== 0){ document.getElementById("3monthSRRed").innerHTML = standardizedReturnRedUSBank[1].toFixed(2)+"%"; } if(standardizedReturnRedUSBank[2] === 0){ document.getElementById("6monthSRRed").innerHTML = "NA"; } if(standardizedReturnRedUSBank[2] !== 0){ document.getElementById("6monthSRRed").innerHTML = standardizedReturnRedUSBank[2].toFixed(2)+"%"; } if(standardizedReturnRedUSBank[3] === 0){ document.getElementById("YTDSRRed").innerHTML = "NA"; } if(standardizedReturnRedUSBank[3] !== 0){ document.getElementById("YTDSRRed").innerHTML = standardizedReturnRedUSBank[3].toFixed(2)+"%"; } document.getElementById("allSRRed").innerHTML = standardizedReturnRedUSBank[4].toFixed(2)+"%"; */ //// Annualized Returns Segment // Green //console.log(xGreenAnnRetUSBank, yGreenAnnRetUSBank) oneYearGreenAnnRet = yGreenAnnRetUSBank.slice(0, 252) threeYearGreenAnnRet = yGreenAnnRetUSBank.slice(0, 756) fiveYearGreenAnnRet = yGreenAnnRetUSBank.slice(0, 1260) SinceInceptionGreenAnnRet = yGreenUSBank standardizedReturnAnnualizedGreenUSBank.push(cumulativeReturns(oneYearGreenAnnRet[0], oneYearGreenAnnRet[oneYearGreenAnnRet.length-1])) standardizedReturnAnnualizedGreenUSBank.push(cumulativeReturns(threeYearGreenAnnRet[0], threeYearGreenAnnRet[threeYearGreenAnnRet.length-1])) standardizedReturnAnnualizedGreenUSBank.push(cumulativeReturns(fiveYearGreenAnnRet[0], fiveYearGreenAnnRet[fiveYearGreenAnnRet.length-1])) standardizedReturnAnnualizedGreenUSBank.push(cumulativeReturns(SinceInceptionGreenAnnRet[0], SinceInceptionGreenAnnRet[SinceInceptionGreenAnnRet.length-1])) //console.log(yOneYearGreenUSBank, yThreeYearGreenUSBank, yFiveYearGreenUSBank, yAllYearGreenUSBank) // Red //console.log(xRedAnnRetUSBank, yRedAnnRetUSBank) oneYearRedAnnRet = yRedAnnRetUSBank.slice(0, 252) threeYearRedAnnRet = yRedAnnRetUSBank.slice(0, 756) fiveYearRedAnnRet = yRedAnnRetUSBank.slice(0, 1260) SinceInceptionRedAnnRet = yRedUSBank //console.log(oneYearRedAnnRet[0], oneYearRedAnnRet[oneYearRedAnnRet.length-1], threeYearRedAnnRet[threeYearRedAnnRet.length-1], fiveYearRedAnnRet[fiveYearRedAnnRet.length-1], SinceInceptionRedAnnRet[SinceInceptionRedAnnRet.length-1]) standardizedReturnAnnualizedRedUSBank.push(cumulativeReturns(oneYearRedAnnRet[0], oneYearRedAnnRet[oneYearRedAnnRet.length-1])) standardizedReturnAnnualizedRedUSBank.push(cumulativeReturns(threeYearRedAnnRet[0], threeYearRedAnnRet[threeYearRedAnnRet.length-1])) standardizedReturnAnnualizedRedUSBank.push(cumulativeReturns(fiveYearRedAnnRet[0], fiveYearRedAnnRet[fiveYearRedAnnRet.length-1])) standardizedReturnAnnualizedRedUSBank.push(cumulativeReturns(SinceInceptionRedAnnRet[0], SinceInceptionRedAnnRet[SinceInceptionRedAnnRet.length-1])) annualizedReturnsUSBank() } // Cumulative Returns Method function cumulativeReturns(CurrentDateVal, MonthDateVal){ // console.log(redCurrentDateVal, redMonthDateVal) return (((CurrentDateVal - MonthDateVal)/MonthDateVal)*100); // return (((CurrentDateVal/MonthDateVal))*100)-100; } // Annualized Returns US Bank Method function annualizedReturnsUSBank(){ // Stores the year //allDiffN = annualizedVolNValue(); const d1 = new Date(); const d2 = new Date('2021-10-04'); allDiffN = new Date(new Date(d1) - new Date(d2)).getMonth();; //console.log(allDiffN) const d = new Date(); let month = d.getMonth(); var N = [1, 3, 5, allDiffN/12]; //console.log(standardizedReturnAnnualizedGreenUSBank); // console.log(standardizedReturnRedUSBank); for(var i=0; i 0 ? "0%" : x(Math.abs(d[2]));}); tr.select("div.positive").style("background-color", "#f6cb7d") .style("height", "17px").transition().duration(500) .style("width", function(d) { return d[2] > 0 ? x(d[2]) : "0%"; }); } function getMonthDates(currentDate){ var dThreeMonthCurrentDate = new Date(currentDate); var dOneCurrentDate = new Date(currentDate); var dThreeCurrentDate = new Date(currentDate); var dFiveCurrentDate = new Date(currentDate); var dTenCurrentDate = new Date(currentDate); var dThreeMon = new Date(dThreeMonthCurrentDate.setMonth(dThreeMonthCurrentDate.getMonth()-3)); var dOneMonth = new Date(dOneCurrentDate.setMonth(dOneCurrentDate.getMonth()-12)); var dThreeMonth = new Date(dThreeCurrentDate.setMonth(dThreeCurrentDate.getMonth()-36)); var dFiveMonth = new Date(dFiveCurrentDate.setMonth(dFiveCurrentDate.getMonth()-60)); var dTenMonth = new Date(dTenCurrentDate.setMonth(dTenCurrentDate.getMonth()-120)); dThreeMon = fixWeekends(dThreeMon); dOneMonth = fixWeekends(dOneMonth); dThreeMonth = fixWeekends(dThreeMonth); dFiveMonth = fixWeekends(dFiveMonth); dTenMonth = fixWeekends(dTenMonth); var tzoffset = (new Date()).getTimezoneOffset() * 60000; var dThreeMonFormattedDate = (new Date(dThreeMon - tzoffset)).toISOString().slice(0, 10); var dOneMonthFormattedDate = (new Date(dOneMonth - tzoffset)).toISOString().slice(0, 10); var dThreeMonthFormattedDate = (new Date(dThreeMonth - tzoffset)).toISOString().slice(0, 10); var dFiveMonthFormattedDate = (new Date(dFiveMonth - tzoffset)).toISOString().slice(0, 10); var dTenMonthFormattedDate = (new Date(dTenMonth - tzoffset)).toISOString().slice(0, 10); return {dThreeMonFormattedDate, dOneMonthFormattedDate, dThreeMonthFormattedDate, dFiveMonthFormattedDate, dTenMonthFormattedDate}; } function fixWeekends(dDateMonth){ if(dDateMonth.getDay() == 6 || dDateMonth.getDay() == 0){ dDateMonth.setDate(dDateMonth.getDate()-1); } if(dDateMonth.getDay() == 6 || dDateMonth.getDay() == 0) { dDateMonth.setDate(dDateMonth.getDate()-1); } return dDateMonth } function monthReturns(redCurrentDateVal, redMonthDateVal){ return ((redCurrentDateVal/redMonthDateVal))*10000; //return (((redCurrentDateVal-redMonthDateVal)/redMonthDateVal)*100); } function annualizedReturns(){ var allCurYear = new Date().getFullYear(); var allFirstYear = allYearGreenXAxis[allYearGreenXAxis.length-1].substring(0,4); var allDiffN = allCurYear - allFirstYear; var N = [1,3,5,10, allDiffN]; for(var i=0; i0; i--){ greenDailyPercentVal[i] = ((valGreenClose[i]-valGreenClose[i-1])/valGreenClose[i-1])*100; } return {redDailyPercentVal, greenDailyPercentVal} } function getStandardDeviation (array) { const n = array.length const mean = array.reduce((a, b) => a + b) / n return Math.sqrt(array.map(x => Math.pow(x - mean, 2)).reduce((a, b) => a + b) / n) } function riskRewardRatio(){ for(var i=0; i