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 ашиглан та зөвхөн стратеги боловсруулж, туршиж зогсохгүй — шууд зах зээлтэй холбогдож, бодит арилжаанд амжилттай оролцох боломжтой.

2026-04-13
Stop loss-ыг хаана байрлуулах ёстой вэ?
Stop-loss нь форексийн арилжааны хамгийн их яригддаг, хамгийн бага ойлгогддог хэрэгслийн нэг юм....

2026-04-10
Ашигтай арилжааны систем хэрхэн бүтээх вэ? Scalping vs swing vs day trading
Ашигтай арилжааны систем нь индикатор, хэрэгсэл биш, энэ нь шийдвэр гаргалтыг бүтэцжүүлсэн тогтолцоо....

2026-04-09
Overtrading гэж юу вэ? Хэрхэн түүнийг зогсоох вэ?
Мэргэжлийн арилжаачин болох гэдэг нь олон арилжаа хийх биш, харин тохиромжтой арилжаа хийх чадвар....

2026-04-07
Хөшүүрэг (leverage) гэж юу вэ? Давуу тал ба Эрсдэл
Хөшүүрэг нь таны данснаас өөр хэмжээний позиц барих боломжийг олгодог брокерийн нөхцөл бөгөөд 1:100....

2026-04-06
Трендийг хэрхэн зөв тодорхойлох вэ?
Тренд гэдэг нь зах зээлийн ерөнхий чиглэл юм. Гэхдээ энэ тодорхойлолт дангаараа хангалтгүй.....