Арилжаа

Зах зээл

Платформ

Хамтрах

Урамшуулал

Танд

Python дээр квант трейдинг стратеги боловсруулах алхамууд

2025-06-16

Форекс зах зээл дээр амжилт олох нь зөвхөн мэдрэмж, туршлагаар хэмжигддэг үе өнгөрч байна. Өгөгдөлд суурилсан, алгоритм хөтөлсөн шийдвэр гаргалт нь шинэ үеийн арилжаачдын ялгагдах чадвар болон хувирчээ. Ингэснээр мэргэжлийн түвшний трейдерүүд, проп фирмийн туршилтанд оролцогчид квант трейдинг буюу quantitative trading-ийг анхаарч эхэлж байна.

Python дээр квант трейдинг стратеги боловсруулах алхамууд

Квант трейдинг нь арилжааны уламжлалт сэтгэлзүйн болон субъектив шийдвэр гаргалтыг халж, математик, статистик загварчлал, алгоритм дээр суурилсан аргаар зах зээлийг шинжлэх ухаанчаар харж, тогтвортой систем үүсгэх боломжийг олгодог. Энэ нь:

  • Найдвартай, дахин давтагдах стратеги
  • Эрсдэл хэмжигддэг, хянагддаг систем
  • Зах зээлтэй "мэдрэмж"-ээр биш, логик болон өгөгдлөөр харьцах аргачлал

гэсэн гурван үндсэн философийг агуулдаг.

1. Квант трейдинг гэж юу вэ?

1.1 Тодорхойлолт

Квант трейдинг (Quantitative Trading) нь:

Статистик, математик загварчлал болон алгоритм ашиглан өгөгдлийн суурьт суурилсан арилжааны стратеги боловсруулах аргачлал юм.

Энгийнээр хэлбэл, “сэтгэлзүй, зөн совин”-оос ангид, тооцоонд суурилсан шийдвэр гаргах систем юм.

1.2 Яагаад квант трейдинг вэ?

✅ Объектив байдал
✅ Автоматжуулалт
✅ Системтэй туршилт хийх боломж
✅ Backtesting ба Optimization
✅ Хүний алдааг багасгах

1.3 Форекс дээр хэрэглэх боломж

Форекс зах зээл өндөр урсгалтай, дата сайтай, 24 цаг нээлттэй байдаг тул квант стратеги боловсруулахад нэн тохиромжтой. Python дээр API, дата нийлүүлэгч, автоматжуулсан системүүдтэй холбогдон бүрэн автомат арилжаа хийх боломжтой.

2. Python хэл дээр стратеги боловсруулах үндсэн алхамууд

2.1 Алхам 1: Зорилго тодорхойлох

Та ямар төрлийн стратеги бичих гэж байна вэ?

  • Trend following?
  • Mean reversion?
  • News-based?
  • Arbitrage?
  • Machine Learning суурьтай?

Тодорхой зорилгоо (зорилтот валютын хос, таймфрейм, эрсдэлийн хүлцэл г.м) эхлээд тодорхойл.

2.2 Алхам 2: Орчныг тохируулах

✅ Python суулгах
✅ IDE: Jupyter Notebook / VSCode
✅ Номын сан суулгах:

pip install pandas numpy matplotlib seaborn yfinance ta bt backtrader

  • pandas, numpy – өгөгдөл боловсруулах
  • matplotlib, seaborn – график, визуал
  • ta / talib – техник индикатор
  • bt, backtrader – backtest орчин
  • yfinance / forex-python / MetaTrader5 – дата татах

3. Өгөгдөл бэлтгэх

3.1 Валютын хос сонгох

Жишээ: EUR/USD, GBP/USD, USD/JPY гэх мэт

import yfinance as yf

data = yf.download("EURUSD=X", start="2022-01-01", end="2023-12-31", interval="1d")
data.head()

⚠️ EURUSD=X гэх мэт тэмдэглэгээ нь Yahoo Finance дээр байдаг форекс симбол юм.

3.2 Техник үзүүлэлтүүд нэмэх

import ta

data['rsi'] = ta.momentum.RSIIndicator(close=data['Close']).rsi()
data['ema_20'] = ta.trend.EMAIndicator(close=data['Close'], window=20).ema_indicator()
data['ema_50'] = ta.trend.EMAIndicator(close=data['Close'], window=50).ema_indicator()

RSI, EMA зэрэг индикаторуудыг pandas dataframe дээр амархан нэмэх боломжтой.

4. Стратеги боловсруулах

Жишээ стратеги: RSI + EMA crossover

4.1 Оролтын нөхцөл

  • RSI < 30
  • EMA20 > EMA50
  • BUY

