/** * az_get * fetch nav from avanza and fetch sma */ function az_get( id, ma, period ) { // parmas id = id || false; ma = ma || 10; period = period ? period.toLowerCase() : 'month'; // debug // id = 1002994; // OMXSGI // checks if(!id) return 'Inget id definierat'; if (['minute', 'hour', 'day', 'week', 'month'].indexOf( period ) < 0 ){ return 'Perioden är fel, använd minute, hour, day, week eller month'; } // nowadays Avanza has two endpoints, one for nav and one for TA var get_uri = 'https://www.avanza.se/_api/price-chart/stock/'+ id +'?timePeriod=three_years&resolution=' + period; var ta_uri = `https://www.avanza.se/_api/price-chart/stock/${id}/ta/?timePeriod=three_years&resolution=${period}&ta=${ma}`; var requestOptions = { 'method' : 'get', 'contentType': 'application/json', 'muteHttpExceptions': true } var data = JSON.parse( UrlFetchApp.fetch(get_uri) ) ; var ta_data = JSON.parse( UrlFetchApp.fetch(ta_uri) ); data = data.ohlc; var rows = []; var cur_nav = data[data.length-1].close; var cur_sma = ta_data[ta_data.length-1].close; if( cur_sma === '' ) cur_sma = ta_data[ta_data.length-2].close; // it can be missing, if so use prior var indicator = ((cur_nav/cur_sma)-1); // debug /* console.log({ indicator: indicator, cur_nav: cur_nav, cur_sma: cur_sma, updated: new Date().toLocaleString('sv-SE', { dateStyle: 'short', timeStyle: 'short' }) }); */ rows.push([ indicator, cur_nav, cur_sma, new Date().toLocaleString('sv-SE', { dateStyle: 'short', timeStyle: 'short' }) ]); return rows; } // az_get()
/** * az_get * fetch nav from avanza and fetch sma */ function az_get( id, ma, period ) { // parmas id = id || false; ma = ma || 10; period = period ? period.toLowerCase() : 'month'; // debug // id = 1002994; // OMXSGI // checks if(!id) return 'Inget id definierat'; if (['minute', 'hour', 'day', 'week', 'month'].indexOf( period ) < 0 ){ return 'Perioden är fel, använd minute, hour, day, week eller month'; } // nowadays Avanza has two endpoints, one for nav and one for TA var get_uri = 'https://www.avanza.se/_api/price-chart/stock/'+ id +'?timePeriod=three_years&resolution=' + period; var ta_uri = `https://www.avanza.se/_api/price-chart/stock/${id}/ta/?timePeriod=three_years&resolution=${period}&ta=${ma}`; var requestOptions = { 'method' : 'get', 'contentType': 'application/json', 'muteHttpExceptions': true } var data = JSON.parse( UrlFetchApp.fetch(get_uri) ) ; var ta_data = JSON.parse( UrlFetchApp.fetch(ta_uri) ); data = data.ohlc; var rows = []; var cur_nav = data[data.length-1].close; var cur_sma = ta_data[ta_data.length-1].close; if( cur_sma === '' ) cur_sma = ta_data[ta_data.length-2].close; // it can be missing, if so use prior var indicator = ((cur_nav/cur_sma)-1); // debug /* console.log({ indicator: indicator, cur_nav: cur_nav, cur_sma: cur_sma, updated: new Date().toLocaleString('sv-SE', { dateStyle: 'short', timeStyle: 'short' }) }); */ rows.push([ indicator, cur_nav, cur_sma, new Date().toLocaleString('sv-SE', { dateStyle: 'short', timeStyle: 'short' }) ]); return rows; } // az_get()
/** * az_get * fetch nav from avanza and fetch sma */ function az_get( id, ma, period ) { // parmas id = id || false; ma = ma || 10; period = period ? period.toLowerCase() : 'month'; // debug // id = 1002994; // OMXSGI // checks if(!id) return 'Inget id definierat'; if (['minute', 'hour', 'day', 'week', 'month'].indexOf( period ) < 0 ){ return 'Perioden är fel, använd minute, hour, day, week eller month'; } // nowadays Avanza has two endpoints, one for nav and one for TA var get_uri = 'https://www.avanza.se/_api/price-chart/stock/'+ id +'?timePeriod=three_years&resolution=' + period; var ta_uri = `https://www.avanza.se/_api/price-chart/stock/${id}/ta/?timePeriod=three_years&resolution=${period}&ta=${ma}`; var requestOptions = { 'method' : 'get', 'contentType': 'application/json', 'muteHttpExceptions': true } var data = JSON.parse( UrlFetchApp.fetch(get_uri) ) ; var ta_data = JSON.parse( UrlFetchApp.fetch(ta_uri) ); data = data.ohlc; var rows = []; var cur_nav = data[data.length-1].close; var cur_sma = ta_data[ta_data.length-1].close; if( cur_sma === '' ) cur_sma = ta_data[ta_data.length-2].close; // it can be missing, if so use prior var indicator = ((cur_nav/cur_sma)-1); // debug /* console.log({ indicator: indicator, cur_nav: cur_nav, cur_sma: cur_sma, updated: new Date().toLocaleString('sv-SE', { dateStyle: 'short', timeStyle: 'short' }) }); */ rows.push([ indicator, cur_nav, cur_sma, new Date().toLocaleString('sv-SE', { dateStyle: 'short', timeStyle: 'short' }) ]); return rows; } // az_get()
Du måste vara medlem för att kunna kommentera
Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!
Swish: 123 536 99 96 Bankgiro: 211-4106