есть у меня под МТ4 работающая ф-ция, которая проверяет перед выставлением ордера доступность сервера (параметр bool refreshrates - обновить котировки и int count - количество проверок с паузой если не доступен сервер, результат возвращает false - можно торговать, true сервер не доступен . т.е. удобно так пользоваться if(ServerDisable() return; ):
помогите корректно переписать под МТ5 эту конструкцию, в справке МТ5 параметры запросов TerminalInfoInteger() немного по другому называется (т.е. ищу аналогию в МТ5 штатным ф-циям МТ4 IsConnected(), IsTradeAllowed()... ) и как выполнить RefreshRates() ?
есть у меня под МТ4 работающая ф-ция, которая проверяет перед выставлением ордера доступность сервера (параметр bool refreshrates - обновить котировки и int count - количество проверок с паузой если не доступен сервер, результат возвращает false - можно торговать, true сервер не доступен . т.е. удобно так пользоваться if(ServerDisable() return; ):
помогите корректно переписать под МТ5 эту конструкцию, в справке МТ5 параметры запросов TerminalInfoInteger() немного по другому называется (т.е. ищу аналогию в МТ5 штатным ф-циям МТ4 IsConnected(), IsTradeAllowed()... ) и как выполнить RefreshRates() ?
я не хочу обсуждать хитропопых брокеров, конструкция которую я выше показал, обеспечивает выставление ордера, как и по приходу тика сделать выход из OnTick() если на этом тике не буде возможности работы с ордерами
мне нужно точные аналоги для МТ5 ф-ций: IsConnected() (TerminalInfoInteger(TERMINAL_CONNECTED) - подтверждено ), IsTradeAllowed() , IsTradeContextBusy() , RefreshRates()
я не хочу обсуждать хитропопых брокеров, конструкция которую я выше показал, обеспечивает выставление ордера, как и по приходу тика сделать выход из OnTick() если на этом тике не буде возможности работы с ордерами
мне нужно точные аналоги для МТ5 ф-ций: IsConnected() (TerminalInfoInteger(TERMINAL_CONNECTED) - подтверждено ), IsTradeAllowed() , IsTradeContextBusy() , RefreshRates()
IsTradeContextBusy() можно исключить, в пятом поток свободен всегда
я не хочу обсуждать хитропопых брокеров, конструкция которую я выше показал, обеспечивает выставление ордера, как и по приходу тика сделать выход из OnTick() если на этом тике не буде возможности работы с ордерами
мне нужно точные аналоги для МТ5 ф-ций: IsConnected() (TerminalInfoInteger(TERMINAL_CONNECTED) - подтверждено ), IsTradeAllowed() , IsTradeContextBusy() , RefreshRates()
Я так понимаю, вы имеете ввиду то, что тики идут, но торговля запрещена?
Если так, то Я тоже хотел-бы иметь такую проверку, но пока никто и ничего рабочего не предложил.
IsTradeContextBusy() нужен аналог или обоснование почему аналог не возможен
мне нужны аналоги и ничего более , я вчера переписал приведенную выше ф-цию исходя из справки, но есть неуверенность в правильном трактовании (разными словами описаны ), теперь хочу на форуме подтвердить правильность:
— В чем сила, брат? —А сила, брат, в дефайнах Вы все ещё пишете на MQL4 и хотите перейти на MQL5, но не знаете с чего начать? Тогда мы идём к вам! Теперь появилась возможность комфортно работать в редакторе MetaEditor MQL5 и при этом использовать MQL4-нотацию (справедливости ради замечу...
2019.02.1706:13:28.974 Test_4G_CB (Si Splice,H1) 1 Тут ошибка 4202 Графический объект не найден
2019.02.1706:13:28.983 Test_4G_CB (Si Splice,H1) 2 Тут ошибка 4202 Графический объект не найден
в этом коде
if(ObjectFind(chart,name)<0)
{
Print("1 Тут ошибка ",GetLastError()," ",cLng::CodeDescription(GetLastError()));
ResetLastError();
graphic.Create(chart,name,0,0,0,pix_X,pix_Y);//Создает графический ресурс, привязанный к объекту чарта Print("2 Тут ошибка ",GetLastError()," ",cLng::CodeDescription(GetLastError()));
ResetLastError();
}
Если первая ошибка ещё объяснима - мол объект не найден, но не ясна реализация поиска отсутствующего объекта без ошибки, то вторая ошибка не понятна, при этом объект явно создается - график формируется, и причина ошибки не ясна.
Если первая ошибка ещё объяснима - мол объект не найден, но не ясна реализация поиска отсутствующего объекта без ошибки, то вторая ошибка не понятна, при этом объект явно создается - график формируется, и причина ошибки не ясна.
Как избавиться от ошибок?
ResetLastError() необходимо выполнять перед обращением к функции. Что здесь:
graphic.Create()
непонятно. Если это CCanvas, то метод Create() создает графический ресурс без привязки к объекту чарта. И возвращает он либо true, либо false:
Create
Создает графический ресурс без привязки к объекту чарта.
[in] Основание для имени графического ресурса. Имя ресурса формируется при создании путем добавления псевдослучайной строки.
width
[in] Ширина (размер по оси X) в пикселях.
height
[in] Высота (размер по оси Y) в пикселях.
clrfmt=COLOR_FORMAT_XRGB_NOALPHA
[in] Способ обработки цвета. Более подробно о способах обработки цвета смотрите в описании функции ResourceCreate().
Возвращаемое значение
true - в случае удачи, иначе false
В общем, из того, что вы показали, сложно понять.
Но попробуйте так:
//+------------------------------------------------------------------+ResetLastError();
if(ObjectFind(chart,name)<0)
{
Print("1 Тут ошибка потому, что объекта нет ещё",GetLastError()," ",cLng::CodeDescription(GetLastError()));
ResetLastError();
if(!graphic.Create(chart,name,0,0,0,pix_X,pix_Y))
Print("2 Тут ошибка ",GetLastError()," ",cLng::CodeDescription(GetLastError()));
}
//+------------------------------------------------------------------+
Если там у вас CGraphic, то нужно лезть в код Create() для понимания чего он возвращает, так как в справке про то ни слова:
Достаточно при создании ХЕНДЛА индикатора указать НУЖНЫЙ таймфрейм и символ. Например индикатор iRSI:
Нет я про это. Вроде Ренат, говорил в каком то посте, о создании вспомогательных, не привязанных графику советников или что то в этом роде.
Нет я про это. Вроде Ренат, говорил в каком то посте, о создании вспомогательных, не привязанных графику советников или что то в этом роде.
Это называется "Сервисы". Нет их ещё.
есть у меня под МТ4 работающая ф-ция, которая проверяет перед выставлением ордера доступность сервера (параметр bool refreshrates - обновить котировки и int count - количество проверок с паузой если не доступен сервер, результат возвращает false - можно торговать, true сервер не доступен . т.е. удобно так пользоваться if(ServerDisable() return; ):
помогите корректно переписать под МТ5 эту конструкцию, в справке МТ5 параметры запросов TerminalInfoInteger() немного по другому называется (т.е. ищу аналогию в МТ5 штатным ф-циям МТ4 IsConnected(), IsTradeAllowed()... ) и как выполнить RefreshRates() ?
есть у меня под МТ4 работающая ф-ция, которая проверяет перед выставлением ордера доступность сервера (параметр bool refreshrates - обновить котировки и int count - количество проверок с паузой если не доступен сервер, результат возвращает false - можно торговать, true сервер не доступен . т.е. удобно так пользоваться if(ServerDisable() return; ):
помогите корректно переписать под МТ5 эту конструкцию, в справке МТ5 параметры запросов TerminalInfoInteger() немного по другому называется (т.е. ищу аналогию в МТ5 штатным ф-циям МТ4 IsConnected(), IsTradeAllowed()... ) и как выполнить RefreshRates() ?
Я использую только эту, вроде хватает
TerminalInfoInteger(TERMINAL_CONNECTED)
Я использую только эту, вроде хватает
TerminalInfoInteger(TERMINAL_CONNECTED)
я не хочу обсуждать хитропопых брокеров, конструкция которую я выше показал, обеспечивает выставление ордера, как и по приходу тика сделать выход из OnTick() если на этом тике не буде возможности работы с ордерами
мне нужно точные аналоги для МТ5 ф-ций: IsConnected() (TerminalInfoInteger(TERMINAL_CONNECTED) - подтверждено ), IsTradeAllowed() , IsTradeContextBusy() , RefreshRates()
я не хочу обсуждать хитропопых брокеров, конструкция которую я выше показал, обеспечивает выставление ордера, как и по приходу тика сделать выход из OnTick() если на этом тике не буде возможности работы с ордерами
мне нужно точные аналоги для МТ5 ф-ций: IsConnected() (TerminalInfoInteger(TERMINAL_CONNECTED) - подтверждено ), IsTradeAllowed() , IsTradeContextBusy() , RefreshRates()
IsTradeContextBusy() можно исключить, в пятом поток свободен всегда
RefreshRates() - это обновление предопределённых переменных Ask/Bid, их в пятом нет, но можно использовать
тогда цены будут всегда актуальны
я не хочу обсуждать хитропопых брокеров, конструкция которую я выше показал, обеспечивает выставление ордера, как и по приходу тика сделать выход из OnTick() если на этом тике не буде возможности работы с ордерами
мне нужно точные аналоги для МТ5 ф-ций: IsConnected() (TerminalInfoInteger(TERMINAL_CONNECTED) - подтверждено ), IsTradeAllowed() , IsTradeContextBusy() , RefreshRates()
Я так понимаю, вы имеете ввиду то, что тики идут, но торговля запрещена?
Если так, то Я тоже хотел-бы иметь такую проверку, но пока никто и ничего рабочего не предложил.
IsTradeContextBusy() можно исключить, в пятом поток свободен всегда
https://www.mql5.com/ru/articles/4332
IsConnected() TerminalInfoInteger(TERMINAL_CONNECTED)
IsTradeAllowed() MQLInfoInteger(MQL_TRADE_ALLOWED)
RefreshRates() SymbolInfoDouble(_Symbol, ::SYMBOL_BID)
IsTradeContextBusy() нужен аналог или обоснование почему аналог не возможен
мне нужны аналоги и ничего более , я вчера переписал приведенную выше ф-цию исходя из справки, но есть неуверенность в правильном трактовании (разными словами описаны ), теперь хочу на форуме подтвердить правильность:
Подскажите, пожалуйста, почему я получаю ошибки
в этом коде
Если первая ошибка ещё объяснима - мол объект не найден, но не ясна реализация поиска отсутствующего объекта без ошибки, то вторая ошибка не понятна, при этом объект явно создается - график формируется, и причина ошибки не ясна.
Как избавиться от ошибок?
Подскажите, пожалуйста, почему я получаю ошибки
в этом коде
Если первая ошибка ещё объяснима - мол объект не найден, но не ясна реализация поиска отсутствующего объекта без ошибки, то вторая ошибка не понятна, при этом объект явно создается - график формируется, и причина ошибки не ясна.
Как избавиться от ошибок?
ResetLastError() необходимо выполнять перед обращением к функции. Что здесь:
непонятно. Если это CCanvas, то метод Create() создает графический ресурс без привязки к объекту чарта. И возвращает он либо true, либо false:
Create
Создает графический ресурс без привязки к объекту чарта.
Параметры
name
[in] Основание для имени графического ресурса. Имя ресурса формируется при создании путем добавления псевдослучайной строки.
width
[in] Ширина (размер по оси X) в пикселях.
height
[in] Высота (размер по оси Y) в пикселях.
clrfmt=COLOR_FORMAT_XRGB_NOALPHA
[in] Способ обработки цвета. Более подробно о способах обработки цвета смотрите в описании функции ResourceCreate().
Возвращаемое значение
true - в случае удачи, иначе false
В общем, из того, что вы показали, сложно понять.
Но попробуйте так:
Если там у вас CGraphic, то нужно лезть в код Create() для понимания чего он возвращает, так как в справке про то ни слова: