Библиотеки: MT4Orders - страница 57

 
Нюанс отличия MT4 и MT5.
#include <MT4Orders.mqh>

#define Ask SymbolInfoDouble(_Symbol, SYMBOL_ASK)

void OnStart()
{
  if (OrderSelect(OrderSend(_Symbol, OP_BUYLIMIT, 1, Ask - 100 * _Point, 0, 0, 0), SELECT_BY_TICKET)) // Открыли отложку и выбрали ее
    OrderPrint();                                                                                     // Распечатали ее данные
    
  OrderSend(_Symbol, OP_BUYLIMIT, 1, Ask - 100 * _Point, 0, 0, 0) // Открыли отложку, но не выбирали.
  OrderPrint();                                                   // MT4 вернет тот же результат, что до этого, MT5 - не обязательно.
}


Результат в MT5.

        #827589598 2021.01.13 01:21:17.832 buy limit 1.00 EURSEK 10.06849 0.00000 0.00000 10.06949 0.00 0.00 0.00 0
        #827589601 2021.01.13 01:21:17.895 buy limit 1.00 EURSEK 10.06849 0.00000 0.00000 10.06949 0.00 0.00 0.00 0 // В MT4 строка бы совпадала с предыдущей.


После торговых операций (в Терминале, не в Тестере) OrderLots(), OrderTicket() и другие значения могут быть изменены. Кто конвертит из MT4, учитывайте это.

 
fxsaber:

После торговых операций (в Терминале, не в Тестере) OrderLots(), OrderTicket() и другие значения могут быть изменены. Кто конвертит из MT4, учитывайте это.

Аналогично и после OrdersTotal.

#include <MT4Orders.mqh>

#define Ask SymbolInfoDouble(_Symbol, SYMBOL_ASK)

void OnStart()
{
  if (OrderSelect(OrderSend(_Symbol, OP_BUYLIMIT, 1, Ask - 100 * _Point, 0, 0, 0), SELECT_BY_TICKET)) // Открыли отложку и выбрали ее
    OrderPrint();                                                                                     // Распечатали ее данные
    
  Sleep(10000); // Пауза.
  
  OrdersTotal();
  OrderPrint(); // MT4 вернет тот же результат, что до этого, MT5 - не обязательно.
}


Результат.

        #827619194 2021.01.13 02:07:50.296 buy limit 1.00 EURUSD 1.22012 0.00000 0.00000 1.22112 0.00 0.00 0.00 0
        #827619194 2021.01.13 02:07:50.296 buy limit 1.00 EURUSD 1.22012 0.00000 0.00000 1.22111 0.00 0.00 0.00 0
 
Уважаемый fxsaber скорее всего вопрос-баян, но мне придется его задать. Библа работает хорошо, но в тестере одна особенность появляется. В начале советник что-то очень усиленно молотит, не выдавая тики, то есть как только первый тик происходит что-то очень лютое там запускается и только спустя несколько минут тест начинает идти. Сейчас в MT5 зашел повесил на график сов он так же первый тик съел и одно ядро полностью загружено висит, принчу тики в лог они появляются с периодичностью в 2,5 минуты примерно ). И главное не понятно сколько он еще так будет насиловать терминал и закончит ли вообще). Сов нормально работает на четверке на пятом это не юзабельно в принципе. Ладно я отключил распринтовку, но это только лог очистило а с производительностью как быть то ? Да я использую и хистори тотал и ордер селект, иначе а смысл какой либу юзать. Тоесть потиковые роботы не поюзаешь, плюс эта штука лочит OnTick и соответственно все интерфейсы встают потому что MQL5 OnChartEvent повесила на OnTick, зачем не понятно. Вообще как то можно выключить все вот эт очто так издевается над терминалом или это в принципе не предусмотрено ? Очень хотелось вашу либу использовать в своем продукте, но пока не вижу как
 
И не принимайте близко к сердцу тон, я так всегда... 
 
