iT邦幫忙

2024 iThome 鐵人賽

DAY 20
0

參考內容MacroHFT - Github

我檢查了這個專案,發現源專案是在Linux上開發且路徑設定可能有些問題,於是我做出了一些專案結構上的調整,並依據我調整的路徑結構,重寫了三個需要使用到的腳本內容:

  1. 先建立一個資料夾並進入該資料夾:
    mkdir MacroHFT
    cd MacroHFT
    
  2. 接著將專案克隆下來:
    git clone https://github.com/ZONG0004/MacroHFT.git
    
  3. 然後我寫了一個很簡單的 setup.py 放在專案根目錄下。
  4. MacroHFT 裡的 data 資料夾複製到外層資料夾中。
  5. 從專案提供的下載連結中取得原始數據 ETHUSDT-20241003T120716Z-001.zip,並將檔案放置到 data 資料夾下,解壓縮後命名為 ETHUSDT
  6. 在專案根目錄執行以下指令來安裝 MacroHFT 模組:
    pip install -e .
    
  7. 由於我在 Windows 系統且只有單顯卡,因此我重新編寫了 readme.md 中提到的幾個腳本,將其改寫為 .bat 檔案。最終產生了三個腳本:decomposition.batlow_level.bathigh_level.bat

最後,我的資料夾結構如下:

MacroHFT (專案根目錄)
 |--- .vscode
       |--- launch.json
 |--- setup.py
 |--- data
       |--- ETHUSDT-20241003T120716Z-001.zip
       |--- ETHUSDT
       |--- feature_list
 |--- decomposition.bat
 |--- low_level.bat
 |--- high_level.bat
 |--- MacroHFT
       |--- .git
       |--- data
       |--- env
       |--- model
       |...... (其他專案內容)

接下來,根據 readme.md 中的說明,依序執行以下三個步驟:

  1. 執行數據前處理:

    decomposition.bat
    
  2. 執行 low_level 訓練:

    low_level.bat
    
  3. 執行 high_level 訓練:

    high_level.bat
    

decomposition.bat 的內容如下:

python -u ./MacroHFT/preprocess/decomposition.py

low_level.bat 則是逐一執行每個訓練指令,適合單顯卡使用:

@echo off
mkdir .\logs\low_level\ETHUSDT 2>nul

python -u ./MacroHFT/RL/agent/low_level.py --alpha 1 --clf slope --dataset ETHUSDT --device cuda:0 --label label_1 > .\logs\low_level\ETHUSDT\slope_1.log 2>&1

python -u ./MacroHFT/RL/agent/low_level.py --alpha 4 --clf slope --dataset ETHUSDT --device cuda:0 --label label_2 > .\logs\low_level\ETHUSDT\slope_2.log 2>&1

python -u ./MacroHFT/RL/agent/low_level.py --alpha 0 --clf slope --dataset ETHUSDT --device cuda:0 --label label_3 > .\logs\low_level\ETHUSDT\slope_3.log 2>&1

python -u ./MacroHFT/RL/agent/low_level.py --alpha 4 --clf vol --dataset ETHUSDT --device cuda:0 --label label_1 > .\logs\low_level\ETHUSDT\vol_1.log 2>&1

python -u ./MacroHFT/RL/agent/low_level.py --alpha 1 --clf vol --dataset ETHUSDT --device cuda:0 --label label_2 > .\logs\low_level\ETHUSDT\vol_2.log 2>&1

python -u ./MacroHFT/RL/agent/low_level.py --alpha 1 --clf vol --dataset ETHUSDT --device cuda:0 --label label_3 > .\logs\low_level\ETHUSDT\vol_3.log 2>&1

high_level.bat 的內容如下:

@echo off
mkdir .\logs\high_level 2>nul

python -u ./MacroHFT/RL/agent/high_level.py --dataset ETHUSDT --device cuda:0 > ./logs/high_level/ETHUSDT.log 2>&1

此外,我在根目錄撰寫了以下 setup.py 來定義專案:

from setuptools import setup, find_packages
import pathlib

ROOT = pathlib.Path(__file__).parent.resolve()

long_description = "Hello, world!"

setup(
    name="MacroHFT",
    version="0.1.0",
    description="A high-frequency trading project using reinforcement learning",
    long_description=long_description,
    long_description_content_type="text/markdown",
    url="https://github.com/yourusername/MacroHFT",
    author="Your Name",
    author_email="your.email@example.com",
    classifiers=[
        "Development Status :: 3 - Alpha",
        "Intended Audience :: Developers",
        "Topic :: Software Development :: Build Tools",
        "License :: OSI Approved :: MIT License",
        "Programming Language :: Python :: 3",
        "Programming Language :: Python :: 3.7",
        "Programming Language :: Python :: 3.8",
        "Programming Language :: Python :: 3.9",
        "Programming Language :: Python :: 3.10",
    ],
    keywords="high-frequency trading, reinforcement learning, finance",
    packages=find_packages(),
    python_requires=">=3.7, <4",
    install_requires=[
        "numpy",
        "gym",
        "pandas",
        "torch",
    ],
    extras_require={
        "dev": ["check-manifest"],
        "test": ["coverage"],
    },
    entry_points={
        "console_scripts": [
            "sample=sample:main",
        ],
    },
    project_urls={
        "Bug Reports": "https://github.com/yourusername/MacroHFT/issues",
        "Source": "https://github.com/yourusername/MacroHFT",
    },
)

上一篇
Day 19 - 改變方向找尋能支持更高頻交易的研究
下一篇
Day 21 - MacroHFT Low Level Agent訓練Debug中
系列文
自動交易程式探索30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言