4.2 Гарах нөхцөл

  • RSI > 70
  • EMA20 < EMA50
  • SELL

def generate_signals(df):
df['signal'] = 0
df.loc[(df['rsi'] < 30) & (df['ema_20'] > df['ema_50']), 'signal'] = 1
df.loc[(df['rsi'] > 70) & (df['ema_20'] < df['ema_50']), 'signal'] = -1
return df

5. Backtesting хийх

5.1 Ердийн logic test

initial_balance = 10000
balance = initial_balance
position = 0

for i in range(1, len(data)):
if data['signal'][i] == 1 and position == 0:
entry_price = data['Close'][i]
position = balance / entry_price
elif data['signal'][i] == -1 and position != 0:
exit_price = data['Close'][i]
balance = position * exit_price
position = 0

5.2 Backtrader ашиглах

import backtrader as bt

class MyStrategy(bt.Strategy):
def __init__(self):
self.rsi = bt.indicators.RSI_SMA(self.data.close, period=14)
self.ema20 = bt.indicators.EMA(self.data.close, period=20)
self.ema50 = bt.indicators.EMA(self.data.close, period=50)

def next(self):
if self.rsi < 30 and self.ema20 > self.ema50:
self.buy()
elif self.rsi > 70 and self.ema20 < self.ema50:
self.sell()

# Test running
cerebro = bt.Cerebro()
data_feed = bt.feeds.PandasData(dataname=data)
cerebro.adddata(data_feed)
cerebro.addstrategy(MyStrategy)
cerebro.run()
cerebro.plot()

6. Гүйцэтгэлийн хэмжүүр ба үнэлгээ

  • Total Return
  • Max Drawdown
  • Sharpe Ratio
  • Win Rate / Loss Rate
  • Profit Factor

Python дээр эдгээрийг тооцох pandas dataframe + matplotlib ашиглан боломжтой.

# Үндсэн өгөгдөл дээр ашигтай/алдагдалтай арилжааны тоо гаргаж үзэх
trades = result['balance'].pct_change()
sharpe = trades.mean() / trades.std() * (252**0.5)

7. Оптимизаци ба тюнинг

Жишээ: RSI-ийн порог утгыг 30 → 25–35 хооронд, EMA-ийн цонхыг 20 → 15–25 хооронд өөрчилж хамгийн сайн тохиргоог олох.

import itertools

rsi_values = [25, 30, 35]
ema_values = [15, 20, 25]

for rsi_thres in rsi_values:
for ema_win in ema_values:
# Индикатор болон дохионы утгуудыг өөрчлөн test хийх
...

8. Реал тайм хэрэгжүүлэлт

Python → MetaTrader 5 → Бодит зах зээлтэй API холболт

import MetaTrader5 as mt5

mt5.initialize()
account_info = mt5.account_info()
print(account_info._asdict())

Та бодит арилжаанд хөрвүүлэх бол сэтгэлзүй, execution delay, slippage зэрэг хүчин зүйлсийг давхар тооцох ёстой.

9. Эрсдэлийн удирдлага ба капиталын хуваарилалт

Квант стратеги нь зөвхөн сигнал биш, мөн капиталын удирдлага дээр суурилна.

  • Position sizing = (Account equity × Risk%) / (SL in pips × Pip value)
  • Portfolio allocation (хамгийн сайн стратегид илүү капитал хуваарилах)
  • Stop-loss, take-profit, trailing stop

Python дээр эдгээрийг функц болгон бичиж автоматжуулна.

10. Зөвлөмжүүд

Гол санааны хураангуй

  • Python бол квант арилжаанд хүчирхэг хэрэгсэл
  • Стратеги боловсруулах нь өгөгдөл, индикатор, логик дээр тулгуурладаг
  • Backtesting, Optimization, Risk Management нь салшгүй хэсэг
  • API ашиглан бодит зах зээлтэй холбогдох бүрэн боломжтой

Python програмчлалын хэл нь квант арилжааны стратеги боловсруулахад маш хүчирхэг, уян хатан хэрэгсэл бөгөөд өгөгдөлд суурилсан шинжилгээ, техникийн индикаторууд болон логик нөхцлүүдийг ашиглан үр дүнтэй стратеги бүтээх боломжийг олгодог; үүнээс гадна аливаа стратегийн салшгүй хэсэг болох backtesting, optimization, эрсдэлийн удирдлагыг системтэйгээр гүйцэтгэх боломжтой бөгөөд Python ашиглан API-уудтай холбогдож, бодит зах зээл дээр стратегиа хэрэгжүүлэх бүрэн боломжтой юм.

Ижил төстэй блог