Evgeniy Ilin:
Уважаемый fxsaber скорее всего вопрос-баян, но мне придется его задать. Библа работает хорошо, но в тестере одна особенность появляется. В начале советник что-то очень усиленно молотит, не выдавая тики, то есть как только первый тик происходит что-то очень лютое там запускается и только спустя несколько минут тест начинает идти. Сейчас в MT5 зашел повесил на график сов он так же первый тик съел и одно ядро полностью загружено висит, принчу тики в лог они появляются с периодичностью в 2,5 минуты примерно ). И главное не понятно сколько он еще так будет насиловать терминал и закончит ли вообще). Сов нормально работает на четверке на пятом это не юзабельно в принципе. Ладно я отключил распринтовку, но это только лог очистило а с производительностью как быть то ? Да я использую и хистори тотал и ордер селект, иначе а смысл какой либу юзать. Тоесть потиковые роботы не поюзаешь, плюс эта штука лочит OnTick и соответственно все интерфейсы встают потому что MQL5 OnChartEvent повесила на OnTick, зачем не понятно. Вообще как то можно выключить все вот эт очто так издевается над терминалом или это в принципе не предусмотрено ? Очень хотелось вашу либу использовать в своем продукте, но пока не вижу как

Попробуйте без библы.

Возможно, просто подгружаются тики по запрашиваемым инструментам.

 
Evgeniy Ilin:
Очень хотелось вашу либу использовать в своем продукте, но пока не вижу как

Очень мало информации, поэтому большой диапазон возможных причин. Предоставьте логи. Пройдитесь дебагом до тормозов. В общем, надо хоть что-то сделать и поделиться.

 
fxsaber:

Очень мало информации, поэтому большой диапазон возможных причин. Предоставьте логи. Пройдитесь дебагом до тормозов. В общем, надо хоть что-то сделать и поделиться.

В общем я прошелся по коду поисследовал где задержки. OrderSelect один ордер несколько секунд обрабатывает но это только в случае MODE_HISTORY, да и после чего я написал аналог своего функционала и он тоже примерно давал, все дело в истории. в случае MODE_TRADES, все хорошо. В целом библа хорошая, но видимо все дело в тонкостях и нюансах которые невозможно в библиотеке решить. В целом проблемы свои я решил отказавшись от истории. Все равно хорошая библа. Если придумаете как работу с историей разогнать то вообще будет красота ). Так вообще очень помогла библа на самом деле. Да еще такой нюанс если ord=OrderSelect.... и потом вызывать функции типа OrderMagicNumber() и прочей информации предварительно не проверив на истинность переменную "ord" то тоже задержки. Но это конечно все выявляется и потом так уже не делаешь )

Документация по MQL5: Торговые функции / OrderSelect
Документация по MQL5: Торговые функции / OrderSelect
  • www.mql5.com
OrderSelect - Торговые функции - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Evgeniy Ilin:

В общем я прошелся по коду поисследовал где задержки. OrderSelect один ордер несколько секунд обрабатывает но это только в случае MODE_HISTORY, да и после чего я написал аналог своего функционала и он тоже примерно давал, все дело в истории. в случае MODE_TRADES, все хорошо. В целом библа хорошая, но видимо все дело в тонкостях и нюансах которые невозможно в библиотеке решить. В целом проблемы свои я решил отказавшись от истории. Все равно хорошая библа. Если придумаете как работу с историей разогнать то вообще будет красота ). Так вообще очень помогла библа на самом деле. Да еще такой нюанс если ord=OrderSelect.... и потом вызывать функции типа OrderMagicNumber() и прочей информации предварительно не проверив на истинность переменную "ord" то тоже задержки. Но это конечно все выявляется и потом так уже не делаешь )

Какой результат выполнения?
#include <MT4Orders.mqh>

void OnStart()
{
  Print(__MT4ORDERS__);
}
 

Не знаю, сколько продуктов в Маркете использует эту библиотеку, но, похоже, немало, раз периодически получаю ЛС от покупателей.

При этом нерусскоязычные авторы ставят еще какой-то древний билд. Но причины ЛС не в этом.


Обращаюсь к авторам продуктов в Маркете.

Библиотека выдает сообщения о багах MT5, чтобы Вы, в частности, могли разобраться в нюансах MT5. Например, не синхронизированная история MT5 может запросто нарушить работу какого-нибудь MT5-копира, приведя к серьезным убыткам покупателей. Но MT4Orders только предупреждает, что обнаружена проблема, а не устраняет их во всех случаях.


Здесь все это неоднократно было разжевано. Включая методы отключения каких-либо сообщений со стороны библиотеки.


Понимаю, что используете MT4Orders в своих коммерческих целях даже не за спасибо. Так не обременяйте меня жалобами своих покупателей. Утомляет, мягко говоря.

 
Скорее всего проще будет тексты поменять.
Причина обращения: