Skip to Content

Xây Dựng Module Common trong Python cho Giao Dịch Tự Động

Xây dựng Common YFinance

Giới Thiệu

Trong giao dịch tự động, việc quản lý và tải dữ liệu tài chính từ các nguồn đáng tin cậy là rất quan trọng. Bài viết này hướng dẫn cách xây dựng module Common trong Python giúp tải dữ liệu từ Yahoo Finance (YFinance) để sử dụng trong các bot giao dịch tự động.


1. Cấu Trúc Module Common

Chúng ta sẽ tạo một module Python với tên Common để có thể sử dụng trong nhiều dự án giao dịch tự động khác nhau.


Cấu trúc thư mục:

/TradingBotProject

│── /Common

│   ├── __init__.py

│   ├── CommonYFinance.py

│── main.py


2. Nội Dung Của CommonYFinance.py

Tạo file CommonYFinance.py với nội dung sau:


import pandas as pd

import yfinance as yf


class CommonYFinance:

    @staticmethod

    def loaddataYFinance(symbol, from_date, to_date, interval):

        """

        Tải dữ liệu lịch sử của một mã chứng khoán từ Yahoo Finance.

       

        Parameters:

        - symbol: Mã chứng khoán (VD: 'VCB.VN')

        - from_date: Ngày bắt đầu (YYYY-MM-DD)

        - to_date: Ngày kết thúc (YYYY-MM-DD)

        - interval: Khung thời gian ('1d', '1h', v.v.)

       

        Returns:

        - DataFrame chứa dữ liệu giá

        """

        data = yf.download(symbol, start=from_date, end=to_date, interval=interval, auto_adjust=False)

        data.reset_index(inplace=True)

        data = data.rename(columns={'Date': 'Datetime'})

        data.columns = data.columns.droplevel(1)  # Xóa cấp độ dư thừa nếu có

        data.columns.name = None

        return data


    @staticmethod

    def Hello():

        """Hàm test đơn giản."""

        print('Hello')

        return '1'


3. Cách Sử Dụng Module Common

Trong file main.py, chúng ta có thể import module CommonYFinance và tải dữ liệu như sau:


import sys

sys.path.append("../Common")  # Thêm thư mục Common vào đường dẫn

from CommonYFinance import CommonYFinance


# Cấu hình thông số

symbol = 'VCB.VN'

from_date = '2023-11-01'

to_date = '2023-11-30'

interval = '1d'


# Tải dữ liệu

data = CommonYFinance.loaddataYFinance(symbol, from_date, to_date, interval)

print(data.head())


4. Tổng Kết

Module Common giúp chuẩn hóa quá trình tải dữ liệu tài chính, hỗ trợ phát triển bot giao dịch tự động hiệu quả hơn. Bạn có thể mở rộng module này để tích hợp thêm nhiều nguồn dữ liệu hoặc xử lý chuyên sâu hơn!


🚀 Hãy bắt tay vào xây dựng bot giao dịch thông minh của bạn ngay hôm nay!

/* Tối ưu font, khoảng cách và màu chủ đạo */ body { font-family: 'Inter', sans-serif; color: #2e3a59; } h1, h2, h3 { color: #2a7a4d; /* màu xanh giống Docusaurus */ font-weight: 700; } a { color: #2a7a4d; text-decoration: none; } a:hover { text-decoration: underline; } /* Bo tròn và đổ bóng cho khối nội dung */ .card, .oe_structure { border-radius: 12px; box-shadow: 0 4px 12px rgba(0,0,0,0.05); padding: 1.5rem; }