Автоматжуулсан арилжаа нь forex зах зээлийг гараар график шинжлэх, өөрийн үзэмжээр шийдвэр гаргах салбараас алгоритмаар ихэнх гүйлгээг гүйцэтгэдэг салбар болгон өөрчилсөн. Expert Advisor буюу EA эсвэл trading bot гэж нэрлэгддэг программууд нь MetaTrader 4, MetaTrader 5 зэрэг арилжааны платформ дотор ажиллаж, үнийн хөдөлгөөнийг автоматаар хянаж, нөхцөл байдлыг үнэлж, хүний оролцоогүйгээр арилжаа хийдэг. MetaQuotes компанийн мэдээлснээр дэлхий даяар сая сая трейдерүүд стратегиа автоматжуулахын тулд Expert Advisor ашигладаг бөгөөд MQL5 community-д 10,000 гаруй нийтэд нээлттэй арилжааны программ байдаг. EA бүтээж, турших, ашиглахыг сурах нь арилжааны тууштай байдал, хурд, өргөжих чадварыг эрэлхийлж буй аливаа ноцтой forex трейдерт чухал ур чадвар болжээ.
Энэ хичээлд Expert Advisor-ийн бүтэц, MQL5 програмчлалын хэл, хөгжүүлэлт болон оновчлолын шилдэг туршлага, ашигтай автоматжуулсан системүүдийг зардалтай бүтэлгүйтлээс ялгах эрсдэлийн удирдлагын чухал асуудлуудыг авч үзнэ.
Expert Advisor-ийн бүтэц
Expert Advisor бүр MetaTrader платформоор удирддаг бүтэцтэй амьдралын мөчлөгийг дагадаг. Ганц ч мөр код бичихээс өмнө энэ бүтцийг ойлгох нь үндсэн чухал юм.
Эхлүүлэлт (OnInit): EA-г график руу анх хавсаргах эсвэл платформ дахин эхлэхэд OnInit() функц ажилладаг. Энд тохиргооны параметрүүдийг ачаалах, оролтыг баталгаажуулах, массивуудыг эхлүүлэх, EA-ийн ажиллах хугацаанд шаардлагатай аливаа нөөцийг бэлтгэдэг. Хэрэв эхлүүлэлт амжилтгүй болвол EA буруу тохиргоогоор ажиллахаас сэргийлж INIT_FAILED буцаана.
Tick боловсруулалт (OnTick): OnTick() функц нь аливаа EA-ийн гол цөм юм. EA хавсаргасан хэрэгсэлд шинэ үнийн санал (tick) ирэх бүрд энэ функц ажилладаг. Энэ функц дотор арилжааны нөхцөлүүдийг үнэлж, орох болон гарах дохиог шалгаж, нээлттэй позицуудыг удирдаж, захиалга гүйцэтгэдэг. Tick-ийн давтамж янз бүр байдаг тул (Лондоны сессийн үед гол хосууд дээр секундэд хэд хэдэн tick-ээс эхлээд тайван үеийн exotic хосуудад хэдэн минут болдог) таны логик tick хооронд үр ашигтай бөгөөд статусгүй байх ёстой.
Дуусгавар болгох (OnDeinit): EA-г графикаас хасах эсвэл платформ унтрахад OnDeinit() ажилладаг. Энэ функц нь цэвэрлэгээ хариуцдаг: файлын handle-уудыг чөлөөлөх, төлөвийн өгөгдлийг хадгалах, график объектуудыг устгах, эцсийн бүртгэл хийх.
MQL5 дээрх хялбаршуулсан EA бүтэц иймэрхүү харагдана:
// Input parameters
input double LotSize = 0.1;
input int StopLossPips = 50;
input int TakeProfitPips = 100;
input int MAPeriod = 20;
// Global variables
int maHandle;
int OnInit() {
maHandle = iMA(_Symbol, PERIOD_H1, MAPeriod, 0, MODE_SMA, PRICE_CLOSE);
if (maHandle == INVALID_HANDLE) return INIT_FAILED;
return INIT_SUCCEEDED;
}
void OnTick() {
double maValue[];
CopyBuffer(maHandle, 0, 0, 2, maValue);
double currentPrice = SymbolInfoDouble(_Symbol, SYMBOL_BID);
// Simple logic: Buy when price crosses above MA
if (currentPrice > maValue[0] && previousPrice <= maValue[1]) {
// Execute buy order with stop loss and take profit
}
}
void OnDeinit(const int reason) {
IndicatorRelease(maHandle);
}
Expert Advisor-ийн төрлүүд
EA-ууд нарийн төвөгтэй байдал болон зорилгын хувьд өргөн хүрээтэй. Эдгээр ангиллыг ойлгох нь таны арилжааны зорилгод тохирсон аргыг сонгоход тусална.
Trend-Following EA-ууд нь зах зээлийн бий болсон чиг хандлагын чиглэлд арилжаа хийдэг. Эдгээр нь ерөнхийдөө хөдөлгөөнт дундаж, ADX эсвэл channel breakout ашиглан чиг хандлагын чиглэлийг тодорхойлж, түүний дагуу позиц нээдэг. Эдгээр системүүд чиг хандлагатай зах зээлд сайн ажилладаг боловч ranging буюу тогтворгүй нөхцөлд ихээхэн drawdown үүсгэж болно.
Mean-Reversion EA-ууд нь үнэ статистик дунджаас хазайсны дараа түүн рүү буцаж ирдэг зарчмаар ажилладаг. Эдгээр нь хэт худалдан авсан болон хэт зарсан нөхцлийг тодорхойлохын тулд Bollinger Bands, RSI-ийн хэт утга эсвэл стандарт хазайлтын сувгуудыг ашигладаг. Эдгээр системүүд range-bound зах зээлд сайн ажилладаг боловч хүчтэй trend үед гарч буй хөдөлгөөний эсрэг дахин дахин арилжаа хийснээр ноцтой алдагдалд орж болно.
Scalping EA-ууд нь жижиг үнийн хөдөлгөөнд чиглэсэн их тооны арилжаа хийдэг бөгөөд нэг арилжаанд ихэвчлэн хэдхэн pip-ийн ашиг олдог. Эдгээр нь маш нарийн spread, хурдан гүйцэтгэл шаарддаг бөгөөд ихэвчлэн хамгийн бага хугацааны хүрээнд (M1 эсвэл tick chart) ажилладаг. Scalping EA-ууд гүйцэтгэлийн хурд болон брокерийн нөхцөлд онцгой мэдрэмтгий.
Grid EA-ууд нь одоогийн үнээс дээш, доош урьдчилан тодорхойлсон үнийн интервалаар олон захиалга байрлуулж, хүлээгдэж буй захиалгуудын grid үүсгэдэг. Эдгээр нь тогтмол жижиг ашиг олж болох ч grid системүүд нь хүчтэй чиглэлтэй хөдөлгөөний үед ихээхэн эрсдэлтэй, учир нь нээлттэй позицууд трейдерийн эсрэг хурдан хуримтлагдаж болно.
News-Trading EA-ууд нь эдийн засгийн өгөгдлийн мэдээний эргэн тойрон дахь volatility-ийг ашиглахыг оролддог. Эдгээр нь ихэвчлэн томоохон мэдэгдлийн өмнө straddle захиалгууд (buy болон sell stop хоёулаа) байрлуулж, үүссэн үнийн огцом өсөлтөөс ашигтай арилжаа идэвхжүүлэхийг найддаг.
Анхны EA-аа бүтээх, Практик арга
Нарийн төвөгтэй олон индикаторт системд шумбахаас өмнө турших, давтан боловсруулах боломжтой энгийн, тодорхой тодорхойлсон стратегиас эхэл.
Алхам 1: Дүрмээ нарийвчлан тодорхойл. EA нь тодорхойгүй байдлыг тайлбарлаж чадахгүй. Нөхцөл бүр математик эсвэл логик мэдэгдэл хэлбэрээр илэрхийлэгдэх ёстой. "Зах зээл bullish харагдаж байхад худалдаж ав" гэдэг нь дүрэм биш. "H1 график дээр 20 үеийн SMA 50 үеийн SMA-г дээшээ гарч, RSI(14) 70-аас доогуур байхад худалдаж ав" гэдэг нь EA гүйцэтгэж чадах дүрэм юм.
Алхам 2: Логикийг код болго. MQL5 (эсвэл MetaTrader 4-т MQL4) ашиглан дүрмүүдээ код болгон хөрвүүл. MQL5 нь зах зээлийн өгөгдөлд хандах, захиалга удирдах, техникийн индикатор тооцоолох суулгасан функцүүдтэй C++ төстэй хэл юм. MetaQuotes-ийн MQL5 Reference баримтжуулалт нь бүх боломжит функц, ангиудын эрх бүхий эх сурвалж юм.
Алхам 3: Сайтар backtest хий. EA-аа Strategy Tester-ээр хамгийн багадаа 5-10 жилийн түүхэн өгөгдөл дээр туршаарай. Хамгийн нарийвчлалтай үр дүнд "Every tick based on real ticks" горимыг ашигла. Түүхэн өгөгдлийнхөө чанарт анхаарал хандуулаарай - цоорхой, дутуу tick, буруу spread утгууд нь backtest-ийн үр дүнг төөрөгдүүлж болно.
Алхам 4: Үр дүнг шүүмжлэлтэй шинжил. Үнэлэх гол хэмжүүрүүд:
- Цэвэр ашиг: Туршилтын хугацаанд нийт ашгаас нийт алдагдлыг хассан дүн.
- Profit Factor: Нийт ашгийг нийт алдагдалд хуваасан харьцаа. 1.5-аас дээш утгуудыг ерөнхийдөө хүлээн зөвшөөрөгддөг гэж үздэг.
- Хамгийн их Drawdown: Өөрийн хөрөнгийн оргилоос хамгийн доод цэг хүртэлх хамгийн их уналт. 20-30%-иас хэтэрсэн drawdown нь стратегийн бодит байдлын талаар санаа зовнил төрүүлэх ёстой.
- Sharpe Ratio: Эрсдэлд тохируулсан өгөөжийн хэмжүүр. Өндөр утгууд нь илүү сайн эрсдэлд тохируулсан гүйцэтгэлийг илэрхийлнэ.
- Нийт арилжаа: Статистикийн хувьд ач холбогдолтой түүврийн хэмжээг баталгаажуул - найдвартай дүгнэлт хийхэд хамгийн багадаа 200-300 арилжаа шаардлагатай.
Алхам 5: Демо дээр forward test хий. Жинхэнэ капитал оруулахаас өмнө EA-г демо данс дээр бодит цаг хугацаанд хамгийн багадаа 2-3 сар ажиллуул. Энэ forward-testing үе шат нь slippage, requote, холболтын тасалдал, бодит цагийн spread хэлбэлзлийн нөлөө зэрэг backtest илрүүлж чадахгүй асуудлуудыг илчилдэг.
Оновчлол, Тэнцвэрийг олох
MetaTrader Strategy Tester нь мянга мянган параметрийн хослолыг давтах хүчирхэг оновчлолын хөдөлгүүрийг агуулдаг. Оновчлол нь стратегийг нарийсгахад үнэ цэнэтэй боловч ноцтой аюул дагуулдаг: curve-fitting.
Curve-fitting (мөн over-optimization гэж нэрлэдэг) нь параметрүүдийг түүхэн өгөгдөлд маш нарийн оновчилсноос EA backtest-д гайхалтай ажилладаг боловч амьд арилжаанд бүрэн бүтэлгүйтдэг үед үүсдэг. Систем нь үнэхээр таамаглах чадвартай харилцаа холбоог тодорхойлохын оронд өнгөрсөн хэв маягийг үндсэндээ цээжилсэн байдаг.
Curve-fitting эрсдэлийг бууруулахын тулд:
- Out-of-sample тест ашигла. Түүхэн өгөгдлөө хоёр хэсэгт хуваа. Эхний 70% дээр (in-sample) оновчлол хийж, үлдсэн 30% дээр (out-of-sample) баталгаажуул. Хэрэв out-of-sample өгөгдөл дээр гүйцэтгэл эрс муудвал over-optimization магадлалтай.
- Оновчилсон параметрийн тоог хязгаарла. Нэгэн зэрэг олон параметр оновчлох тусам curve-fitting-ийн эрсдэл өндөр болно. Бат бөх стратеги нь зөвхөн нэг тодорхой хослол биш параметрийн утгуудын боломжийн хүрээнд ажиллах ёстой.
- Walk-forward optimization ашигла. Энэ дэвшилтэт техник нь түүхэн өгөгдлийн гулсах цонхон дээр давтан оновчлол хийж, дараагийн хугацаанд турших явдал юм. Энэ нь зах зээлийн өөрчлөгдөж буй нөхцөлд дасан зохицохын хэрээр EA бодит цаг хугацаанд хэрхэн ажиллахыг илүү ойролцоогоор загварчилдаг.
- Олон валютын хос, хугацааны хүрээнд турш. Үнэхээр бат бөх стратеги нь зөвхөн зориулж бүтээгдсэн нэг хэрэгсэл дээр биш олон хэрэгсэл дээр эерэг хүлээлт харуулах ёстой.
Автоматжуулсан арилжаанд эрсдэлийн удирдлага
Автоматжуулсан системүүд нь гар арилжаачид тулгардаггүй өвөрмөц эрсдэлүүдийг нэвтрүүлдэг. Бат бөх эрсдэлийн удирдлагыг хэрэгжүүлэх нь сонголт биш - амьд үлдэхэд зайлшгүй шаардлагатай.
Позицийн хэмжээ тогтоох: Таны EA нь тогтмол lot хэмжээ биш данс дахь өөрийн хөрөнгө болон эрсдэлийн параметрүүд дээр үндэслэн lot хэмжээг тооцоолох ёстой. Түгээмэл арга бол нэг арилжаанд дансны өөрийн хөрөнгийн тогтмол хувийг (ихэвчлэн 1-2%) эрсдэлд оруулж, данс өсөх эсвэл буурахын хэрээр lot хэмжээг динамикаар тохируулах явдал юм.
Хамгийн их Drawdown хязгаар: EA-аа дансны drawdown урьдчилан тодорхойлсон босгоос хэтэрвэл арилжаагаа зогсоохоор програмчил. 15-20% drawdown дээр хатуу зогсоолт нь буруу ажиллаж буй эсвэл муу гүйцэтгэлтэй EA-г таны дансыг сүйтгэхээс сэргийлнэ.
Хамгийн их нээлттэй позиц: EA-ийн нэгэн зэрэг барих боломжтой арилжааны тоог хязгаарла. Ижил төстэй валютын хосууд дахь (жишээ нь EUR/USD болон GBP/USD) хамаарал бүхий позицууд нь эрсдэлийн үеийн үед алдагдлыг өсгөж болно.
Холболтын хяналт: Хэрэв таны EA брокертой холболтоо алдвал нээлттэй позицууд удирдлагагүй орхигдож болно. Холболтын алдааг илрүүлэх логикийг хэрэгжүүл, хэрэв VPS дээр ажиллуулж байвал тасалдлын талаар танд мэдэгдэх сэрэмжлүүлэг тохируул.
Түгээмэл алдаа болон тэдгээрээс хэрхэн зайлсхийх
Шалгалт хийхгүйгээр худалдааны EA худалдаж авах. MQL5 Market болон гуравдагч талын вэбсайтууд нь гайхалтай өгөөжийн нэхэмжлэлтэй EA-уудаар дүүрэн. Эдгээрийн олонхи нь түүхэн өгөгдөлд хэт оновчлогдсон эсвэл martingale позицийн хэмжээ зэрэг аюултай стратеги ашигладаг. Аливаа EA худалдаж авахаас өмнө баталгаажуулсан амьд арилжааны үр дүнг (зөвхөн backtest биш) шаард, бие даасан шүүмжүүдийг шалга, жинхэнэ капитал оруулахаас өмнө демо дээр турш.
Брокерийн нөхцлийг үл тоомсорлох. Нэг брокерийн нөхцөлд оновчилсон EA өөр брокертой өөр гүйцэтгэл харуулж болно. Брокеруудын хоорондох spread, swap rate, гүйцэтгэлийн хурд, slippage-ийн ялгаа нь EA-ийн ашигт байдалд ихээхэн нөлөөлж болно. EA-аа арилжаа хийхээр төлөвлөж буй тодорхой брокероороо үргэлж турш.
Засвар үйлчилгээг үл хайхрах. Зах зээл хөгждөг. 2023 онд сайн ажилласан EA 2025 онд зах зээлийн бүтэц, volatility-ийн горим, хамаарал өөрчлөгдөхийн хэрээр муу ажиллаж болно. EA-ийн гүйцэтгэл хүлээгдэж буй параметрүүдийн хүрээнд байгаа эсэхийг үнэлэхийн тулд хамгийн багадаа улирал тутам тогтмол шалгалт хийхээр төлөвлө.
Зохицуулалтгүй олон EA ажиллуулах. Хэрэв та нэг данс дээр хэд хэдэн EA ажиллуулбал тэдгээр нь зөрчилдсөн позиц авах эсвэл хамтдаа таныг хэт эрсдэлд оруулах болно. Өөр өөр EA-аас ирсэн арилжааг хянаж, зохицуулахын тулд portfolio түвшний эрсдэлийн менежер эсвэл "magic number" системийг ашигла.
Зохицуулалтын асуудлууд
FCA болон ESMA зэрэг зохицуулагчид автоматжуулсан арилжааны талаар тодорхой дүрэм хэрэгжүүлсэн. MiFID II-ийн дагуу algorithmic trading стратеги ашигладаг пүүсүүд үр дүнтэй систем, эрсдэлийн хяналттай байх ёстой. Жижиглэн арилжаачид байгууллагын пүүсүүдтэй адил шаардлагад шууд хамрагддаггүй ч зохицуулалтын орчныг ойлгох нь автоматжуулсан стратегиа хэрхэн байршуулах талаар мэдээлэлтэй шийдвэр гаргахад тусална. Зарим брокерууд өндөр давтамжийн арилжаа эсвэл хэт их захиалгын харьцааны талаар тодорхой үйлчилгээний нөхцөл тавьдаг бөгөөд эдгээр нөхцлийг зөрчвөл дансны хязгаарлалтад хүргэж болно.
Гол санаанууд
- Expert Advisor нь урьдчилан тодорхойлсон дүрмийг автоматаар гүйцэтгэдэг MetaTrader платформ дотор, арилжааны үйл явцаас сэтгэл хөдлөлийн шийдвэр гаргалтыг арилгадаг боловч болгоомжтой удирдлага шаардах технологийн эрсдэлүүдийг нэвтрүүлдэг.
- MQL5 нь EA бүтээх цогц програмчлалын орчныг хангадаг бөгөөд зах зээлийн өгөгдөлд хандах, захиалга удирдах, техникийн индикаторуудын суулгасан функцүүдтэй, MetaQuotes-ийн өргөн хүрээтэй баримтжуулалтаар дэмжигдсэн.
- Strategy Tester зайлшгүй шаардлагатай боловч төгс бус. Backtesting нь стратегийн бодит байдлын талаар үнэ цэнэтэй ойлголт өгдөг боловч үр дүнг амьд байршуулахаас өмнө үргэлж out-of-sample өгөгдөл болон демо данс дээрх forward testing-ээр баталгаажуулах ёстой.
- Over-optimization нь хамгийн түгээмэл бэрхшээл EA хөгжүүлэлтэд. Зөвхөн нэг тодорхой өгөгдлийн багц дээр нэг тодорхой параметрийн багцтай ажилладаг стратеги амьд зах зээлд ажиллах магадлал бага.
- Эрсдэлийн удирдлагыг EA-д өөрт нь програмчлах ёстой - динамик позицийн хэмжээ тогтоох, хамгийн их drawdown хязгаар, холболтын алдааны зохицуулалт зэргийг зөвхөн гараар хянахад үлдээх бус.
- Ямар ч EA бүрэн хяналтгүй ажиллах ёсгүй. Санаандгүй зах зээлийн үйл явдал, брокерийн асуудал, өөрчлөгдөж буй зах зээлийн нөхцөл бүгд сайн зохион бүтээсэн системүүдийг ч бүтэлгүйтэлд хүргэж, хүний оролцоо шаардаж болно.
- Тогтмол засвар үйлчилгээ, шалгалт нь үл хэлэлцэх зүйл. Зах зээл тасралтгүй хөгждөг бөгөөд түүхэнд сайн ажилласан EA нөхцөл өөрчлөгдөхөд параметрийн тохируулга эсвэл үндсэн дахин зохион бүтээлт шаардаж болно.
Энэ хичээл нь зөвхөн боловсролын зорилгоор бэлтгэгдсэн. Энэ нь санхүүгийн зөвлөгөө биш юм. Forex арилжаа нь ихээхэн алдагдлын эрсдэлтэй бөгөөд бүх хөрөнгө оруулагчдад тохиромжгүй. Автоматжуулсан арилжааны системүүд нь программ хангамжийн алдаа, холболтын асуудал, хэвийн бус зах зээлийн нөхцөлд хурдан алдагдлын боломж зэрэг нэмэлт эрсдэлтэй.