Changed AlphaVantage to intraday price report

workbranch
asdfasdf 6 years ago
parent 58c5cbe870
commit 3629449c0f

@ -7,6 +7,7 @@ import data.DataSource;
import network.exceptions.*;
public class AlphaVantage extends DataSource {
public AlphaVantage() {
super("AlphaVantage", "https://www.alphavantage.co/query", "4MC2LL0HOQ2TFQL1");
}
@ -15,20 +16,23 @@ public class AlphaVantage extends DataSource {
public double[] update(String stype, String idstring) {
double[] result = {0.0, 0.0};
try {
String urlString = Net.urlStringBuilder(url,
"function", "GLOBAL_QUOTE",
"symbol", idstring,
String urlString = Net.urlStringBuilder(url, "function", "TIME_SERIES_INTRADAY", "symbol", idstring,
"interval", "5min",
"apikey", apiKey);
JsonObject response = StockJson.urlToJson(urlString);
JsonObject mainJson = StockJson.jsonInJson(response, "Global Quote");
result[0] = Double.parseDouble(StockJson.stringGetter(mainJson, "05. price"));
result[1] = StockJson.doublePercent(mainJson, "10. change percent");
JsonObject preJson = StockJson.jsonInJson(response, "Time Series (5min)");
JsonObject mainJson = StockJson.timeSeriesElement(preJson, 0);
System.out.print(mainJson);
result[0] = Double.parseDouble(StockJson.stringGetter(mainJson, "4. close"));
Double open = Double.parseDouble(StockJson.stringGetter(mainJson, "1. open"));
result[1] = (result[0] - open) / open;
} catch (ParaMismatchException e) {
e.printStackTrace();
} catch (IOException e) {
System.out.println("Error getting data from: " + name);
e.printStackTrace();
//e.printStackTrace();
}
return result;
}
}

@ -4,8 +4,11 @@ import javax.json.Json;
import javax.json.JsonObject;
import javax.json.JsonReader;
import javax.json.JsonNumber;
import javax.json.JsonArray;
import javax.json.JsonValue;
import java.io.InputStream;
import java.io.IOException;
import java.util.Iterator;
//Json library from https://docs.oracle.com/javaee/7/api/javax/json/Json.html
public class StockJson {
@ -40,4 +43,10 @@ public class StockJson {
String temp = stringGetter(jobj, name);
return Double.parseDouble(temp.split("%")[0]);
}
// From https://stackoverflow.com/questions/33531041/jsonobject-get-value-of-first-node-regardless-of-name
public static JsonObject timeSeriesElement(JsonObject jobj, int index) {
String name = (String) jobj.keySet().toArray()[index];
return jsonInJson(jobj, name);
}
}

Loading…
Cancel
Save