Skip to content

Files

Latest commit

 

History

History

utils

🐳 Run Docker & Qlib


📄 Description

This guide explains how to run the Qlib Docker test file located at test/utils/test_env.py in the RD-Agent repository.


🚀 Running Instructions

1. Install the required Python libraries

  • Ensure that the docker Python library is installed:
    pip install docker

2. Run the test script

  • Execute the test script to verify the Docker environment setup:
    python test/utils/test_env.py

Troubleshooting

  • PermissionError: [Errno 13] Permission denied.

    This error occurs when the current user does not have the necessary permissions to access the Docker socket. To resolve this issue, follow these steps:

  1. Add the current user to the docker group Docker requires root or docker group user permissions to access the Docker socket. Add the current user to the docker group:

    sudo usermod -aG docker $USER
  2. Refresh group changes To apply the group changes, log out and log back in, or use the following command:

    newgrp docker
  3. Verify Docker access Run the following command to ensure that Docker can be accessed:

    docker run hello-world
  4. Rerun the test script After completing these steps, rerun the test script:

    python test/utils/test_env.py

🛠️ Detailed Qlib Docker Function Framework

Here, we provide an overview of the specific functions within the Qlib Docker framework, their purposes, and examples of how to call them.

QTDockerEnv Class in env.py

The QTDockerEnv class is responsible for setting up and running Docker environments for Qlib experiments.

Methods:

  1. prepare()

    • Purpose: Prepares the Docker environment for running experiments. This includes building the Docker image if necessary.
    • Example:
      qtde = QTDockerEnv()
      qtde.prepare()
  2. run(local_path: str, entry: str) -> str

    • Purpose: Runs a specified entry point (e.g., a configuration file) in the prepared Docker environment.
    • Parameters:
      • local_path: Path to the local directory to mount into the Docker container.
      • entry: Command or entry point to run inside the Docker container.
    • Returns: The stdout output from the Docker container.
    • Example:
      result = qtde.run(local_path="/path/to/env_tpl", entry="qrun conf.yaml")

📊 Expected Output

Upon successful execution, the test script will produce analysis results of benchmark returns and various risk metrics. The expected output should be similar to:

'The following are analysis results of benchmark return (1 day).'
risk
mean               0.000477
std                0.012295
annualized_return  0.113561
information_ratio  0.598699
max_drawdown      -0.370479

'The following are analysis results of the excess return without cost (1 day).'
risk
mean               0.000530
std                0.005718
annualized_return  0.126029
information_ratio  1.428574
max_drawdown      -0.072310

'The following are analysis results of the excess return with cost (1 day).'
risk
mean               0.000339
std                0.005717
annualized_return  0.080654
information_ratio  0.914486
max_drawdown      -0.086083

'The following are analysis results of indicators (1 day).'
value
ffr    1.0
pa     0.0
pos    0.0

By following these steps and using the provided functions, you should be able to run the Qlib Docker tests and obtain the expected analysis results.