I think the best thing to do to start getting into data analysis is to use the various moving average metrics provided by AlphaVantage. Not only should you learn how the different functions behave but also you should use them with different time bases. You could then do something like get a consensus of the averages on the expected direction of a stock or get more fancy about buying when one average is below another, and so on. I like to compare their direction against the directions of the exchange averages. Correlate the exchange direction with the stock price direction. Some stocks move with the market, some move opposite.
Pointers are effective if you need to make multiple references to a single large thing. In stock price analysis, you don't. So pointers are not a big deal for this application. If you need to cut down on memory use, try these:
1. Convert ASAP the AlphaVantage text data to binary
2. Consider dropping the timestamps and arranging the data so the row is the minute (or 10 minutes) in the trading day.
3. I record closing prices only and start the day's price list with the first opening price.
4. Consider decreasing your sampling rate. Does every minute really matter? More than every 10 minutes? Really?
For or for-each loops are as efficient as it gets, and they were originally developed for working with just this kind of data.