Ошибки, баги, вопросы - страница 1777
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
таймер-тоне чаще чем раз в 1 сек срабатывает при условии что из старта вышли.
это редко.
или были нововведения?
давно есть микротаймер, который срабатывает 1 раз в 1 мс
но сейчас стаймером в мт4 беда, он почему то перестает работать. Никто не знает ответ "ПОЧЕМУ"
давно есть микротаймер, который срабатывает 1 раз в 1 мс
но сейчас стаймером в мт4 беда, он почему то перестает работать. Никто не знает ответ "ПОЧЕМУ"
в общем не работает.
сейчас в принципе таймер любой - на некоторых терминалах не работает, даже администрация не знает почему.
но есть догадки - подвисает интернет и собственно таймер "вешается"
но сейчас стаймером в мт4 беда, он почему то перестает работать. Никто не знает ответ "ПОЧЕМУ"
Вроде как может помочь перезапуск терминала или перекомпиляция. но сама бага БЕСИТ.
да , но клиентам то это не обьяснишь?
вот представьте, работает эксперт, работает работает, ты идешь спать, спишь, просыпаешься а эксперт не работает, почему? потому что таймер повесился, и что делать, кто виноват?
да , но клиентам то это не обьяснишь?
Спасибо, проверьте еще, пожалуйста, номер первого видимого бара на графике: ChartGetInteger( 0, CHART_FIRST_VISIBLE_BAR );
Суть в том, что если отключить прокрутку графика, и мониторить последний видимый бар, то в момент образования новой свечи его номер, почему-то изменяется, хотя график не двигается! ТФ М1 для того, чтобы можно было быстрее проверить. Запуск из индикатора:
#property indicator_plots 0
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//--- Подписываемся на событие движения мыши
ChartSetInteger( 0, CHART_EVENT_MOUSE_MOVE, true );
//---
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[])
{
return(rates_total);
}
//+------------------------------------------------------------------+
//| Обработка события графика |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,const long& lparam,const double& dparam,const string& sparam)
{
switch( id )
{
case CHARTEVENT_MOUSE_MOVE:
Print( __FUNCTION__," "+TimeToString( TimeCurrent(), TIME_DATE|TIME_SECONDS )+": sparam = "+sparam+", ",(int)ChartGetInteger( 0, CHART_FIRST_VISIBLE_BAR ));
break;
}
}
Это стандартное поведение. Отсчет начинается с текущего, строящегося бара. Соответственно, с появлением нового бара, при отсутствии автопрокрутки, его номер увеличивается на единицу.
Добрый день!
Это стандартное поведение. Отсчет начинается с текущего, строящегося бара. Соответственно, с появлением нового бара, при отсутствии автопрокрутки, его номер увеличивается на единицу.
Ошибка при выполнении в результате компиляции
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))