Ошибки, баги, вопросы - страница 1917

 

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

fxsaber, 2017.06.15 10:08

Почему это компилируется?
class A {};

class B : public A
{
public:  
  int i;
};

void OnStart()
{
  A* a = new B;
  
  ((B*)a).i = 1;
  
  dynamic_cast<B*>(a).i = 1;
  
  delete a;
}
Support Team 2017.06.29 12:04
А почему этот код не должен компилироваться?

A является предком B, поэтому такое приведение может быть валидным, валидность проверятся на выполнеии и если приведение объекта невозможно возникает исключение и MQL программа завершается.

В отличие от явного приведения dynamic_cast не вызывает исключение, а вместо результата возвращается NULL, в этом случае программа продолжит выполнение.
 
Vladimir Karputov:

Установите скорость минус три шага от максимума - иначе обновление интерфейса не гарантированно. 

Эта скорость на середине - до максимума там далеко
 
SymbolInfoDouble(_Symbol,SYMBOL_MARGIN_INITIAL)

SymbolInfoDouble(_Symbol,SYMBOL_MARGIN_MAINTENANCE)
почему-то всегда возвращает 0.0 в тестере

код ошибки при этом тоже 0

 
Anton Ohmat:
почему-то всегда возвращает 0.0

код ошибки при этом тоже 0

Эта штука насколько понял, работает только на Московской бирже

 
Подскажите пожалуйста!!!!!!!! В терминале 1090 не отображается кнопка "Торговля в 1 клик". Делал все возможное. и в свойствах галочку тоже ставил. Не отображается также линией открытый ордер!!! Что делать?
 
vati-vv:
Подскажите пожалуйста!!!!!!!! В терминале 1090 не отображается кнопка "Торговля в 1 клик". Делал все возможное. и в свойствах галочку тоже ставил. Не отображается также линией открытый ордер!!! Что делать?

Вы сейчас разместили вопрос в разделе MQL5. По старому терминалу нужно размещать вопросы в разделе MQL4 и MetaTrader 4. 

Рекомендуется проверить, Вы точно залогинены на торговый сервер, так как панель быстрой торговли отображается только при действительном подключении к торговому счёту.

 

добрый день, в mql5 использую такой вариант указания filling_mode

   if(SymbolInfoInteger(Symbol(),SYMBOL_FILLING_MODE)==SYMBOL_FILLING_FOK)
     {
      tradeBuy.SetTypeFilling(ORDER_FILLING_FOK);
      tradeSell.SetTypeFilling(ORDER_FILLING_FOK);
     }

   else if(SymbolInfoInteger(Symbol(),SYMBOL_FILLING_MODE)==SYMBOL_FILLING_IOC)
     {
      tradeBuy.SetTypeFilling(ORDER_FILLING_IOC);
      tradeSell.SetTypeFilling(ORDER_FILLING_IOC);
     }

   else
     {
      tradeBuy.SetTypeFilling(ORDER_FILLING_RETURN);
      tradeSell.SetTypeFilling(ORDER_FILLING_RETURN);
     }


советник в тестере открывает позиции, но примерно одна позиция не открывается и ошибка unsupported filling mode, что я делаю не так??

 
Dmitry Melnichenko:

добрый день, в mql5 использую такой вариант указания filling_mode


советник в тестере открывает позиции, но примерно одна позиция не открывается и ошибка unsupported filling mode, что я делаю не так??


Возвращается не одно значение, а скомпонованное из одного, или из двух - поэтому может получаться некорректная проверка.

Попробуйте такую конструкцию:

//---
   if(IsFillingTypeAllowed(Symbol(),SYMBOL_FILLING_FOK))
      m_trade.SetTypeFilling(ORDER_FILLING_FOK);
   else if(IsFillingTypeAllowed(Symbol(),SYMBOL_FILLING_IOC))
      m_trade.SetTypeFilling(ORDER_FILLING_IOC);
   else
      m_trade.SetTypeFilling(ORDER_FILLING_RETURN);
...
//+------------------------------------------------------------------+ 
//| Checks if the specified filling mode is allowed                  | 
//+------------------------------------------------------------------+ 
bool IsFillingTypeAllowed(string symbol,int fill_type)
  {
//--- Obtain the value of the property that describes allowed filling modes 
   int filling=(int)SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE);
//--- Return true, if mode fill_type is allowed 
   return((filling & fill_type)==fill_type);
  }


Добавлено: если помогло, пожалуйста сообщите.

 
Vladimir Karputov:

Возвращается не одно значение, а скомпонованное из одного, или из двух - поэтому может получаться некорректная проверка.

Попробуйте такую конструкцию:


Добавлено: если помогло, пожалуйста сообщите.


спасибо, но не помогло, все равно периодически выдает такую ошибку!

 

Как узнать номер окна/подокна объекта? В упор не вижу подходящего свойства.