2025-06-20
MetaTrader (MT4/MT5) бол дэлхий даяар хамгийн өргөн хэрэглэгддэг арилжааны платформ бөгөөд автоматжуулсан арилжаа (automated trading) хийх боломжийг олгодог. Харин Python нь дата боловсруулалт, стратеги загварчлал, хиймэл оюун, алгоритм хөгжүүлэлт зэрэг хүчирхэг боломжуудтай орчин үеийн програмчлалын хэл юм.

Сүүлийн жилүүдэд MetaTrader нь Python API-г дэмжих болсон нь арилжаачдад MT-ийн захиалгын системийг Python-оор шууд хянах боломжийг нээсэн. Энэ нь зөвхөн стратеги боловсруулах бус — реал арилжаа гүйцэтгэх, өгөгдөл татах, backtest хийх, position хянах зэрэг бүх процессыг автоматжуулж чаддаг.
Энэхүү нийтлэлд бид дараах агуулгуудыг хамарна:
MetaTrader нь уламжлалт MQL4/MQL5 хэлээр автомат арилжаа бичдэг ч Python API нэмэгдсэнээр дараах давуу талууд үүсдэг:
MetaTrader 5 (MT5) нь Python API-г албан ёсоор дэмждэг. MT4 нь шууд Python дэмжихгүй тул ихэвчлэн MT5 дээр ажиллана.
pip install MetaTrader5
MetaTrader5 сан нь MetaQuotes компанийн гаргасан албан ёсны Python wrapper юм.
Дараа нь терминал нээж, дараах кодоор MetaTrader-тай холбогдоно:
import MetaTrader5 as mt5
# Terminal эхлүүлэлт
if not mt5.initialize():
print("MT5 Initialization failed:", mt5.last_error())
else:
print("MT5 connected")
Хэрэв холбоо амжилттай бол серверийн нэр, account info зэргийг авах боломжтой болно.
from datetime import datetime
rates = mt5.copy_rates_from("EURUSD", mt5.TIMEFRAME_H1, datetime(2024, 1, 1), 1000)
copy_rates_from нь цаг хугацааны дагуу ханшийн өгөгдлийг татаж авна. Мөн copy_ticks_from ашиглан real-time tick дата ч авч болно.
account_info = mt5.account_info()
print(account_info.balance, account_info.equity)
order = {
"action": mt5.TRADE_ACTION_DEAL,
"symbol": "EURUSD",
"volume": 0.1,
"type": mt5.ORDER_TYPE_BUY,
"price": mt5.symbol_info_tick("EURUSD").ask,
"deviation": 10,
"magic": 10001,
"comment": "Python order",
"type_time": mt5.ORDER_TIME_GTC,
"type_filling": mt5.ORDER_FILLING_IOC,
}
result = mt5.order_send(order)
print("Order Result:", result)
Захиалгын төрөл, үнийн түвшин, хэмжээ зэргийг кодоор дамжуулан удирдаж болдог.
positions = mt5.positions_get(symbol="EURUSD")
for pos in positions:
print(f"Position: {pos.volume} lots @ {pos.price_open}")
Жишээ нь: moving average crossover стратеги
import pandas as pd
# Ханшийн өгөгдлийг pandas датафрэймд хөрвүүлэх
data = pd.DataFrame(rates)
data['ma_fast'] = data['close'].rolling(10).mean()
data['ma_slow'] = data['close'].rolling(50).mean()
# Сигнал үүсгэх
if data['ma_fast'].iloc[-1] > data['ma_slow'].iloc[-1] and not current_position:
# Buy order execute
mt5.order_send({...})
Энэ зарчмыг backtest-д ч, real-time monitoring-д ч ашиглах боломжтой.
Python скриптийг schedule, time.sleep() ашиглан минут тутам, цаг тутамд дахин ажиллуулж болно.
import time
while True:
# өгөгдөл шалгах
# сигнал тооцох
# захиалга гүйцэтгэх
time.sleep(60) # 1 минут тутамд ажиллана
MT5 терминал гэнэт унтарвал Python скрипт тасалддаг. Үүнийг шалгах функц оруулах шаардлагатай.
Order send функц real execution цагтай зөрж болох тул захиалга баталгаажуулах шалгалт хийх хэрэгтэй.
Нэг арилжаа нээгдсэн эсэхийг шалгахгүйгээр дахин орж болзошгүй. Position-д суурилсан log бичих шаардлагатай.
MetaTrader-ийн Python API нь орчин үеийн дата шинжилгээ, автомат арилжаа, стратеги туршилт, машин сургалтын интеграцид хамгийн тохиромжтой сонголт болж байна. Ялангуяа Форекс арилжаачид MT5 платформ дээр дараах алхмаар automation хийж чадна:
Python API ашиглан та зөвхөн стратеги боловсруулж, туршиж зогсохгүй — шууд зах зээлтэй холбогдож, бодит арилжаанд амжилттай оролцох боломжтой.

2025-10-31
Volatility Clustering ба Risk Persistence: Хэлбэлзлийн үргэлжлэл ба стратегийн эрсдэл
Шинэ трейдерүүд “яаж их ашиг хийх вэ” гэж асуудаг бол, амжилттай трейдерүүд “хэрхэн удаан....

2025-10-30
Volatility-д тохирсон динамик Stop Loss арга
Хэрэв та SL-ээ volatility-д уялдуулж чадвал, таны стратеги илүү тогтвортой, бодлоготой....

2025-10-29
Swing болон Intraday арилжаан дахь SL/TP-ийн ялгаа
Эцэст нь, SL/TP-ийн үр ашиг нь таны position size, R:R харьцаа, ба туушатай байдалтай уялдсан байх....

2025-10-28
Leverage-to-Equity Ratio ашиглан динамик risk control хийх арга
Leverage-to-Equity Ratio (LER) нь арилжааны системд динамик risk control хэрэгжүүлэх хүчирхэг....

2025-10-27
R:R Dynamic Adjustment — Зах зээлийн хэлбэлзэлд нийцсэн эрсдэлийн харьцааг хэрхэн ашиглах вэ?
Форекс зах зээл байнга өөрчлөгдөж байдаг тул нэгэн хэвийн 1:2 R:R схем таныг хамгаалахгүй.....