Tín hiệu giao dịch

Giao dịch Tài chính với Python

Chelsea Yang

Data Science Instructor

Tín hiệu giao dịch là gì?

  • Kích hoạt vị thế long/short dựa trên tiêu chí định sẵn
  • Có thể xây dựng từ:

    • Một chỉ báo kỹ thuật
    • Nhiều chỉ báo kỹ thuật
    • Kết hợp dữ liệu thị trường và chỉ báo
  • Thường dùng trong giao dịch thuật toán

Giao dịch Tài chính với Python

Ví dụ tín hiệu

  • Tín hiệu: Giá > SMA (mua/long khi giá vượt SMA)

Biểu đồ gợi ý điểm vào lệnh theo tín hiệu.

Giao dịch Tài chính với Python

Cách triển khai tín hiệu trong bt

  1. Lấy dữ liệu và tính chỉ báo
  2. Định nghĩa chiến lược theo tín hiệu
    • bt.algos.SelectWhere()
    • bt.algos.WeighTarget()
  3. Tạo và chạy backtest
  4. Xem lại kết quả backtest
Giao dịch Tài chính với Python

Xây dựng tín hiệu

# Get price data by the stock ticker
price_data = bt.get('aapl', start='2019-11-1', end='2020-12-1')
# Calculate SMA
sma = price_data.rolling(20).mean()

Ngoài ra, có thể dùng talib để tính chỉ báo:

# Calculate SMA
import talib
sma =  talib.SMA(price_data['Close'], timeperiod=20)
Giao dịch Tài chính với Python

Định nghĩa chiến lược theo tín hiệu

# Define the signal-based strategy
bt_strategy = bt.Strategy('AboveEMA',
                          [bt.algos.SelectWhere(price_data > sma),
                           bt.algos.WeighEqually(),
                           bt.algos.Rebalance()])
  • Đơn giản hóa, giả định:
    • Giao dịch một tài sản mỗi lần
    • Không có trượt giá hay phí hoa hồng
      • Trượt giá: chênh lệch giữa giá kỳ vọng và giá khớp lệnh
      • Hoa hồng: phí môi giới khi thực hiện lệnh
Giao dịch Tài chính với Python

Backtest chiến lược dựa trên tín hiệu

# Create the backtest and run it
bt_backtest = bt.Backtest(bt_strategy, price_data)
bt_result = bt.run(bt_backtest)
Giao dịch Tài chính với Python

Vẽ kết quả backtest

# Plot the backtest result
bt_result.plot(title='Backtest result')

Biểu đồ kết quả backtest

Giao dịch Tài chính với Python

Ayo berlatih!

Giao dịch Tài chính với Python

Preparing Video For Download...