Ошибки, баги, вопросы - страница 1778
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Добрый день!
Это стандартное поведение. Отсчет начинается с текущего, строящегося бара. Соответственно, с появлением нового бара, при отсутствии автопрокрутки, его номер увеличивается на единицу.
Ошибка при выполнении в результате компиляции
void OnStart()
{
Print( MACRO( "1\0" )); //равносильно Print( "\"1\\0\"" );
}
Результат : 1
Ожидалось: "1\0"
т.е. 2-ве ошибки: пропущены кавычки " и неправильно интерпретирован символ \
и далее
{
Print( MACRO( 1\0 )); //Error: '\' - illegal escape sequence
}
да , но клиентам то это не обьяснишь?
вот представьте, работает эксперт, работает работает, ты идешь спать, спишь, просыпаешься а эксперт не работает, почему? потому что таймер повесился, и что делать, кто виноват?
Помогает повторный запуск с небольшой задержкой, что-то вроде:
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))
Помогает повторный запуск с небольшой задержкой, что-то вроде:
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