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

 
Alexey Viktorov #:

А что, открывашка и бкс уже начали заполнять эти поля соответствующим образом?

А разве сейчас есть такая возможность, сразу вместить несколько торговых сессий?

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

 
Roman #:

Ещё вопрос по массиву передаваемому в параметр функции.
Возможно ли как-то назначить массив необязательным параметром? 


Создайте вторую функцию без параметра-массива и вызывайте из неё первую, передавая пустой массив

void foo( int a, int b=0 )
{
   double arr[0];
   foo(a, b, arr);
}

 
Sergey Gridnev #:

Создайте вторую функцию без параметра-массива и вызывайте из неё первую, передавая пустой массив

void foo( int a, int b=0 )
{
   double arr[0];
   foo(a, b, arr);
}

Не люблю неявные определения.
Решил через перегрузку делать

void foo( int a )
{
}

void foo( int a, int b )
{
}

void foo( int a, int b, double & arr[] )
{
}
 
Aleksey Vyazmikin #:

А разве сейчас есть такая возможность, сразу вместить несколько торговых сессий?

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

Есть такая возможность. Ведь Just2Trade сделали. Но кроме этих торговых сессий есть ещё и непредвиденные остановки торговли. Самое простое решение выдавать

10018

TRADE_RETCODE_MARKET_CLOSED

Рынок закрыт


в структуру MqlTradeCheckResult 

 
Alexey Viktorov #:

Есть такая возможность. Ведь Just2Trade сделали. Но кроме этих торговых сессий есть ещё и непредвиденные остановки торговли. Самое простое решение выдавать

10018

TRADE_RETCODE_MARKET_CLOSED

Рынок закрыт


в структуру MqlTradeCheckResult 

Вот оно почему-то и при остановке торгов не сразу выдаётся. Ну и да, приходится бомбить ордерами, вместо того, чтобы проверять статус.

Очень сложно отлаживать работу на "планках".

 
Alexey Viktorov #:

Есть такая возможность. Ведь Just2Trade сделали. Но кроме этих торговых сессий есть ещё и непредвиденные остановки торговли. Самое простое решение выдавать

10018

TRADE_RETCODE_MARKET_CLOSED

Рынок закрыт


в структуру MqlTradeCheckResult 

А скриншотом покажите, интересно посмотреть, как это выглядит.

 
Aleksey Vyazmikin #:

А скриншотом покажите, интересно посмотреть, как это выглядит.

У меня сейчас нет доступа к Just2Trade 

Впервые я с этим столкнулся когда писал советник на заказ. Я проверяю на Just2Trade — всё работает. Заказчик говорит, что не работает… Жесть… Как это может быть? Потом разобрались, он проверял на открывашке.

 
1. Вопрос начального уровня.
class A
{
public:  
  virtual string GetMyName() const
  {
    return(typename(this));
  }
};

class B1 : public A {};
class B2 : public A {};
class B3 : public A {};

void OnStart()
{
  B1 b1;
  B2 b2;
  B3 b3;
  
  Print(b1.GetMyName()); // class A const, надо class B1 const
  Print(b2.GetMyName()); // class A const, надо class B2 const
  Print(b3.GetMyName()); // class A const, надо class B3 const
}
Возможно ли без копи-пасты виртуального метода в каждый класс получить нужный результат (см. комментарий в исходнике).
 

2. Вопрос начального уровня.

class A {};

class B1 : public A {};
class B2 : public A {};
class B3 : public A {};

void OnStart()
{
  A* a[3];
  
  a[0] = new B1;
  a[1] = new B2;
  a[2] = new B3;
  
  for (int i = 0; i < 3; i++)
    a[i] = new // ???? - как в цикле задать?
}

Нужно задать элементы массива в цикле (см. комментарий в исходнике).

 

3. Вопрос начального уровня.

class A {};

class B : public A {};

template <typename T>
T* New( T )
{
  return(new T);
}

void OnStart()
{
  B b;
  A* a = &b; // B-объект в A*.
  
  A* a2 = New(&b); // Здесь делается new B.
  A* a3 = New(a);  // Здесь делается new A, а надо new B.    
}

Нужно суметь создать такой же объект, на какой ссылается базовый указатель.

Причина обращения: