I am trying to retrieve all of the stock prices added into an arraylist using the YahooFinanceApi, the code normally works fine but as soon as I add it into a loop the Async task does not want to retrieve the required information. Found the reference code here https://www.youtube.com/watch?v=hPYUjOwSKcQ.
Any help would be appreciated
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using YahooFinanceApi;
using System.Collections;
using System.Diagnostics;
namespace StockAlert
{
public partial class Main : Form
{
public Main()
{
InitializeComponent();
}
private void Main_Load(object sender, EventArgs e)
{
}
public void simpleButton1_Click(object sender, EventArgs e)
{
// Retrieve stock data
ArrayList Stocks = getStocks();
for (int i = 0; i < Stocks.Count; i++)
{
DoAsync(Stocks[i].ToString());
i++;
}
}
public static Task DoAsync(string Item)
{
string sstart = "2022/02/08";
string ssend = "2022/02/09";
DateTime start = Convert.ToDateTime(sstart);
DateTime end = Convert.ToDateTime(ssend);
Task.Delay(1000);
// Retrieve stock data
var awaiter = getstockData(Item, start, end);
return Task.CompletedTask;
}
// The problem occurs here should go on instead on Continuing with the loop
public static async Task<int> getstockData(string symbol, DateTime startdate, DateTime enddate)
{
try
{
var historical_data = await Yahoo.GetHistoricalAsync(symbol, startdate, enddate);
await Task.Delay(100);
var security = await Yahoo.Symbols(symbol).Fields(Field.LongName).QueryAsync();
var ticker = security[symbol];
var companyname = ticker[Field.LongName];
for (int i = 0; i < historical_data.Count; i++)
{
// When out of the arraylist loop, this part normally Retrieves the values.
decimal open = historical_data.ElementAt(i).Open;
decimal close = historical_data.ElementAt(i).Close;
}
}
catch (Exception ex)
{
}
return 1;
}
public static ArrayList getStocks()
{
ArrayList Stocks = new ArrayList();
Stocks.Add("BABA");
Stocks.Add("AMD");
Stocks.Add("MMM");
Stocks.Add("ABT");
Stocks.Add("ABBV");
Stocks.Add("CAN");
Stocks.Add("ATVI");
Stocks.Add("ADBE");
Stocks.Add("AAP");
Stocks.Add("AIR.PA");
Stocks.Add("AA");
Stocks.Add("ALGN");
Stocks.Add("ALV.DE");
Stocks.Add("MO");
Stocks.Add("AMZN");
Stocks.Add("AMGN");
Stocks.Add("BUD");
Stocks.Add("ANSS");
Stocks.Add("AAPL");
Stocks.Add("T");
Stocks.Add("ACB ");
Stocks.Add("ADSK");
Stocks.Add("BIDU");
Stocks.Add("SAN");
Stocks.Add("BAC");
Stocks.Add("BCS");
Stocks.Add("BAYN.DE");
Stocks.Add("BBY");
Stocks.Add("BYND");
Stocks.Add("BMW");
Stocks.Add("BA");
Stocks.Add("BMY");
Stocks.Add("CGC");
Stocks.Add("CAT");
Stocks.Add("CTL");
Stocks.Add("CVX");
Stocks.Add("CTAS");
Stocks.Add("CSCO");
Stocks.Add("C");
Stocks.Add("CTXS");
Stocks.Add("KO");
Stocks.Add("CL");
Stocks.Add("CMCSA");
Stocks.Add("CBK");
Stocks.Add("CXO");
Stocks.Add("COP");
Stocks.Add("ED");
Stocks.Add("CON");
Stocks.Add("COST");
Stocks.Add("CRON");
Stocks.Add("CVS");
Stocks.Add("DHI");
Stocks.Add("DAI.DE");
Stocks.Add("DHR");
Stocks.Add("DRI");
Stocks.Add("DVA");
Stocks.Add("DAL");
Stocks.Add("DB ");
Stocks.Add("DPW");
Stocks.Add("DRE");
Stocks.Add("DVN");
Stocks.Add("DLR");
Stocks.Add("DFS");
Stocks.Add("DISCA");
Stocks.Add("DIS");
Stocks.Add("DOV");
Stocks.Add("DBX");
Stocks.Add("DTE");
Stocks.Add("DRE");
Stocks.Add("EMN");
Stocks.Add("EZJ.L");
Stocks.Add("EBAY");
Stocks.Add("ECL");
Stocks.Add("EIX");
Stocks.Add("EMR");
Stocks.Add("ENEL.MI");
Stocks.Add("Entergy");
Stocks.Add("EQT");
Stocks.Add("EFX");
Stocks.Add("EQR");
Stocks.Add("ESS");
Stocks.Add("ETFC");
Stocks.Add("EXPD");
Stocks.Add("EXR");
Stocks.Add("XOM");
Stocks.Add("FFIV");
Stocks.Add("FB");
Stocks.Add("FRT");
Stocks.Add("RACE");
Stocks.Add("FCAU");
Stocks.Add("FIS");
Stocks.Add("FITB");
Stocks.Add("FSLR");
Stocks.Add("FE");
Stocks.Add("FISV");
Stocks.Add("FLS");
Stocks.Add("FMC");
Stocks.Add("FBHS");
Stocks.Add("FCX");
Stocks.Add("GE");
Stocks.Add("GM");
Stocks.Add("GILD");
Stocks.Add("GS");
Stocks.Add("GOOGL");
Stocks.Add("GWPH");
Stocks.Add("HAS");
Stocks.Add("KHC");
Stocks.Add("HON");
Stocks.Add("HSBA.L");
Stocks.Add("IBM");
Stocks.Add("IDXX");
Stocks.Add("INTC");
Stocks.Add("JPM");
Stocks.Add("JUVE");
Stocks.Add("FDJ.PA");
Stocks.Add("LMT");
Stocks.Add("OREP-");
Stocks.Add("LYFT");
Stocks.Add("MANU");
Stocks.Add("MKS.L");
Stocks.Add("MA");
Stocks.Add("MCD");
Stocks.Add("MDT");
Stocks.Add("MELI");
Stocks.Add("MRK.DE");
Stocks.Add("MU");
Stocks.Add("MS");
Stocks.Add("NFLX");
Stocks.Add("NEE");
Stocks.Add("NKE");
Stocks.Add("NVDA");
Stocks.Add("PYPL");
Stocks.Add("PFE");
Stocks.Add("PM");
Stocks.Add("PINS");
Stocks.Add("PIRC");
Stocks.Add("PST");
Stocks.Add("PG");
Stocks.Add("QCOM");
Stocks.Add("DGX");
Stocks.Add("RTX");
Stocks.Add("RMD");
Stocks.Add("RR.L");
Stocks.Add("RBS.L");
Stocks.Add("CRM");
Stocks.Add("Schlumb");
Stocks.Add("WORK");
Stocks.Add("SNAP");
Stocks.Add("Spotify");
Stocks.Add("STAN.L");
Stocks.Add("SBUX");
Stocks.Add("SYK");
Stocks.Add("SU");
Stocks.Add("TFX");
Stocks.Add("TEF.MC");
Stocks.Add("TSCO.L");
Stocks.Add("Tesla");
Stocks.Add("TLRY");
Stocks.Add("TMUS");
Stocks.Add("TFC");
Stocks.Add("TWTR");
Stocks.Add("UBER");
Stocks.Add("UCG.MI");
Stocks.Add("VZ");
Stocks.Add("VIAC");
Stocks.Add("V");
Stocks.Add("VOD.L");
Stocks.Add("VOW3.DE");
Stocks.Add("WBA");
Stocks.Add("0R1W.IL");
Stocks.Add("MRW.L");
Stocks.Add("ZM");
return Stocks;
}
}
}