Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1389

 

У меня следующий вопрос.

Есть объект - кнопка (OBJ_BUTTON). Но работает она почему-то странным образом - в нажатое состояние переходит при отпускании кнопки мышки (Click Up), и в отжатое состояние переходит также при отпускании кнопки мышки (Click Up).

Можно ли сделать как-нибудь так, чтобы кнопка переходила в нажатое состояние при нажатии кнопки мышки (Click Down), и в отжатое состояние при отпускании кнопки мышки? Как впрочем обычно кнопки и работают.

 
MQL_User #:

У меня следующий вопрос.

Есть объект - кнопка (OBJ_BUTTON). Но работает она почему-то странным образом - в нажатое состояние переходит при отпускании кнопки мышки (Click Up), и в отжатое состояние переходит также при отпускании кнопки мышки (Click Up).

Можно ли сделать как-нибудь так, чтобы кнопка переходила в нажатое состояние при нажатии кнопки мышки (Click Down), и в отжатое состояние при отпускании кнопки мышки? Как впрочем обычно кнопки и работают.

Вам вопрос путанный. Смотрите как работаю кнопки в примере, который поставляется с терминалом:  MQL5\Experts\Examples\Controls\Controls.mq5


 

Добрый день всем.

Терминал MT5 вдруг начал выдавать Alert с большим числом знаков после запятой. Как в операторе Print.

Не подскажете в чем причина?

 
Alexey Viktorov #:

Когда что-то проверяете в нерабочее время, проверяйте в скрипте.

Благодарю, но в скрипте то- же самое. Пробовал уже по всякому, перед тем, как вопрос задать, результат один.

#include <Trade\SymbolInfo.mqh>  
#include <Trade\AccountInfo.mqh>

CSymbolInfo    m_symbol;                     // symbol info object
CAccountInfo   m_account;                    // account info object

//string s_n;

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+

void OnStart()

  {

   m_symbol.Name(Symbol());
   
   const string this_symbol = m_symbol.Name();
   //ENUM_ORDER_TYPE order_type = ORDER_TYPE_BUY;
   double order_volume =  0;
   double order_price = 0;
   double Price_Min_Lot = 0;
   
   
   order_volume = 1;
   order_price = m_symbol.Ask();
   Price_Min_Lot = m_account.MarginCheck(this_symbol, ORDER_TYPE_BUY, order_volume, order_price);
   Print("Требуемая маржа =", Price_Min_Lot);
     
  }
//+------------------------------------------------------------------+

Выводит: " Требуемая маржа =1.797693134862316e+308" . Можно ли как- то ещё получить маржу?

 
-IMXO- #:

Благодарю, но в скрипте то- же самое. Пробовал уже по всякому, перед тем, как вопрос задать, результат один.

Выводит: " Требуемая маржа =1.797693134862316e+308" . Можно ли как- то ещё получить маржу?

Вы вообще другую информацию получаете по символу? Проверяли?

 
-IMXO- #:

Благодарю, но в скрипте то- же самое. Пробовал уже по всякому, перед тем, как вопрос задать, результат один.

Выводит: " Требуемая маржа =1.797693134862316e+308" . Можно ли как- то ещё получить маржу?

На всякий случай - у вас этот символ подключен в "MarketWatch"? Если нет - по символу отдаётся очень ограниченная информация.

 
Nauris Zukas #:

Вы вообще другую информацию получаете по символу? Проверяли?

Проверял, из того же класса можно получить баланс, например, MarginCheck и FreeMarginCheck  показывают одно и то же. Вообще проблемы со всем, что связано с маржой и в "CAccountInfo" и в "CSymbolinfo"
 
JRandomTrader #:

На всякий случай - у вас этот символ подключен в "MarketWatch"? Если нет - по символу отдаётся очень ограниченная информация.

"MarketWatch" это в терминале "обзор рынка", окно со списком инструментов? Если оно, то подключен.
 
-IMXO- #:
Можно ли как- то ещё получить маржу?

Можно. Но с использованием СБ я не могу подсказать. Я ей не пользуюсь.

 
Alexey Viktorov #:

Можно. Но с использованием СБ я не могу подсказать. Я ей не пользуюсь.

Подскажите, пожалуйста, как? Что такое "СБ"?
Причина обращения: