Торгові сигнали

Фінансовий трейдинг у Python

Chelsea Yang

Data Science Instructor

Що таке торгові сигнали?

  • Тригери для відкриття лонгу або шорту за фінансовими активами за наперед заданими критеріями
  • Можна побудувати за допомогою:

    • Одного технічного індикатора
    • Кількох технічних індикаторів
    • Поєднання ринкових даних та індикаторів
  • Часто використовують в алгоритмічній торгівлі

Фінансовий трейдинг у Python

Приклад сигналу

  • Сигнал: Price > SMA (лонг, коли ціна піднімається вище SMA)

Графік сигналу, що підказує точки входу.

Фінансовий трейдинг у Python

Як реалізувати сигнали в bt

  1. Отримайте дані та обчисліть індикатори
  2. Визначте стратегію на основі сигналу
    • bt.algos.SelectWhere()
    • bt.algos.WeighTarget()
  3. Створіть і запустіть бектест
  4. Перегляньте результат бектесту
Фінансовий трейдинг у Python

Побудова сигналу

# 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()

Alternatively, use talib to calculate the indicator:

# Calculate SMA
import talib
sma =  talib.SMA(price_data['Close'], timeperiod=20)
Фінансовий трейдинг у Python

Визначення стратегії на основі сигналу

# Define the signal-based strategy
bt_strategy = bt.Strategy('AboveEMA',
                          [bt.algos.SelectWhere(price_data > sma),
                           bt.algos.WeighEqually(),
                           bt.algos.Rebalance()])
  • Для простоти припустімо:
    • Торгуємо одним активом за раз
    • Без проскальзування та комісій
      • Проскальзування: різниця між очікуваною ціною угоди та фактичною ціною виконання
      • Комісія: плата брокера за виконання угоди
Фінансовий трейдинг у Python

Бектест стратегії на основі сигналу

# Create the backtest and run it
bt_backtest = bt.Backtest(bt_strategy, price_data)
bt_result = bt.run(bt_backtest)
Фінансовий трейдинг у Python

Візуалізація результату бектесту

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

Графік результату бектесту

Фінансовий трейдинг у Python

Давайте потренуємось!

Фінансовий трейдинг у Python

Preparing Video For Download...