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

 
Yury Kirillov:

Помогает повторный запуск с небольшой задержкой, что-то вроде:

int err=-1;
      int count=5;
      {while((err!=0)&&(count>0))
      {
         ResetLastError();
         EventSetMillisecondTimer(MSTimerSet);                    //Установка таймера XXX миллисекунд
         err=GetLastError();
         Print("EventSetMillisecondTimer n=",count," err >>",err);
         {if(err!=0){Sleep(50);}}
      }}//while((err!=0)&&(count>0))
Опытным путем удалось выяснить, что таймер вешается когда глючит инета. Терминал замирает и таймер слетает.  Т.е. Он может слетать просто так. Когда инета тормозит.

Поэтому я сделал по другому, а именно. Запуск таймера в тике. 
 

Ошибка при выполнении

typedef void (*fn)();
class A { public:
        fn a;
};
class B : public A { public:
        void a() { Print( __FUNCSIG__ ); }
};
void OnStart()
{
        B b;
        b.a();
}

Результат: invalid function pointer call; ожидалось выполнение B::a()

и здесь же -> ошибка при компиляции

typedef void (*fn)( int );
class A { public:
        fn a;
};
class B : public A { public:
        void a() { Print( __FUNCSIG__ );  }
};
void OnStart()
{
        B b;
        b.a(); //Error: 'a' - wrong parameters count
}
 
МТ4 пропускает пользовательские события пачками. Это фича или баг?
 
Andrey Dik:
МТ4 пропускает пользовательские события пачками. Это фича или баг?

 


только что проверил на панельке - все ок, все события отрабатываются в норме

 
Vladislav Andruschenko:

только что проверил на панельке - все ок, все события отрабатываются в норме

Я запустил шпионов на несколько символов, а советник получает события от этих шпионов когда приходят тики. На МТ5 все события успевают приходить, а на МТ4 видны замирания иногда на секунду и больше.
Ничего тяжёлого не выполняется, открыт один график.
 
Не могу получить адекватное значение требуемой маржи на открытие позиции. По всем инструментам получаю одинаковое значение, на разных брокеров по разному, у одного показывает по всем символам 0.0, у другого 100000.0.

Что такое творится с МТ4? Win 10 64, МТ4 build 1031

делаю так:

void OnStart()
{
  Print(MarketInfo (Symbol (), MODE_MARGININIT));
  Print(MarketInfo (Symbol (), MODE_MARGINMAINTENANCE));
  Print(MarketInfo (Symbol (), MODE_MARGINHEDGED));
  Print(MarketInfo (Symbol (), MODE_MARGINREQUIRED));
  Print(SymbolInfoDouble (Symbol (),SYMBOL_MARGIN_INITIAL));
}
Или МТ4 совсем поламался, или я вообще разучился и перестал понимать МТ4.

Вот значения полученные у 2-х брокеров:


2017.01.31 22:15:59.312    Script MarginReq AUDCHF,M15: removed
2017.01.31 22:15:59.310    MarginReq AUDCHF,M15: uninit reason 0
2017.01.31 22:15:59.310    MarginReq AUDCHF,M15: 0.0
2017.01.31 22:15:59.310    MarginReq AUDCHF,M15: 1000.0
2017.01.31 22:15:59.310    MarginReq AUDCHF,M15: 100000.0
2017.01.31 22:15:59.310    MarginReq AUDCHF,M15: 0.0
2017.01.31 22:15:59.310    MarginReq AUDCHF,M15: 0.0
2017.01.31 22:15:59.309    MarginReq AUDCHF,M15: initialized
2017.01.31 22:15:59.300    MarginReq AUDCHF,M15 inputs: Input1=0;
2017.01.31 22:15:57.899    Script MarginReq AUDCHF,M15: loaded successfully
2017.01.31 22:13:38.077    Script MarginReq AUDCHF,M15: removed
2017.01.31 22:13:38.075    MarginReq AUDCHF,M15: uninit reason 0
2017.01.31 22:13:38.075    MarginReq AUDCHF,M15: 100000.0
2017.01.31 22:13:38.075    MarginReq AUDCHF,M15: 1000.0
2017.01.31 22:13:38.075    MarginReq AUDCHF,M15: 100000.0
2017.01.31 22:13:38.075    MarginReq AUDCHF,M15: 0.0
2017.01.31 22:13:38.075    MarginReq AUDCHF,M15: 100000.0
2017.01.31 22:13:38.075    MarginReq AUDCHF,M15: initialized
2017.01.31 22:13:38.066    MarginReq AUDCHF,M15 inputs: Input1=0;
2017.01.31 22:13:36.806    Script MarginReq AUDCHF,M15: loaded successfully
Фигня какая то.
 
