139 lines
5.6 KiB
ReStructuredText
139 lines
5.6 KiB
ReStructuredText
.. _data_agent_fin:
|
|
|
|
=====================
|
|
Finance Data Agent
|
|
=====================
|
|
|
|
|
|
**🤖 Automated Quantitative Trading & Iterative Factors Evolution**
|
|
-------------------------------------------------------------------
|
|
|
|
📖 Background
|
|
~~~~~~~~~~~~~~
|
|
In the dynamic world of quantitative trading, **factors** serve as the strategic tools that enable traders to exploit market inefficiencies.
|
|
These factors—ranging from simple metrics like price-to-earnings ratios to complex models like discounted cash flows—are the key to predicting stock prices with a high degree of accuracy.
|
|
|
|
By leveraging these factors, quantitative traders can develop sophisticated strategies that not only identify market patterns but also significantly enhance trading efficiency and precision.
|
|
The ability to systematically analyze and apply these factors is what separates ordinary trading from truly strategic market outmaneuvering.
|
|
And this is where the **Finance Model Agent** comes into play.
|
|
|
|
🎥 `Demo <https://rdagent.azurewebsites.net/factor_loop>`_
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
.. raw:: html
|
|
|
|
<div style="display: flex; justify-content: center; align-items: center;">
|
|
<video width="600" controls>
|
|
<source src="https://rdagent.azurewebsites.net/media/65bb598f1372c1857ccbf09b2acf5d55830911625048c03102291098.mp4" type="video/mp4">
|
|
Your browser does not support the video tag.
|
|
</video>
|
|
</div>
|
|
|
|
|
|
🌟 Introduction
|
|
~~~~~~~~~~~~~~~~
|
|
In this scenario, our agent illustrates the iterative process of hypothesis generation, knowledge construction, and decision-making.
|
|
|
|
It highlights how financial factors evolve through continuous feedback and refinement.
|
|
|
|
Here's an enhanced outline of the steps:
|
|
|
|
**Step 1 : Hypothesis Generation 🔍**
|
|
|
|
- Generate and propose initial hypotheses based on previous experiment analysis and domain expertise, with thorough reasoning and financial justification.
|
|
|
|
**Step 2 : Factor Creation ✨**
|
|
|
|
- Based on the hypothesis, divide the tasks.
|
|
- Each task involves developing, defining, and implementing a new financial factor, including its name, description, formulation, and variables.
|
|
|
|
**Step 3 : Factor Implementation 👨💻**
|
|
|
|
- Implement the factor code based on the description, evolving it as a developer would.
|
|
- Quantitatively validate the newly created factors.
|
|
|
|
**Step 4 : Backtesting with Qlib 📉**
|
|
|
|
- Integrate the full dataset into the factor implementation code and prepare the factor library.
|
|
- Conduct backtesting using the Alpha158 plus newly developed factors and LGBModel in Qlib to evaluate the new factors' effectiveness and performance.
|
|
|
|
+----------------+------------+----------------+----------------------------------------------------+
|
|
| Dataset | Model | Factors | Data Split |
|
|
+================+============+================+====================================================+
|
|
| CSI300 | LGBModel | Alpha158 Plus | +-----------+--------------------------+ |
|
|
| | | | | Train | 2008-01-01 to 2014-12-31 | |
|
|
| | | | +-----------+--------------------------+ |
|
|
| | | | | Valid | 2015-01-01 to 2016-12-31 | |
|
|
| | | | +-----------+--------------------------+ |
|
|
| | | | | Test | 2017-01-01 to 2020-08-01 | |
|
|
| | | | +-----------+--------------------------+ |
|
|
+----------------+------------+----------------+----------------------------------------------------+
|
|
|
|
|
|
**Step 5 : Feedback Analysis 🔍**
|
|
|
|
- Analyze backtest results to assess performance.
|
|
- Incorporate feedback to refine hypotheses and improve the model.
|
|
|
|
**Step 6 :Hypothesis Refinement ♻️**
|
|
|
|
- Refine hypotheses based on feedback from backtesting.
|
|
- Repeat the process to continuously improve the model.
|
|
|
|
⚡ Quick Start
|
|
~~~~~~~~~~~~~~~~~
|
|
|
|
Please refer to the installation part in :doc:`../installation_and_configuration` to prepare your system dependency.
|
|
|
|
You can try our demo by running the following command:
|
|
|
|
- 🐍 Create a Conda Environment
|
|
|
|
- Create a new conda environment with Python (3.10 and 3.11 are well tested in our CI):
|
|
|
|
.. code-block:: sh
|
|
|
|
conda create -n rdagent python=3.10
|
|
|
|
- Activate the environment:
|
|
|
|
.. code-block:: sh
|
|
|
|
conda activate rdagent
|
|
|
|
- 📦 Install the RDAgent
|
|
|
|
- You can install the RDAgent package from PyPI:
|
|
|
|
.. code-block:: sh
|
|
|
|
pip install rdagent
|
|
|
|
- 🚀 Run the Application
|
|
|
|
- You can directly run the application by using the following command:
|
|
|
|
.. code-block:: sh
|
|
|
|
rdagent fin_factor
|
|
|
|
|
|
🛠️ Usage of modules
|
|
~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
.. _Env Config:
|
|
|
|
- **Env Config**
|
|
|
|
The following environment variables can be set in the `.env` file to customize the application's behavior:
|
|
|
|
.. autopydantic_settings:: rdagent.app.qlib_rd_loop.conf.FactorBasePropSetting
|
|
:settings-show-field-summary: False
|
|
:exclude-members: Config
|
|
|
|
.. autopydantic_settings:: rdagent.components.coder.factor_coder.config.FactorCoSTEERSettings
|
|
:settings-show-field-summary: False
|
|
:members: coder_use_cache, data_folder, data_folder_debug, file_based_execution_timeout, select_method, max_loop, knowledge_base_path, new_knowledge_base_path
|
|
:exclude-members: Config, fail_task_trial_limit, v1_query_former_trace_limit, v1_query_similar_success_limit, v2_query_component_limit, v2_query_error_limit, v2_query_former_trace_limit, v2_error_summary, v2_knowledge_sampler
|
|
:no-index:
|