Sessions and time
Gold Seasonality: Monthly Returns Heatmap
Seasonality shows how the market has done in each calendar month, year by year, and what the average January, February and so on looks like. It also works out what the current month would close at if it matched its own average.
Loading the live chart.
- Close
- –
- Expected price for current month
- –
- Historical average for current month
- –
- Historical standard deviation for current month
- –
What it shows
A table in the indicator’s own pane: one row per year, one column per month, each cell the percent change over that month and shaded green or red by size. Under it sit the rows Avgs, StDev and Pos%. On the price chart, each month gets a box from the previous month’s close to the price it would reach with the average change.
How Pravex works it out
- Fetch monthly candles of the chart’s market, starting from December of the year before the first year counted. Only the most recent 108 months (nine years) are used, whatever the first year says.
- For each month, the change is: 100 × (close ÷ previous month’s close − 1). Months without a month right before them in the data are left empty, and so are months listed under months to skip. The month that is still forming has no change yet and is left out.
- Group the changes by calendar month. For each month of the year, work out the average change, the standard deviation of the changes (divided by the count minus one) and the share of them that are positive.
- For the current month, use only the same calendar months in earlier years. Expected price = previous month’s close × (1 + average change ÷ 100). The count of months used is reported too.
- Colour the cells from a light tint at 0% up to full strength at the full-colour change. The Pos% row is shaded by its distance from 50%.
Settings
| Setting | Default | What changing it does |
|---|---|---|
| First year counted | 2015 | The first year that counts. Years before it are not in the table or the averages. Boxes on the price chart start one year later, because the first year has no earlier years to average. Since the code reads at most the last 108 months, a first year more than nine years back changes nothing. |
| Full-colour change (%) | 10 | The monthly change at which a cell reaches full colour strength. A 10% month and a 25% month look the same at 10. |
| Table side | Center | Centre, left or right in the indicator’s pane. |
| Table share of pane width (%) | 100 | How much of the pane’s width the table takes. 0 fits the width to the contents. |
| Table share of pane height (%) | 95 | How much of the pane’s height the table takes. 0 fits the height to the contents. |
| Average row | on | Shows the Avgs row: the average change of each calendar month. |
| Spread row | on | Shows the StDev row: how much each month’s changes vary from year to year. |
| Up-month share row | on | Shows the Pos% row: the share of years in which that month closed up. |
| Months to skip | empty | Months to leave out, written as YYYY-MM and separated by commas or spaces, for example 2020-03, 2020-04. Use it to drop one-off shocks from the averages. |
How traders read it
Seasonal tendencies are patterns that repeated in earlier years, such as a month that has closed up more often than not. Traders look at the Pos% and Avgs rows to see which months have leaned one way, and at StDev to see how reliable that lean was.
Take made-up numbers: a month shows an average of +1.2%, a StDev of 4.0 and Pos% of 67%. It closed up in two of three years, but the swings were large, so the average is small next to the spread. Compare the box on the price chart with where price already is in the month.
Treat it as context. A seasonal lean is one input next to trend and the news.
When it misleads
With at most nine years of monthly data, each month has nine readings at best, so an average of, say, +1.2% has a wide error. A month with a 67% share of up years means six years out of nine, which one more year can change a lot. It describes what happened, not what will happen, and calendar months mix many events: a month that was strong in 2020 may have been so because of one shock. The data covers the history Pravex holds for the market; a market with fewer years gives fewer rows. Months are calendar months in UTC, so a month boundary does not follow gold’s 17:00 New York trading day. Read the table as a record, not a forecast.
Questions and answers
Which month is best for gold?
Open the table and look at the Avgs and Pos% rows. The code gives you the average and the share of up months for each calendar month, from the years of data it holds.
How many years does the Seasonality table use?
Up to nine: it reads the last 108 monthly candles, from the first year counted onward. A later first year shortens the table.
What do Avgs, StDev and Pos% mean?
Avgs is the average percent change of that calendar month. StDev is how much it varied between years. Pos% is the share of years it closed up.
What are the boxes on the price chart?
For each month, a box from the previous month’s close to the price it would close at if it moved by its historical average. Green boxes lean up, red boxes lean down.
Related: Performance, Trading Sessions, Moon Phases, Historical Volatility, every indicator.
Not financial advice. Read our disclaimer.
Pro charts. Zero paywalls.
Charts for gold, oil, US indices and crypto, with every tool free to use.
Open the chartNo card, no trial, no upgrade pop-ups.