Another new pitfall... The factor expressions output by genetic algorithms lack logical auditing, so often even after extensive backtesting, the output still shows severely overfitted and contradictory factors, such as the following:
where_signal((delay(1h_TD_Seq_4) <= (1d_Volatility_Compression_10_Z50 * 70)), where_signal((sma_20(1h_Donchian_Position_20) <= ema(1h_BB_Width_20, ema_fast(1h_Donchian_Position_20))), 1, 0), where_signal(cross_up(1d_Std_Compression_10_Z50, 15m_OBV_Relative_20_Z200), 0, -1))
How can this be solved?
I integrated the Gemini 3.1 API, analyzing the high-scoring factor expressions every 20 generations. If overfitting or logical contradictions were found, I intervened in the evolution process to forcibly remove the factor.
However, Claude believes I shouldn't use Gemini for this. He suggests regulating factor output by optimizing the output logic, rather than adding a black box to the end of an already heavily randomized pipeline.
Okay~ I'll give it a try~
twitter.com/CryptoPainter/stat...