Inspired by https://www.elitetrader.com/et/threads/200-points-fall-is-coming-up-in-gold.334310/ and related threads, I decided to try using my genetic programming rule generator with astronomical data as inputs to predict future changes in the S&P 500. The inputs are for readings taken from a specific point on Earth, taken at the same time each trading day (20:00:00 UTC), and for the past 0 through 126 trading days ago: MoonPhase has the percent of the Moons' phase where 0 is for a new moon, 50 is for a full moon, up to slightly less than 100 for just before the next new moon. MoonIllum has the percent of the Moon that is lit (0 for new moon ... 100 for full moon). MoonAzimuth has the percent of the azimuth of the Moon's position where 0 is north, 50 is south, up to slightly less than 100 for just before north. MoonElevation has the percent of the Moon's maximum elevation from the horizon (-100 through 100) MoonRange has the approximate percent of the maximum - minimum distance from Earth to the Moon (0 through 100). SunAzimuth has the percent of the azimuth of the Sun's position where 0 is north, 50 is south, up to slightly less than 100 for just before north. SunElevation has the percent of the Sun's maximum elevation from the horizon (-100 through 100) SunRange has the approximate percent of the maximum - minimum distance from Earth to the Sun (0 through 100). The software tries to predict when the log (next_trading_day_close_S&P_500_value / half_cycle_length_future_trading_days_close_S&P_500_value) * 100 is in the top third of these values in the history period. The cycle length is calculated based on an Autocorrelation Periodogram from John Ehlers' "Cycle Analytics For Traders" Here is an example of a rule: When the rule returns 1, a long trade would be entered at the close of the next trading day and exited at the close N trading days from the entry day where N == cycle_length/2. When the rule returns NAN (not a number), no trade would be entered. The maximum cycle_length/2 is 24 trading days. The history period had inputs and simulated results for 1963-12-30 through 2019-06-13 (trades, if any would be entered the next trading day after these dates). For this rule, the history period has 13,960 trading days, 1,465 signals to enter trades and 865 winning trades where a win means the return was greater than 1.6560 percent. The mean return for all simulated trades was 100 * exp(1.82889 / 100) - 100 == 1.8457 percent. This was significantly better than the mean result for the history period == 0.3152 percent. WARNING: If you are easily offended by low-class humor, stop reading this post now. Since this has relationships of celestial bodies and their illumination, I will lighten this up with a disclaimer. The risk of loss ... No, not that type of disclaimer. The strategy will go flaccid if the Moon prematurely ejects from Earth orbit, grazes Jupiter's G spot, and penetrates Uranus.