Ну так и у меня всё работает так же как и работало до того... Никаких изменений! У меня даже функция открытия нового бара есть:
bool isNewBar()
{
staticdatetime lastBar; // Задаём переменную для времени открытия последнего бараdatetime currBar; // Задаём переменную для времени открытия текущего бара
currBar = iTime(Symbol(),PERIOD_M1,0); // Находим время открытия текущего бараif(lastBar!=currBar) // Если время открытия последнего бара не равно времени открытия текущего бара, то...
{
lastBar=currBar;
return(true);
}
return(false);
}
которая тоже работает исправно. Поэтому тут уже пошли придирки к моему коду необоснованные. А вопрос был вообще корректный. Видимо тестер глючный, вот и показания кривые. На М5 как-то чище, на М15 тоже Н1 уже абы-как.
Ну так и у меня всё работает так же как и работало до того... Никаких изменений! У меня даже функция открытия нового бара есть:
которая тоже работает исправно. Поэтому тут уже пошли придирки к моему коду необоснованные. А вопрос был вообще корректный. Видимо тестер глючный, вот и показания кривые. На М5 как-то чище, на М15 тоже Н1 уже абы-как.
Сразу, навскидку, я бы посоветовал бы написать if(lastBar<currBar), хотя это вряд-ли это что-то изменит. Дальше пройдусь по Вашим сообщениям, может ещё что скажу.
Ну так и у меня всё работает так же как и работало до того... Никаких изменений! У меня даже функция открытия нового бара есть:
которая тоже работает исправно. Поэтому тут уже пошли придирки к моему коду необоснованные. А вопрос был вообще корректный. Видимо тестер глючный, вот и показания кривые. На М5 как-то чище, на М15 тоже Н1 уже абы-как.
Может поможет. Ваша функция start() немного переработанная. Глубоко не вникал, но все же:
int start()
{
fastMa = iMA(NULL,i_TF,i_fastMaPeriod,0,MODE_EMA,MODE_CLOSE,1);
slowMa = iMA(NULL,i_TF,i_slowMaPeriod,0,MODE_EMA,MODE_CLOSE,1);
/* Print("Bid = ", Bid);
Print("Ask = ", Ask);
Print("fastMa = ", fastMa);
Print("i_thresholdFromMa * pt = ", i_thresholdFromMa * pt);
*/// Отслеживание открытия нового бараstaticdatetime lastBarTime = iTime(NULL, 0, 1)); // Время проведения последних рассчётов, изначально принимаем предыдущий барif (lastBarTime < iTime(NULL, 0, 0)) // Если случился новый бар// Рассчёт сигнала
{
if("На этом баре случилось что-то, что вынуждает ждать следуещего бара")
{
..........// Выполняем действия открытия/закрытия или что-то там ещё...
lastBarTime = iTime(NULL, 0, 0); // На текущем баре все необходимые действия выполнены, ждём следуещего бара..
}
else
{
"Ничего не случилось, ждем до следуещего тика"
}
}
// .. успешно выполненыreturn (0);
}
Ну так и у меня всё работает так же как и работало до того... Никаких изменений! У меня даже функция открытия нового бара есть:
которая тоже работает исправно. Поэтому тут уже пошли придирки к моему коду необоснованные. А вопрос был вообще корректный. Видимо тестер глючный, вот и показания кривые. На М5 как-то чище, на М15 тоже Н1 уже абы-как.
Применительно к Вашей ситуации:
Время инициализировалось один раз - при запуске советника, больше оно инициализироваться не будет, поэтому при переключении с М1 на D1 Вам придется ждать обновления графика примерно сутки :(
Время инициализировалось один раз - при запуске советника, больше оно инициализироваться не будет, поэтому при переключении с М1 на D1 Вам придется ждать обновления графика примерно сутки :(
Эксперт то работает на канкретном ТФ. С чего бы то вдруг мне понадобится переключать его ?
static работает 100 %. Вот вам тест:
И результаты:
Ну так и у меня всё работает так же как и работало до того... Никаких изменений! У меня даже функция открытия нового бара есть:
которая тоже работает исправно. Поэтому тут уже пошли придирки к моему коду необоснованные. А вопрос был вообще корректный. Видимо тестер глючный, вот и показания кривые. На М5 как-то чище, на М15 тоже Н1 уже абы-как.
Ну так и у меня всё работает так же как и работало до того... Никаких изменений! У меня даже функция открытия нового бара есть:
которая тоже работает исправно. Поэтому тут уже пошли придирки к моему коду необоснованные. А вопрос был вообще корректный. Видимо тестер глючный, вот и показания кривые. На М5 как-то чище, на М15 тоже Н1 уже абы-как.
Сразу, навскидку, я бы посоветовал бы написать if(lastBar<currBar), хотя это вряд-ли это что-то изменит. Дальше пройдусь по Вашим сообщениям, может ещё что скажу.
Ну так и у меня всё работает так же как и работало до того... Никаких изменений! У меня даже функция открытия нового бара есть:
которая тоже работает исправно. Поэтому тут уже пошли придирки к моему коду необоснованные. А вопрос был вообще корректный. Видимо тестер глючный, вот и показания кривые. На М5 как-то чище, на М15 тоже Н1 уже абы-как.
Может поможет. Ваша функция start() немного переработанная. Глубоко не вникал, но все же:
Может поможет. Ваша функция start() немного переработанная. Глубоко не вникал, но все же:
Ну тут время рассчётов берётся с предыдущего бара. Это как-то не логично. Нам же нужен текущий бар.
лично я ниразу не сталкивался с неработающим статиком.
вот пример эксперта, хотите проверяйте на графике:
1. Запускаете эксперт.
2. Меняете ТФ.
3. Убеждаетесь, что сс не стало вновь равным 20.
Ну так и у меня всё работает так же как и работало до того... Никаких изменений! У меня даже функция открытия нового бара есть:
которая тоже работает исправно. Поэтому тут уже пошли придирки к моему коду необоснованные. А вопрос был вообще корректный. Видимо тестер глючный, вот и показания кривые. На М5 как-то чище, на М15 тоже Н1 уже абы-как.
Применительно к Вашей ситуации:
Время инициализировалось один раз - при запуске советника, больше оно инициализироваться не будет, поэтому при переключении с М1 на D1 Вам придется ждать обновления графика примерно сутки :(
Применительно к Вашей ситуации:
Время инициализировалось один раз - при запуске советника, больше оно инициализироваться не будет, поэтому при переключении с М1 на D1 Вам придется ждать обновления графика примерно сутки :(
Эксперт то работает на канкретном ТФ. С чего бы то вдруг мне понадобится переключать его ?
3. Убеждаетесь, что сс не стало вновь равным 20.
Это документированная особенность работы советников.
А что тогда Static? Это, скорее - Fatalic...
Кстати,- где документированная?
Эксперт то работает на канкретном ТФ. С чего бы то вдруг мне понадобится переключать его ?
Можете просто поменять какой-нибудь параметр. Реакция будет только после первого тика нового бара на установленном ТФ.
Да Вы ведь сами недоумевали,- почему на старших ТФ работа советника необъяснима:)