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

 

Сделайте что нибудь с окном закрытия ордеров.
Номера ордеров не видны полностью. При изменении ширины столбца, он не фиксируется и сужается обратно. И само окно нет возможности растянуть.


 

 Невозможно вывести значение пятого разряда функцией SetLevelValue()

//+------------------------------------------------------------------+
//|                                               Ind_TickTest01.mq4 |
//|                        Copyright 2015, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property indicator_separate_window
#property indicator_buffers 2
//-----
double   Buffer0[];
double   Buffer1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
   IndicatorSetInteger(INDICATOR_DIGITS,8);
   SetIndexBuffer(0,Buffer0);
   SetIndexBuffer(1,Buffer1);
//-----
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   IndicatorShortName("Ind Bid NO 5-ZNAK!!! >>"+DoubleToString(Bid,_Digits));
   Buffer0[0]=Bid-0.00015;
   Buffer1[0]=Bid+0.00015;
   SetLevelValue(0,Bid-0.0001);
   SetLevelValue(1,Bid-0.00005);
   SetLevelValue(2,Bid);
   SetLevelValue(3,Bid+0.00005);
   SetLevelValue(4,Bid+0.0001);
   return(rates_total);
  }
//+------------------------------------------------------------------+

 Результат:

 NO5-Znak

 
IndicatorDigits. Сейчас хз как называется. Думаю щас кто-нибудь подскажет
 
Комбинатор:
IndicatorDigits. Сейчас хз как называется. Думаю щас кто-нибудь подскажет

Так наверное ;)

IndicatorSetInteger(INDICATOR_DIGITS,Digits());
 
Artyom Trishkin:

Так наверное ;)

Пробовал - не помогает.

Нет пятого знака 

 

 

//+------------------------------------------------------------------+
//|                                               Ind_TickTest01.mq4 |
//|                        Copyright 2015, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property indicator_separate_window
#property indicator_buffers 2
//----- indicator_levelN
double   Buffer0[];
double   Buffer1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
   IndicatorSetInteger(INDICATOR_DIGITS,5);
   SetIndexBuffer(0,Buffer0);
   SetIndexBuffer(1,Buffer1);
//-----
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   IndicatorShortName("Ind Bid NO 5-ZNAK!!! >>"+DoubleToString(Bid,_Digits));
   Buffer0[0]=Bid-0.00015;
   Buffer1[0]=Bid+0.00015;
   SetLevelValue(0,Bid-0.0001);
   SetLevelValue(1,Bid-0.000075);
   SetLevelValue(2,Bid-0.00005);
   SetLevelValue(3,Bid-0.000025);
   SetLevelValue(4,Bid);
   SetLevelValue(5,Bid+0.000025);
   SetLevelValue(6,Bid+0.00005);
   SetLevelValue(7,Bid+0.000075);
   SetLevelValue(8,Bid+0.0001);
   return(rates_total);
  }
//+------------------------------------------------------------------+
 
Yury Kirillov:

Пробовал - не помогает.

 

 

 

Ответ СД:

Support Team 2015.11.20 14:33

В четвёрке уровни выводятся с точностью до 4 знаков.

Раньше никто не обращал на это внимания. Поэтому это место до сих пор и не трогали.

Сделаем, чтобы выводилось с точностью Digits индикатора 

 

Ошибка компиляции

struct A {
        int a1;
        int a2;
};
struct B {
        static A a;
        static int b1;
        static int b2;
        static int b3;
};
A B::a = { 2, 3 };
int B::b1 = 1;
int B::b2 = B::b1;   //нормально
int B::b3 = B::a.a2; //'a2' - non-static members and methods cannot be used
Достаточно, что B::a - static
 

Сначала думал, что это проблема моих индикаторов, а потом понял - всё глючит.

Загружаю терминал - история котировок остаётся старая (прошлой сессии как будто бы не было) и история не обновляется автоматически.

Цена старая, а буферы индикаторов почему-то показывают прошлый расчёт (новых цен).

Когда рынок открыт, "хрень" обновляется (видимо на новом тике) и всё становится нормально.

Когда рынок закрыт, можно созерцать "на выходные" "мусор" из буферов если принудительно не обновить котировки.

Для наглядности прикрепляю график со стандартным SMA из набора индикаторов MT5:

Стандартный индикатор для примера

Билд 2010, да и на старых было аналогично.

 

Что произошло с МТ5?

с утра встал и не работает ни один советник в тестере стратегий... не открываются позиции...

вчера вечером все работали... а сегодня более 10 советников перестали функционировать

как старые, так и новые 

 

Ошибка компиляции: code generation error 

class A { public:
        void g() {}
};
struct B {
/**/    virtual void f() { g(); }
        virtual void g() {}
};
A *f() export { return new A(); }
void OnStart()
{
        f().g();
}
Если например убрать export или закомментировать строку /**/ то она(ошибка) исчезет, а значит компилятор нуждается в доработке.