Andrey Dik:
Не могу получить адекватное значение требуемой маржи на открытие позиции. По всем инструментам получаю одинаковое значение, на разных брокеров по разному, у одного показывает по всем символам 0.0, у другого 100000.0.

Что такое творится с МТ4? Win 10 64, МТ4 build 1031

делаю так:

void OnStart()
{
  Print(MarketInfo (Symbol (), MODE_MARGININIT));
  Print(MarketInfo (Symbol (), MODE_MARGINMAINTENANCE));
  Print(MarketInfo (Symbol (), MODE_MARGINHEDGED));
  Print(MarketInfo (Symbol (), MODE_MARGINREQUIRED));
  Print(SymbolInfoDouble (Symbol (),SYMBOL_MARGIN_INITIAL));
}
Или МТ4 совсем поламался, или я вообще разучился и перестал понимать МТ4.

Вот значения полученные у 2-х брокеров:


2017.01.31 22:15:59.312    Script MarginReq AUDCHF,M15: removed
2017.01.31 22:15:59.310    MarginReq AUDCHF,M15: uninit reason 0
2017.01.31 22:15:59.310    MarginReq AUDCHF,M15: 0.0
2017.01.31 22:15:59.310    MarginReq AUDCHF,M15: 1000.0
2017.01.31 22:15:59.310    MarginReq AUDCHF,M15: 100000.0
2017.01.31 22:15:59.310    MarginReq AUDCHF,M15: 0.0
2017.01.31 22:15:59.310    MarginReq AUDCHF,M15: 0.0
2017.01.31 22:15:59.309    MarginReq AUDCHF,M15: initialized
2017.01.31 22:15:59.300    MarginReq AUDCHF,M15 inputs: Input1=0;
2017.01.31 22:15:57.899    Script MarginReq AUDCHF,M15: loaded successfully
2017.01.31 22:13:38.077    Script MarginReq AUDCHF,M15: removed
2017.01.31 22:13:38.075    MarginReq AUDCHF,M15: uninit reason 0
2017.01.31 22:13:38.075    MarginReq AUDCHF,M15: 100000.0
2017.01.31 22:13:38.075    MarginReq AUDCHF,M15: 1000.0
2017.01.31 22:13:38.075    MarginReq AUDCHF,M15: 100000.0
2017.01.31 22:13:38.075    MarginReq AUDCHF,M15: 0.0
2017.01.31 22:13:38.075    MarginReq AUDCHF,M15: 100000.0
2017.01.31 22:13:38.075    MarginReq AUDCHF,M15: initialized
2017.01.31 22:13:38.066    MarginReq AUDCHF,M15 inputs: Input1=0;
2017.01.31 22:13:36.806    Script MarginReq AUDCHF,M15: loaded successfully
Фигня какая то.

 попроьбуйте

AccountFreeMarginCheck 

 
Vladislav Andruschenko:

 попроьбуйте

AccountFreeMarginCheck 

Не помогло.

И я разобрался почему. Для того, что бы работали правильно все эти функции, необходимо что бы в обзоре рынка были открыты соответствующие символы для расчета. В МТ5 это делается автоматом (в фоновом режиме), а в МТ4 нужно явно открывать символы в обзоре рынка.

Мне интересно, как работают Ваши советники которые в маркете?

В справке я не нашёл никакой информации на эту тему.

PS. Print(MarketInfo (Symbol (), MODE_MARGINREQUIRED)); вот это даст то что нужно. Правда придется делать многократные попытки.
 
Andrey Dik:
Не помогло.

И я разобрался почему. Для того, что бы работали правильно все эти функции, необходимо что бы в обзоре рынка были открыты соответствующие символы для расчета. В МТ5 это делается автоматом (в фоновом режиме), а в МТ4 нужно явно открывать символы в обзоре рынка.

Мне интересно, как работают Ваши советники которые в маркете?

В справке я не нашёл никакой информации на эту тему.

PS. Print(MarketInfo (Symbol (), MODE_MARGINREQUIRED)); вот это даст то что нужно. Правда придется делать многократные попытки.


Не поверите но ни разу ещё не было глюков с этой функцией. Все работает как часики. 
 

Подскажите, mt4 для windows работает на windows 10 mobile?