Функция на сервер или функция на MetaTrader...

 

Добрый день господа!

Есть у меня интересный вопрос, над которым я уже несколько дней ломаю голову, но информации пока так и не нашел....

Я сам программист, но с MQL4 познакомился совсем недавно...

Сейчас занимаюсь написанием большого советника... (бойца как у Вас говорят)))

Хочется, чтоб советник был максимально дружелюбным в отношении торгового сервера... а именно - не доставал его частыми запросами информации...

Вот тут и сам то вопрос.

Очень хотелось бы узнать какие торговые функции обращаются за информацией к торговому серверу, а какие просто получают её из локального МетаТрейдер.

К моему большому сожалению в справке по языку https://docs.mql4.com/ru/ таких данных нет....

Разумеется я понимаю что функции типа OrderSend, OrderClose, OrderModify адресуются непосредственно на сервер...

А вот функции типа OrderSelect, OrdersTotal, OrderMagicNumber, OrderProfit, OrderTicket, OrderOpenPrice откуда они получают информацию ???.... от сервера или от локального терминала МетаТрейдер ???

Буду очень благодарен всем кто откликнется...

 
MaxsiM:

Разумеется я понимаю что функции типа OrderSend, OrderClose, OrderModify адресуются непосредственно на сервер...
А вот функции типа OrderSelect, OrdersTotal, OrderMagicNumber, OrderProfit, OrderTicket, OrderOpenPrice откуда они получают информацию ???.... от сервера или от локального терминала МетаТрейдер ???

Насколько я помню, на сервер отправляются только торговые приказы, да и то проверенные.
Все остальные ф-ции (в т.ч. OrderSelect, OrdersTotal, OrderMagicNumber, OrderProfit и им подобные) берут информацию у терминала.

Ну, и запрос на подкачку исторических данных (ArrayCopySiries) способен запросить у сервера информацию, но не думаю что брокер об этом вообще знает.
 

Самые проблемные ф-ии это открытия , закрытия и модификации позиции. Ибо эти приказы для брокера. тут надо быть аккуратным и обязательно анализировать ошибки которые возникают. Остальное вроде не критично

 

Проверил этот вопрос практическим образом.

Написал скрипт который использует функции OrdersTotal, OrderSelect, OrderTakeProfit, OrderOpenPrice и выводит результат в окно Alert.

После чего отключился от инета (т.е. разорвал связь с торговым сервером)...

Запустил скрипт...

Работает!

Выходит что эти функции получают информацию от клиентского терминала....