novelty search
Where might Novelty Search be useful in Finance?
1. Strategy Discovery / Behavioral Diversity
Novelty Search could be used to evolve diverse trading strategies — momentum, mean reversion, arbitrage, etc. This encourages exploration of different market behaviors rather than converging on a single overfit solution.
2. Exploratory Modeling of Market Hypotheses
Novelty Search might help discover alternative models or agents that behave uniquely in specific market regimes (e.g., volatility clusters, bubbles, crashes).
3. Multi-Agent Market Simulations
In agent-based financial simulations, Novelty Search could evolve agents with varied behavior, leading to richer, more realistic market dynamics.
4. Novel Feature or Indicator Discovery
Search the space of technical indicators or engineered features to find signal transformations that produce unique predictive behaviors. This may help uncover unexplored market features.
📊 Example Hybrid Use Case
Component | Description |
---|---|
Agents | Each agent is a strategy or model (e.g., RNN, CPPN, decision tree). |
Novelty Metric | Measures how different an agent's predictions or actions are from others (e.g., distance in behavior or outcome space). |
Optional Fitness | Combine novelty with prediction performance for balance. |
Search Algorithm | Use NEAT or genetic algorithms with Novelty Search to evolve agent population. |
Modeling Cryptocurrency Features with Novelty Search
Novelty Search, an evolutionary computation technique, rewards behavioral novelty rather than optimizing a fixed objective. While traditionally applied to domains like robotics and generative art, its exploratory nature offers compelling opportunities for modeling the complex and emergent behaviors of cryptocurrency markets.
Cryptocurrencies defy conventional financial modeling due to their high volatility, decentralization, and dependence on diverse signals such as social sentiment, on-chain activity, network protocol updates, and market microstructure. These dynamics often generate non-stationary and nonlinear patterns. Traditional objective-driven models may fail to adapt to such complexities, making novelty-oriented exploration an attractive alternative.
One potential application is using Novelty Search to evolve models that react uniquely to atypical market scenarios—such as flash crashes, parabolic pumps, or chain halts. Instead of minimizing prediction error (e.g., RMSE), models could be rewarded for producing behaviorally distinct outputs under unusual conditions. This approach may surface latent structures or interactions that traditional methods overlook.
Novelty Search also holds promise in feature engineering. It could explore high-dimensional crypto data to evolve novel signal generators, such as metrics derived from transaction graph topology, smart contract invocation patterns, or liquidity flow anomalies. By promoting diversity in behavior rather than fit, the system may identify meaningful yet unconventional signals—like wallet clustering preceding large transfers, or gas fee spikes foreshadowing market volatility.
In trading strategy design, Novelty Search can help discover a diverse array of algorithmic agents. Each agent might exploit different characteristics of the crypto market, such as momentum on low-cap tokens, arbitrage on DEXs, or volatility-induced slippage. This diversity aligns with portfolio diversification, where robustness comes from behaviorally distinct strategies rather than isolated accuracy.
Software and Libraries for Novelty Search
This is a curated list of frameworks, libraries, and tools that support Novelty Search either directly or through extensible evolutionary computation systems. These are valuable for experimentation in machine learning, neuroevolution, reinforcement learning, and exploratory modeling.
Libraries and Frameworks
- Uber's Deep Neuroevolution — Python/TensorFlow-based system that supports Novelty Search and Evolution Strategies. Suitable for deep RL tasks like Atari and MuJoCo.
- neat-python — Popular NEAT implementation in Python. While it doesn't natively include Novelty Search, it is easily extended with custom selectors and distance metrics.
- Karpathy’s Novelty Search — Minimal and well-documented Python implementation of Novelty Search. Ideal for learning and prototyping.
- PyNEAT (Joel Lehman fork) — Original NEAT and Novelty Search implementation by one of the inventors. Suitable for academic use and extension.
- NEAT-C++ — High-performance C++ implementation of NEAT. Useful for production-grade or speed-critical tasks; extendable for novelty search.
- novelty-search-gym — Integrates Novelty Search with OpenAI Gym environments. Includes behavior distance metrics and archive logic.
- EvoGym — A framework for evolving soft robots. Supports Novelty Search in exploring morphology and control strategies.
- DEAP (Distributed Evolutionary Algorithms in Python) — Flexible evolutionary framework where Novelty Search can be implemented via custom fitness and selection logic.
- HyperNEAT / ES-HyperNEAT — Extensions of NEAT that generate neural network topologies using CPPNs. Often used with Novelty Search in open-ended evolution domains.
tforms and Tools
- OpenAI Evolution Strategies — While not Novelty Search by default, ES can be adapted to include novelty objectives in high-dimensional optimization.
- EvoJAX — Fast JAX-based neuroevolution framework, useful for scaling Novelty Search to large model spaces.
- Picbreeder — Interactive evolutionary system that embodies the principles of Novelty Search through collaborative image evolution.
Use Case | Recommended Software |
Learn Novelty Search Basics | Karpathy’s implementation |
Add Novelty Search to NEAT | neat-python |
Reinforcement Learning Agents | Uber’s Deep Neuroevolution |
Custom Evolutionary Experiments | DEAP |
Robot Morphology & Simulation | EvoGym |