back to indexBuilding a PlotLy $GME Chart in Python
Chapters
0:0
1:0 Simple Moving Average
3:56 Time Series Intraday Api
5:36 The Candlestick Format
24:48 Indicators
28:37 Moving Average
36:29 Add Candlesticks
43:11 Unbalanced Volume
56:44 Update the Layout
58:39 Confirming Trade
60:11 Shaking Oscillator
00:00:01.400 |
We're going to do something a little bit different today, 00:00:03.820 |
and we're going to build a Python project from scratch. 00:00:07.280 |
And what I want to do is build a Plotly chart 00:00:10.800 |
and feed stock information into this chart from the Alpha 00:00:14.000 |
Vantage API, which is very similar to the Yahoo Finance 00:00:21.200 |
I haven't used either of them that much, to be honest. 00:00:25.400 |
But they seem to have pretty good documentation, 00:00:31.880 |
Yahoo Finance, which is like the de facto standard, almost. 00:00:36.440 |
So after we give some stock information to this chart, 00:00:39.840 |
we want to actually chart it and plot a few interesting 00:00:55.480 |
so I don't claim to know what all of this means exactly. 00:01:02.600 |
is a moving average of the stock price over time, 00:01:10.440 |
so that we can see that we're actually doing things right 00:01:12.820 |
and we're plotting these indicators correctly. 00:01:16.920 |
And then we have this thing called the onBalanceVolume, 00:01:19.600 |
which measures positive and negative volume flow. 00:01:27.680 |
and balancing momentum-based indicators is at the moment 00:01:33.800 |
in the stock market, we have the big Wall Street 00:01:42.880 |
to just build a cool project that at least gives 00:01:47.600 |
a little bit of information on what is actually 00:01:49.680 |
happening in terms of the actual stock market. 00:01:52.920 |
Now, a lot of these are traditional indicators. 00:01:59.500 |
going to be useful or not because, obviously, 00:02:03.040 |
the market conditions at the moment are not normal. 00:02:10.860 |
which is the market strength of buyers versus sellers. 00:02:19.600 |
I'm not sure, this one called Arun, which looks 00:02:26.800 |
So if we go on here, you can see that it essentially 00:02:38.480 |
So we get a downtrend and uptrend indicator line. 00:02:45.440 |
typically when you see an uptrend or downtrend. 00:02:47.640 |
And I think that'll be quite interesting to see as well. 00:02:50.020 |
And so this is based on the time between highs and lows 00:02:58.480 |
So what you're doing here is measuring the lowest point, 00:03:05.840 |
or the peeps and troughs of this indicator here. 00:03:19.720 |
And I thought this would also be quite interesting, 00:03:21.840 |
because this is tracking the strength of price movements 00:03:26.640 |
and the underlying buying and selling pressure 00:03:36.240 |
So let's go ahead, and we're going to start coding this up. 00:03:40.440 |
So the first thing we need to do is figure out 00:03:46.160 |
So basically, all the data that we want, we can get from here. 00:03:53.880 |
So the main part of that is going to be this time series 00:04:03.400 |
OK, so if we just take this, let's figure out 00:04:28.560 |
the format that data is actually going to come in with. 00:05:19.840 |
And inside here, we have our open high, low, close, 00:05:33.080 |
So first, I do want to have the candlestick format. 00:05:45.120 |
So candlestick is this, whereas if we were just 00:05:49.920 |
tracking the average, it would look like this. 00:05:54.080 |
So first, we're just going to do this with Blightly. 00:05:58.400 |
And then we'll figure out how to build the candlestick. 00:06:03.480 |
So we're going to go ahead and try and build that. 00:06:08.400 |
So for now, we're just going to use this data. 00:06:16.800 |
So import pandas and just clean it up a little bit. 00:07:06.280 |
OK, so I'm going to initialize the data frame first. 00:07:09.280 |
And then we'll just loop through each of these entries. 00:07:15.800 |
the open, high, low, close, and volume in other columns. 00:07:56.320 |
Because here, we need to actually access this in order 00:08:18.640 |
Let's just make things a little bit easier to read. 00:08:21.040 |
, and now we're going to do here, we're going to do here, we're going to do here, we're going to do here. 00:08:29.040 |
Let's just make things a little bit easier to read. 00:08:31.040 |
And now, we're going to do here is append a dictionary, which 00:08:52.560 |
is going to contain each one of these columns. 00:08:56.040 |
And now, we're going to do here is append a dictionary, which 00:08:59.360 |
is going to contain each one of these columns. 00:09:02.840 |
And now, we're going to do here is append a dictionary, which 00:09:07.160 |
is going to contain each one of these columns. 00:09:09.560 |
And now, we're going to do here is append a dictionary, which 00:09:15.960 |
is going to contain each one of these columns. 00:09:18.440 |
And now, we're going to do here is append a dictionary, which 00:09:21.640 |
is going to contain each one of these columns. 00:09:24.000 |
And now, we're going to do here is append a dictionary, which 00:09:27.560 |
is going to contain each one of these columns. 00:09:30.040 |
And now, we're going to do here is append a dictionary, which 00:09:34.240 |
is going to contain each one of these columns. 00:09:36.840 |
And now, we're going to do here is append a dictionary, which 00:09:41.040 |
is going to contain each one of these columns. 00:09:43.640 |
And now, we're going to do here is append a dictionary, which 00:09:47.240 |
is going to contain each one of these columns. 00:09:49.840 |
And now, we're going to do here is append a dictionary, which 00:09:53.640 |
is going to contain each one of these columns. 00:09:56.240 |
And now, we're going to do here is append a dictionary, which 00:09:59.840 |
is going to contain each one of these columns. 00:10:02.440 |
And now, we're going to do here is append a dictionary, which 00:10:06.040 |
is going to contain each one of these columns. 00:10:08.440 |
And now, we're going to do here is append a dictionary, which 00:10:12.040 |
is going to contain each one of these columns. 00:10:14.440 |
And now, we're going to do here is append a dictionary, which 00:10:18.040 |
is going to contain each one of these columns. 00:10:20.440 |
And now, we're going to do here is append a dictionary, which 00:10:24.040 |
is going to contain each one of these columns. 00:10:26.440 |
And now, we're going to do here is append a dictionary, which 00:10:29.640 |
is going to contain each one of these columns. 00:10:32.040 |
And now, we're going to do here is append a dictionary, which 00:10:35.240 |
is going to contain each one of these columns. 00:10:37.640 |
And now, we're going to do here is append a dictionary, which 00:10:40.840 |
is going to contain each one of these columns. 00:10:43.240 |
And now, we're going to do here is append a dictionary, which 00:10:46.240 |
is going to contain each one of these columns. 00:10:48.440 |
And now, we're going to do here is append a dictionary, which 00:10:51.640 |
is going to contain each one of these columns. 00:10:53.840 |
And now, we're going to do here is append a dictionary, which 00:10:56.840 |
is going to contain each one of these columns. 00:10:59.640 |
And now, we're going to do here is append a dictionary, which 00:11:02.640 |
is going to contain each one of these columns. 00:11:05.040 |
And now, we're going to do here is append a dictionary, which 00:11:08.240 |
is going to contain each one of these columns. 00:11:10.640 |
And now, we're going to do here is append a dictionary, which 00:11:13.840 |
is going to contain each one of these columns. 00:11:16.240 |
And now, we're going to do here is append a dictionary, which 00:11:19.240 |
is going to contain each one of these columns. 00:11:21.440 |
And now, we're going to do here is append a dictionary, which 00:11:24.440 |
is going to contain each one of these columns. 00:11:27.040 |
And now, we're going to do here is append a dictionary, which 00:11:30.040 |
is going to contain each one of these columns. 00:11:32.240 |
And now, we're going to do here is append a dictionary, which 00:11:35.240 |
is going to contain each one of these columns. 00:11:37.640 |
And now, we're going to do here is append a dictionary, which 00:11:40.640 |
is going to contain each one of these columns. 00:11:43.040 |
And now, we're going to do here is append a dictionary, which 00:11:46.040 |
is going to contain each one of these columns. 00:11:48.440 |
And now, we're going to do here is append a dictionary, which 00:11:51.440 |
is going to contain each one of these columns. 00:11:54.440 |
And now, we're going to do here is append a dictionary, which 00:11:57.440 |
is going to contain each one of these columns. 00:12:00.040 |
And now, we're going to do here is append a dictionary, which 00:12:03.040 |
is going to contain each one of these columns. 00:12:05.640 |
And now, we're going to do here is append a dictionary, which 00:12:08.640 |
is going to contain each one of these columns. 00:12:11.040 |
And now, we're going to do here is append a dictionary, which 00:12:14.040 |
is going to contain each one of these columns. 00:12:16.440 |
And now, we're going to do here is append a dictionary, which 00:12:19.440 |
is going to contain each one of these columns. 00:12:22.440 |
And now, we're going to do here is append a dictionary, which 00:12:25.440 |
is going to contain each one of these columns. 00:12:28.440 |
And now, we're going to do here is append a dictionary, which 00:12:31.440 |
is going to contain each one of these columns. 00:12:34.440 |
And now, we're going to do here is append a dictionary, which 00:12:37.440 |
is going to contain each one of these columns. 00:12:40.440 |
And now, we're going to do here is append a dictionary, which 00:12:43.440 |
is going to contain each one of these columns. 00:12:46.440 |
And now, we're going to do here is append a dictionary, which 00:12:49.440 |
is going to contain each one of these columns. 00:12:52.440 |
And now, we're going to do here is append a dictionary, which 00:12:55.440 |
is going to contain each one of these columns. 00:12:58.440 |
And now, we're going to do here is append a dictionary, which 00:13:01.440 |
is going to contain each one of these columns. 00:13:04.440 |
And now, we're going to do here is append a dictionary, which 00:13:07.440 |
is going to contain each one of these columns. 00:13:10.440 |
And now, we're going to do here is append a dictionary, which 00:13:13.440 |
is going to contain each one of these columns. 00:13:16.440 |
And now, we're going to do here is append a dictionary, which 00:13:19.440 |
is going to contain each one of these columns. 00:13:22.440 |
And now, we're going to do here is append a dictionary, which 00:13:25.440 |
is going to contain each one of these columns. 00:13:28.440 |
And now, we're going to do here is append a dictionary, which 00:13:31.440 |
is going to contain each one of these columns. 00:13:34.440 |
And now, we're going to do here is append a dictionary, which 00:13:37.440 |
is going to contain each one of these columns. 00:13:40.440 |
And now, we're going to do here is append a dictionary, which 00:13:43.440 |
is going to contain each one of these columns. 00:13:46.440 |
And now, we're going to do here is append a dictionary, which 00:13:49.440 |
is going to contain each one of these columns. 00:13:52.440 |
And now, we're going to do here is append a dictionary, which 00:13:55.440 |
is going to contain each one of these columns. 00:13:58.440 |
And now, we're going to do here is append a dictionary, which 00:14:01.440 |
is going to contain each one of these columns. 00:14:04.440 |
And now, we're going to do here is append a dictionary, which 00:14:07.440 |
is going to contain each one of these columns. 00:14:10.440 |
And now, we're going to do here is append a dictionary, which 00:14:13.440 |
is going to contain each one of these columns. 00:14:16.440 |
And now, we're going to do here is append a dictionary, which 00:14:19.440 |
is going to contain each one of these columns. 00:14:22.440 |
And now, we're going to do here is append a dictionary, which 00:14:25.440 |
is going to contain each one of these columns. 00:14:28.440 |
And now, we're going to do here is append a dictionary, which 00:14:31.440 |
is going to contain each one of these columns. 00:14:34.440 |
And now, we're going to do here is append a dictionary, which 00:14:37.440 |
is going to contain each one of these columns. 00:14:40.440 |
And now, we're going to do here is append a dictionary, which 00:14:43.440 |
is going to contain each one of these columns. 00:14:46.440 |
And now, we're going to do here is append a dictionary, which 00:14:49.440 |
is going to contain each one of these columns. 00:14:52.440 |
And now, we're going to do here is append a dictionary, which 00:14:55.440 |
is going to contain each one of these columns. 00:14:58.440 |
And now, we're going to do here is append a dictionary, which 00:15:01.440 |
is going to contain each one of these columns. 00:15:04.440 |
And now, we're going to do here is append a dictionary, which 00:15:07.440 |
is going to contain each one of these columns. 00:15:10.440 |
And now, we're going to do here is append a dictionary, which 00:15:13.440 |
is going to contain each one of these columns. 00:15:16.440 |
And now, we're going to do here is append a dictionary, which 00:15:19.440 |
is going to contain each one of these columns. 00:15:22.440 |
And now, we're going to do here is append a dictionary, which 00:15:25.440 |
is going to contain each one of these columns. 00:15:28.440 |
And now, we're going to do here is append a dictionary, which 00:15:31.440 |
is going to contain each one of these columns. 00:15:34.440 |
And now, we're going to do here is append a dictionary, which 00:15:37.440 |
is going to contain each one of these columns. 00:15:40.440 |
And now, we're going to do here is append a dictionary, which 00:15:43.440 |
is going to contain each one of these columns. 00:15:46.440 |
And now, we're going to do here is append a dictionary, which 00:15:49.440 |
is going to contain each one of these columns. 00:15:52.440 |
And now, we're going to do here is append a dictionary, which 00:15:55.440 |
is going to contain each one of these columns. 00:15:58.440 |
And now, we're going to do here is append a dictionary, which 00:16:01.440 |
is going to contain each one of these columns. 00:16:04.440 |
And now, we're going to do here is append a dictionary, which 00:16:07.440 |
is going to contain each one of these columns. 00:16:10.440 |
And now, we're going to do here is append a dictionary, which 00:16:13.440 |
is going to contain each one of these columns. 00:16:16.440 |
And now, we're going to do here is append a dictionary, which 00:16:19.440 |
is going to contain each one of these columns. 00:16:22.440 |
And now, we're going to do here is append a dictionary, which 00:16:25.440 |
is going to contain each one of these columns. 00:16:28.440 |
And now, we're going to do here is append a dictionary, which 00:16:31.440 |
is going to contain each one of these columns. 00:16:34.440 |
And now, we're going to do here is append a dictionary, which 00:16:37.440 |
is going to contain each one of these columns. 00:16:40.440 |
And now, we're going to do here is append a dictionary, which 00:16:43.440 |
is going to contain each one of these columns. 00:16:46.440 |
And now, we're going to do here is append a dictionary, which 00:16:49.440 |
is going to contain each one of these columns. 00:16:52.440 |
And now, we're going to do here is append a dictionary, which 00:16:55.440 |
is going to contain each one of these columns. 00:16:58.440 |
And now, we're going to do here is append a dictionary, which 00:17:01.440 |
is going to contain each one of these columns. 00:17:04.440 |
And now, we're going to do here is append a dictionary, which 00:17:07.440 |
is going to contain each one of these columns. 00:17:10.440 |
And now, we're going to do here is append a dictionary, which 00:17:13.440 |
is going to contain each one of these columns. 00:17:59.440 |
So you can see that it's not showing anything. 00:18:01.440 |
And this is an issue with one of the Plotly extensions. 00:18:18.440 |
It's not difficult, though, from what I remember. 00:19:14.440 |
I realize maybe this is too small for you to see. 00:19:55.440 |
So then we need to install the other one as well. 00:20:18.440 |
I'm also going to need a JupyterLab build as well, 00:22:09.440 |
Yeah, so we need to convert these into numbers as well. 00:22:18.440 |
OK, so we can do that with the two numeric function. 00:22:26.440 |
And then just pass the columns that we want in there. 00:22:30.440 |
I'm not sure if we can do all of them at once 00:23:10.440 |
I'm also not sure if it does it in place or not as well. 00:24:30.440 |
is why I wanted to use Plotly over, like, Matplotlib. 00:25:22.440 |
OK, so let's just clean this API requesting up a little bit. 00:27:02.440 |
So the function interval, so yeah, we have a few. 00:27:07.440 |
Let's go like a 60 minute, because then we can actually 00:27:10.440 |
see that on the time period that we're already looking at. 00:27:17.440 |
But OK, let's change this to a 60 minute moving average. 00:28:09.440 |
So I wonder if you can add multiple functions. 00:28:19.440 |
And we're basically going to do the same thing again, 00:28:26.440 |
But this time, we are getting our moving average. 00:28:48.440 |
And all we want here is the date time and then this SMA value. 00:29:22.440 |
OK, let's put that in here so I don't do that again. 00:31:13.440 |
So we need to restrict that to only within what we have here. 00:31:20.440 |
But at the same time, I think it would be cool 00:31:25.440 |
if we got a little more data than what we have. 00:31:32.440 |
So we just take the minimum date time that we have within DF. 00:31:37.440 |
And then we'll just apply that to all of our technical indicators 00:31:40.440 |
so that we're only pulling it from then onwards. 00:32:02.440 |
Yeah, because here, I'm not sure they do actually give you 00:32:05.440 |
a date time limit that you can just extract from that point. 00:32:13.440 |
So yeah, I think we need to do it from the data frame anyway. 00:32:22.440 |
So after we do all of this, let's also get the min date time. 00:32:45.440 |
We also need to re-extract all of that because I overwrote it earlier. 00:33:34.440 |
So when we do this, all we need to do is just filter out anything 00:33:56.440 |
where the date time is greater than or equal to minDT. 00:34:15.440 |
And then if we do this, we filter it down to nine, 00:34:22.440 |
So we have, I think we had around eight hours in there. 00:34:46.440 |
So let's plot those both together and see how it looks. 00:35:00.440 |
Okay, so apparently you need to also add fig, 00:35:12.440 |
And then you add mode lines onto the end to add another line. 00:35:47.440 |
Okay, so line is supposed to be lines, I think. 00:36:25.440 |
But now we actually want to maybe add candlesticks into this 00:36:30.440 |
because that would be pretty cool in my opinion. 00:37:08.440 |
So you need to use the graph objects instead of express. 00:37:31.440 |
So if it's really that easy, then this -- oh, it's super easy. 00:38:12.440 |
I don't really know if you want this bit, but I suppose it's kind of cool. 00:38:21.440 |
So we have that and then we also want to add scatter again to add the SMA. 00:38:46.440 |
So now we just want to add in a few of those other indicators. 00:38:54.440 |
We have this OnBalanceVolume, BalanceOfPower, RateOfChange, Arun, and Trikin. 00:39:05.440 |
I'm going to add in a couple of functions to actually do things as well. 00:39:11.440 |
So like here, every time that we want to convert these to numeric, 00:39:17.440 |
I think we want to convert anything that's just not called date/time. 00:39:50.440 |
Let's do toNumeric and then just add our DataFrame. 00:40:06.440 |
We only want to do this if col is not equal to date/time. 00:40:16.440 |
So every other column we do want to convert to numeric. 00:40:26.440 |
Okay, so instead of needing to write it out every time, 00:40:29.440 |
we can just write toNumeric when we have our data. 00:41:43.440 |
Okay, and let's just test that, see how it is. 00:43:11.440 |
Yeah, the onBalance volume, let's do that one. 00:43:24.440 |
And we're probably going to do something similar here again, right? 00:43:27.440 |
So let's go to our documentation and let's get the onBalance. 00:44:05.440 |
So we have the API key, which is going to be our key. 00:44:17.440 |
I should probably check what that actually means for this. 00:44:38.440 |
So this one is probably the one that I was most interested in seeing. 00:44:45.440 |
It's like a -- it measures the positive and negative flow with the intention of 00:44:52.440 |
identifying where you've got a load of sort of big investors putting a lot of 00:45:08.440 |
Or sorry, when you've got a lot of smaller investors putting a lot of money 00:45:15.440 |
Because obviously the retail investors are putting a lot more bets on, but 00:45:40.440 |
Although, you know, I've just read this very briefly before, so it could be 00:45:46.440 |
But it sounds pretty interesting from reading this. 00:45:52.440 |
I'm going to go with shorter time period than what it's suggesting here. 00:46:01.440 |
Because I don't know if we will see anything with that. 00:46:43.440 |
And it's basically the same as before when we had the SMA. 00:46:49.440 |
So we could probably write a function that does that for us. 00:47:41.440 |
I think this one should be pretty interesting to see. 00:47:47.440 |
And I don't know, to be honest, we're going to need to put these on another chart. 00:47:57.440 |
I imagine there isn't an easy way of doing it. 00:48:18.440 |
So we should probably have a look at how people normally do this. 00:48:47.440 |
Okay, and let's try and stick with the graph objects. 00:49:14.440 |
So I don't know if this is going to give us -- yeah, this just gives us express. 00:49:36.440 |
So we're actually just going to use a scatter. 00:50:59.440 |
So I wonder if this would make more sense because it's volume to have it as a bar chart at the bottom. 00:52:18.440 |
We have space very similar to -- okay, perfect. 00:52:28.440 |
But we want steps, so I think it's the same as far as I know. 00:52:34.440 |
The only thing that I'm not doing here is matching on the X-axis. 00:52:39.440 |
But again, that shouldn't really be an issue for us because we do actually have -- we have already matched on the X-axis. 00:53:37.440 |
Okay, no, so we need to -- yeah, I don't know if we should have really been doing that anyway because it needs to be more like this. 00:54:45.440 |
And we also need to specify the row and the column as well. 00:55:06.440 |
Okay, so this is going to be row -- which one? 00:55:20.440 |
And we just need to remove the data part that we added in here. 00:56:05.440 |
So I kind of want to just get rid of that for now. 00:56:25.440 |
So I don't know what it is, like an excited slider maybe. 00:56:37.440 |
Okay, so this is kind of what we need, I think. 00:57:45.440 |
How do you normally -- let's have a look at how this unbalance volume is normally plotted. 00:58:15.440 |
So it's just like another line chart underneath the other line chart. 00:58:38.440 |
So here's like a confirming trade when they're both in the same direction. 00:58:51.440 |
Okay, so this is what we want to look at here. 00:58:56.440 |
When the price and OBV are making higher peaks and higher troughs, upward trend is likely to continue. 00:59:04.440 |
So when they're both going up, when they're making lower and lower, there's a downward trend. 00:59:12.440 |
If the OBV is rising, accumulation may be taking place. 00:59:25.440 |
So that's like, okay, the downward trend is likely to continue. 00:59:42.440 |
And we see the momentum sort of pushing up again just before it rises. 00:59:50.440 |
So maybe that is what we're sort of looking for. 00:59:54.440 |
Either way, it's pretty interesting to actually look at. 01:00:08.440 |
And then I also want to probably have a look at this shaking osculator as well. 01:00:51.440 |
Okay, so this is measuring big investors, I think. 01:00:55.440 |
So when you're looking for where the big investors are putting their money, 01:01:03.440 |
this is supposed to be an indicator of it, as far as I understand. 01:01:09.440 |
So it examines the strength of price moves and the underlying buying and selling pressure 01:01:19.440 |
Then divergence between the price and the oscillator is indicated as most frequent single 01:01:26.440 |
So that'd be interesting to see if we can maybe find that happening around here or around here. 01:02:37.440 |
So this time, we're just replacing the function with AD interval, this one's doing daily. 01:02:45.440 |
So maybe this is the sort of thing we want to be looking at more frequently. 01:03:06.440 |
So let's put this down to, let's go 60 minutes again. 01:03:49.440 |
I'm just going to call it AD or just call it Chad, Chaikin AD. 01:04:52.440 |
So I think, so this bit we need, what do we want this bit to be? 01:05:10.440 |
We've got two numeric, so that all looks pretty good to me. 01:05:16.440 |
So obviously that's going to need another row. 01:06:09.440 |
it's an indication of a sort of a movement change. 01:06:23.440 |
So I don't know, I suppose here is like the only bit where it kind of doesn't 01:06:27.440 |
follow the price because the price is pretty level. 01:06:39.440 |
So maybe that's indicating the reversal in price change. 01:06:44.440 |
But it's also kind of difficult too because we're only looking at our time 01:06:48.440 |
here, so we should probably increase the, you know, how much we're reviewing. 01:06:54.440 |
So let's just go to like 10 minutes and see how that looks. 01:07:41.440 |
So now we just see like this big movement up here. 01:07:48.440 |
But then I bet if we look at long term, it's probably pretty stable. 01:07:53.440 |
So let's try and increase how much data we're actually looking at. 01:08:56.440 |
So I was wrong earlier when I said this is a Saturday's data. 01:09:09.440 |
But does this actually return us anything more than what we have here? 01:09:25.440 |
So we're showing this full rather than compact. 01:10:02.440 |
We probably, I don't know if we'll be able to even see that much though. 01:10:07.440 |
So maybe it's worth maybe not doing a five minute interval as we're going. 01:11:19.440 |
Okay, so how because we are doing the intraday. 01:12:47.440 |
So let's have a look at these, how they are now. 01:12:55.440 |
It's pushing up loads and everyone's buying into it. 01:12:58.440 |
But you can see there's this massive increase here. 01:13:15.440 |
You can just see it kind of pushing up, pushing up. 01:13:43.440 |
So I think it kind of went down here and then back up. 01:14:00.440 |
So, I mean, I think that's it for this video for now. 01:14:05.440 |
It's probably, I mean, obviously there's a lot we could do like tidying up. 01:14:08.440 |
But just in getting a few indicators together and the actual stock data in Candlestick. 01:14:18.440 |
I mean, I've never done most of this before with Plotly and it's super easy to figure out. 01:14:33.440 |
I'll add a link in the description if it helps. 01:14:39.440 |
But it might help you pull things together a bit quicker.