You can create this type of chart using the Signal Tester and creating a formula, although can’t combine the 3 cycles in the example.
For example, the average year in the S&P500 can be calculated using YEARNUM() IsUp as the trigger, and taking the close of the day before (ie the last day of the previous year) with 252 trading days after:
V1=YEARNUM() IsUp;
//Offset to the day before to get the previous year close;
V1[-1]