Ошибки, баги, вопросы - страница 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.

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