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

 

Что-то никак не сображу

int a=1;//a1
int b=2;//b1
int aa(int a, int b)
{
return(a+a+b+b);
}

 одно из a и b в return должны быть внешние //a1 и //b1. Через this не идет.

 
Yuriy Asaulenko:

a + ::a + b + ::b

Но вообще за такую практику надо по рукам бить.

 
Комбинатор:

a + ::a + b + ::b

Но вообще за такую практику надо по рукам бить.

Спасибо.) Книги по С++ под рукой нет. Но визуально помнится, там вроде через this было. Подзабыл наверное. Применять для этих целей ранее не приходилось. Что-ж теперь, везде переменный менять -счас.

А вообще, оно для этого и предусмотрено. Так что - не правы. Злоупотреблять не стоит. 

 

При перетаскивании (CHARTEVENT_OBJECT_DRAG) мышью графического объекта OBJ_CHART сбрасывается текущий интервал отображения в OBJ_CHART.

Прошу убрать в следующем билде данный сброс.

 

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

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

Ilyas, 2016.10.18 09:24

Почему список инициализации Вы не включаете в тело? Образно говоря, объект класса (в том числе его this) инициализируется  на знаке ':'
Почему тогда так?
class A
{
  const int a;
  
  A() : this.a(0) {} // 'this' - struct member undefined && '.' - member(s) initialization expected
//  A() : a(this.a) {} // no problem
};
 

Идентификатор

Описание

Тип свойства

CHART_COMMENT

Текст комментария на графике

string

CHART_EXPERT_NAME

Имя эксперта, запущенного на графике с указанным chart_id

string

CHART_SCRIPT_NAME

Имя скрипта, запущенного на графике с указанным chart_id

string

Добавьте жирным read-only в Справке.
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Свойства графиков
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Свойства графиков
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы графиков / Свойства графиков - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

Очень много времени потратил на локализацию. Советник

class CHARTOBJECT
{
public:
  const string Name;
  const long Chart;

  int GetSubWindow( void ) const
  {
    const ulong StartTime = GetMicrosecondCount();
    
    const int Res = ObjectFind(this.Chart, this.Name);
    
    Print((string)(GetMicrosecondCount() - StartTime) + " mcs.");

    return(Res);
  }

  CHARTOBJECT( const ENUM_OBJECT object_type, const long chart_id = 0  ) :
               Name((string)MathRand()), Chart(chart_id)
  {
    ObjectCreate(this.Chart, this.Name, object_type, 0, 0, 0);
  }

  ~CHARTOBJECT( void )
  {
    if (this.GetSubWindow() != -1)
      ObjectDelete(this.Chart, this.Name);
  }
  
  long GetProperty( const ENUM_OBJECT_PROPERTY_INTEGER Property, const int Modifier = 0 ) const
  {
    return(ObjectGetInteger(this.Chart, this.Name, Property, Modifier));
  }
};

CHARTOBJECT Chart(OBJ_CHART);
CHARTOBJECT* Bitmap;

void OnInit()
{
  Bitmap = new CHARTOBJECT(OBJ_BITMAP_LABEL, Chart.GetProperty(OBJPROP_CHART_ID));
}

void OnDeinit( const int Reason )
{
  Bitmap.GetSubWindow();
  
  delete Bitmap;
}

После того, как его удалите с чарта, будет вывод в лог

2016.10.22 19:35:51.362 Test9 (AUDCAD,M1)       Abnormal termination
2016.10.22 19:35:48.351 Test9 (AUDCAD,M1)       3005619 mcs.

Три секунды он удалялся и вылетел. Воспроизводится только в релиз-варианте. При дебаге все нормально.

Просьба подтвердить у себя. В режиме скрипта воспроизвести не получилось. Только советник. 

 

В справке сказано:

В режимах исполнения "По рынку" и "Биржевой" политика заполнения "Вернуть" всегда разрешена для всех типов ордеров. Разрешенность остальных типов проверяется при помощи свойств SYMBOL_FILLING_FOK и SYMBOL_FILLING_IOC. 

 Однако не всегда. Так на счетах в Robo "Вернуть" не работает, ни на счетах Pro, ни на счетах ECN.

 
Andrey Dik:

В справке сказано:

В режимах исполнения "По рынку" и "Биржевой" политика заполнения "Вернуть" всегда разрешена для всех типов ордеров. Разрешенность остальных типов проверяется при помощи свойств SYMBOL_FILLING_FOK и SYMBOL_FILLING_IOC. 

 Однако не всегда. Так на счетах в Robo "Вернуть" не работает, ни на счетах Pro, ни на счетах ECN.

Как раз на робо столкнулся

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

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

fxsaber, 2016.10.20 08:24

СБ на всех торговых серверах
//+------------------------------------------------------------------+
//| Get the property value "ORDER_TYPE_FILLING"                      |
//+------------------------------------------------------------------+
ENUM_ORDER_TYPE_FILLING COrderInfo::TypeFilling(void) const
  {
   return((ENUM_ORDER_TYPE_FILLING)OrderGetInteger(ORDER_TYPE_FILLING));
  }

ВСЕГДА в тестере возвращает ENUM_ORDER_TYPE_FILLING::ORDER_FILLING_RETURN.

Поэтому если в OrderModify filling задать через COrderInfo::TypeFilling(), то на том же RoboForexEU-MetaTrader 5 будет логичная ошибка [Unsupported filling mode]. Однако, на MetaQuotes-Demo этой ошибки не возникает - криво настроен сервер разработчиков?



 
Andrey Dik:

В справке сказано:

В режимах исполнения "По рынку" и "Биржевой" политика заполнения "Вернуть" всегда разрешена для всех типов ордеров. Разрешенность остальных типов проверяется при помощи свойств SYMBOL_FILLING_FOK и SYMBOL_FILLING_IOC. 

 Однако не всегда. Так на счетах в Robo "Вернуть" не работает, ни на счетах Pro, ни на счетах ECN.

Есть подозрение что настройка заливки "Вернуть" вообще у всех торговых серверов стоит по-умолчанию (по крайней мере в FxPro так и ответили

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

Режимы заполнения на серверах

Karputov Vladimir, 2016.10.14 19:18

Режим заполнения "Return":

Вернуть

Идентификатор отсутствует

 

Данный режим используется для рыночных (Buy и Sell), лимитных и стоп-лимитных ордеров и только в режимах "Исполнение по рынку" и "Биржевое исполнение". В случае частичного исполнения рыночный или лимитный ордер с остаточным объемом не снимается, а продолжает действовать.

А вот и ответ от торговой организации, касательно режима заполнения "Return" 

Our MT5 expert has confirmed with Metaquotes, that return is using by default, and its applied when you choose nothing on filling.

) 

Другими словами - это какая-то заглушка.