Помогает повторный запуск с небольшой задержкой, что-то вроде:
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))
Опытным путем удалось выяснить, что таймер вешается когда глючит инета. Терминал замирает и таймер слетает. Т.е. Он может слетать просто так. Когда инета тормозит.
Поэтому я сделал по другому, а именно. Запуск таймера в тике.
typedefvoid (*fn)(); class A { public: fn a; }; class B : public A { public: void a() { Print( __FUNCSIG__ ); } }; voidOnStart() { B b; b.a(); }
Результат: invalid function pointer call; ожидалось выполнение B::a()
и здесь же -> ошибка при компиляции
typedefvoid (*fn)( int ); class A { public: fn a; }; class B : public A { public: void a() { Print( __FUNCSIG__ ); } }; voidOnStart() { B b; b.a(); //Error: 'a' - wrong parameters count }
только что проверил на панельке - все ок, все события отрабатываются в норме
Я запустил шпионов на несколько символов, а советник получает события от этих шпионов когда приходят тики. На МТ5 все события успевают приходить, а на МТ4 видны замирания иногда на секунду и больше. Ничего тяжёлого не выполняется, открыт один график.
Не могу получить адекватное значение требуемой маржи на открытие позиции. По всем инструментам получаю одинаковое значение, на разных брокеров по разному, у одного показывает по всем символам 0.0, у другого 100000.0.
Что такое творится с МТ4? Win 10 64, МТ4 build 1031
Andrey Dik: Не могу получить адекватное значение требуемой маржи на открытие позиции. По всем инструментам получаю одинаковое значение, на разных брокеров по разному, у одного показывает по всем символам 0.0, у другого 100000.0.
Что такое творится с МТ4? Win 10 64, МТ4 build 1031
И я разобрался почему. Для того, что бы работали правильно все эти функции, необходимо что бы в обзоре рынка были открыты соответствующие символы для расчета. В МТ5 это делается автоматом (в фоновом режиме), а в МТ4 нужно явно открывать символы в обзоре рынка.
Мне интересно, как работают Ваши советники которые в маркете?
В справке я не нашёл никакой информации на эту тему.
PS. Print(MarketInfo (Symbol (), MODE_MARGINREQUIRED)); вот это даст то что нужно. Правда придется делать многократные попытки.
И я разобрался почему. Для того, что бы работали правильно все эти функции, необходимо что бы в обзоре рынка были открыты соответствующие символы для расчета. В МТ5 это делается автоматом (в фоновом режиме), а в МТ4 нужно явно открывать символы в обзоре рынка.
Мне интересно, как работают Ваши советники которые в маркете?
В справке я не нашёл никакой информации на эту тему.
PS. Print(MarketInfo (Symbol (), MODE_MARGINREQUIRED)); вот это даст то что нужно. Правда придется делать многократные попытки.
Не поверите но ни разу ещё не было глюков с этой функцией. Все работает как часики.
Помогает повторный запуск с небольшой задержкой, что-то вроде:
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))
Ошибка при выполнении
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()
и здесь же -> ошибка при компиляции
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 пропускает пользовательские события пачками. Это фича или баг?
только что проверил на панельке - все ок, все события отрабатываются в норме
только что проверил на панельке - все ок, все события отрабатываются в норме
Ничего тяжёлого не выполняется, открыт один график.
Что такое творится с МТ4? Win 10 64, МТ4 build 1031
делаю так:
{
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));
}
Вот значения полученные у 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
Не могу получить адекватное значение требуемой маржи на открытие позиции. По всем инструментам получаю одинаковое значение, на разных брокеров по разному, у одного показывает по всем символам 0.0, у другого 100000.0.
Что такое творится с МТ4? Win 10 64, МТ4 build 1031
делаю так:
{
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));
}
Вот значения полученные у 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
попроьбуйте
AccountFreeMarginCheck
И я разобрался почему. Для того, что бы работали правильно все эти функции, необходимо что бы в обзоре рынка были открыты соответствующие символы для расчета. В МТ5 это делается автоматом (в фоновом режиме), а в МТ4 нужно явно открывать символы в обзоре рынка.
Мне интересно, как работают Ваши советники которые в маркете?
В справке я не нашёл никакой информации на эту тему.
PS. Print(MarketInfo (Symbol (), MODE_MARGINREQUIRED)); вот это даст то что нужно. Правда придется делать многократные попытки.
Не помогло.
И я разобрался почему. Для того, что бы работали правильно все эти функции, необходимо что бы в обзоре рынка были открыты соответствующие символы для расчета. В МТ5 это делается автоматом (в фоновом режиме), а в МТ4 нужно явно открывать символы в обзоре рынка.
Мне интересно, как работают Ваши советники которые в маркете?
В справке я не нашёл никакой информации на эту тему.
PS. Print(MarketInfo (Symbol (), MODE_MARGINREQUIRED)); вот это даст то что нужно. Правда придется делать многократные попытки.
Подскажите, mt4 для windows работает на windows 10 mobile?