feat: Add description for scenario experiments. (#174)

* Fixed some bugs introduced during refactoring.

* Add description for scenario experiments.

* Update factor_from_report_w_sc.py

* fix some ci bugs.

* add @property to get_experiment_setting

* fix a ci error.
This commit is contained in:
WinstonLiyt
2024-08-06 16:03:40 +08:00
committed by GitHub
parent b39e2cc55e
commit cdc93bf630
5 changed files with 49 additions and 12 deletions
+5
View File
@@ -35,3 +35,8 @@ class Scenario(ABC):
@abstractmethod
def get_scenario_all_desc(self) -> str:
"""Combine all the description together"""
@property
@abstractmethod
def get_experiment_setting(self) -> str:
"""Get experiment setting and return as rich text string"""
+3 -3
View File
@@ -531,13 +531,13 @@ with st.container():
st.header("Scenario Description📖", divider="violet", anchor="_scenario")
# TODO: other scenarios
if state.log_type == "Qlib Model":
st.markdown(QlibModelScenario().rich_style_description)
st.markdown(QlibModelScenario().rich_style_description, unsafe_allow_html=True)
elif state.log_type == "Data Mining":
st.markdown(DMModelScenario().rich_style_description)
elif state.log_type == "Qlib Factor":
st.markdown(QlibFactorScenario().rich_style_description)
st.markdown(QlibFactorScenario().rich_style_description, unsafe_allow_html=True)
elif state.log_type == "Model from Paper":
st.markdown(GeneralModelScenario().rich_style_description)
st.markdown(GeneralModelScenario().rich_style_description, unsafe_allow_html=True)
# Summary Window
@@ -62,7 +62,6 @@ The demo showcases the iterative process of hypothesis generation, knowledge con
#### [Objective](#_summary)
To demonstrate the dynamic evolution of financial factors through the Qlib platform, emphasizing how each iteration enhances the accuracy and reliability of the resulting financial factors.
"""
def get_scenario_all_desc(self) -> str:
@@ -77,3 +76,11 @@ The output of your code should be in the format:
The simulator user can use to test your factor:
{self.simulator}
"""
@property
def get_experiment_setting(self) -> str:
return """
| Dataset 📊 | Model 🤖 | Factors 🌟 | Data Split 🧮 |
|---------|----------|---------------|-------------------------------------------------|
| CSI300 | LGBModel | Alpha158 Plus | Train: 2008-01-01 to 2014-12-31 <br> Valid: 2015-01-01 to 2016-12-31 <br> Test &nbsp;: 2017-01-01 to 2020-08-01 |
"""
@@ -17,7 +17,8 @@ class QlibFactorFromReportScenario(QlibFactorScenario):
@property
def rich_style_description(self) -> str:
return """
### R&D Agent-Qlib: Automated Quantitative Trading & Factors Extraction from Financial Reports Demo
### R&D Agent-Qlib: Automated Quantitative Trading & Factor Extraction from Financial Reports Demo
#### [Overview](#_summary)
@@ -35,10 +36,26 @@ This demo showcases the process of extracting factors from financial research re
#### [Objective](#_summary)
| Objective | Description |
|-------------------|---------------------------------------------------------------------------------------------------------|
| **Convenience** | Provide a tool for financial and quantitative practitioners or enthusiasts to quickly extract and test factors from research reports. |
| **Efficiency** | Enable rapid identification of factors from a vast number of reports that could enhance the current factor library. |
| **Research Facilitation** | Support further research by continuously expanding and refining the factor library. |
| **Innovation** | Foster innovation in financial analysis by leveraging automated R&D processes to iterate and improve financial factors. |
<table border="1" style="width:100%; border-collapse: collapse;">
<tr>
<td>💡 <strong>Innovation </strong></td>
<td>Tool to quickly extract and test factors from research reports.</td>
</tr>
<tr>
<td>⚡ <strong>Efficiency </strong></td>
<td>Rapid identification of valuable factors from numerous reports.</td>
</tr>
<tr>
<td>🗃️ <strong>Outputs </strong></td>
<td>Expand and refine the factor library to support further research.</td>
</tr>
</table>
"""
@property
def get_experiment_setting(self) -> str:
return """
| Dataset 📊 | Model 🤖 | Factors 🌟 | Data Split 🧮 |
|---------|----------|---------------|-------------------------------------------------|
| CSI300 | LGBModel | Alpha158 Plus | Train: 2008-01-01 to 2014-12-31 <br> Valid: 2015-01-01 to 2016-12-31 <br> Test &nbsp;: 2017-01-01 to 2020-08-01 |
"""
@@ -60,7 +60,8 @@ The demo showcases the iterative process of hypothesis generation, knowledge con
#### [Objective](#_summary)
To demonstrate the dynamic evolution of models through the Qlib platform, emphasizing how each iteration enhances the accuracy and reliability of the resulting models. """
To demonstrate the dynamic evolution of models through the Qlib platform, emphasizing how each iteration enhances the accuracy and reliability of the resulting models.
"""
def get_scenario_all_desc(self) -> str:
return f"""Background of the scenario:
@@ -72,3 +73,10 @@ The output of your code should be in the format:
The simulator user can use to test your model:
{self.simulator}
"""
def get_experiment_setting(self) -> str:
return """
| Dataset 📊 | Model 🤖 | Factors 🌟 | Data Split 🧮 |
|---------|----------|---------------|-------------------------------------------------|
| CSI300 | RDAgent-dev | 20 factors (Alpha158) | Train: 2008-01-01 to 2014-12-31 <br> Valid: 2015-01-01 to 2016-12-31 <br> Test &nbsp;: 2017-01-01 to 2020-08-01 |
"""