Глобальные переменные изменяются:
- NewStopLoss 232 (изменение/обращение было 31 октября, несколько секунд
назад)
- NewTakeProfit 25 (изменение/обращение было 31 октября, несколько секунд назад)
- StepArray 92 (изменение/обращение было 31 октября, несколько секунд назад)
- VolantSpace 164 (изменение/обращение было 23 октября)
Самое странное, что я прогоняю советника у себя на машине на
вашей истории и у меня он закрывается 26-го числа. Даже запускал
при полном отсутствии минутной истории, все равно закрывается
26-го числа.
Такой эффект "зависания" я наблюдал ещё до 193 билда (или
194, не помню точно), когда терминал уходил в бесконечное ожидание
котировки при определенных обстоятельствах. Вы этот баг вроде
как пофиксили, но симптомы очень похожи, терминал вроде работает,
обращается к переменным, отрабатывается функция старт, но котировки
не обновляются.
Есть ли у вас техническая возможность проверить, что котировки
в терминале обновляются и если не обновляются, то исправить
эту ситуацию?
Извините за беспокойство...
Все котировки в терминале обновляются, я специально указал, что данные глобальных переменных были изменены/обновлены/были обращения за несколько секунд до моей проверки. Старт вызывается только на приходе новой котировки.
2006.11.01 13:52:07 Rand USDCHF,H1: removed
2006.11.01 13:52:07 Rand USDCHF,H1: 16692
2006.11.01 13:52:07 Rand USDCHF,H1: 31921
2006.11.01 13:52:07 Rand USDCHF,H1: 4522
2006.11.01 13:52:07 Rand USDCHF,H1: 8248
2006.11.01 13:52:07 Rand USDCHF,H1: 14912
2006.11.01 13:52:07 Rand USDCHF,H1: 26832
2006.11.01 13:52:07 Rand USDCHF,H1: 8305
2006.11.01 13:52:07 Rand USDCHF,H1: 20791
2006.11.01 13:52:07 Rand USDCHF,H1: 2510
2006.11.01 13:52:07 Rand USDCHF,H1: 30058
2006.11.01 13:52:07 Rand USDCHF,H1: loaded successfully
Теоретически существует вероятность того, что данный скрипт
будет выдавать ряд одинаковых значений. Потому, что MathSrand может быть проинициализирована одним и тем же значением. Дело
в том, что GetTickCount, вызванный в пределах от 0 до 15 миллисекунд
будет возвращать такое же значение, что и при первом вызове.
Точность у неё такая. То есть, на быстром компьютере - запросто!
MAEstro, а почему Вы не вызываете MathSrand только один раз?
Теоретически существует вероятность того, что данный скрипт
будет выдавать ряд одинаковых значений. Потому, что MathSrand может
быть проинициализирована одним и тем же значением. Дело в том,
что GetTickCount, вызванный в пределах от 0 до 15 миллисекунд будет
возвращать такое же значение, что и при первом вызове. Точность
у неё такая. То есть, на быстром компьютере - запросто!
MAEstro, а почему Вы не вызываете MathSrand только один раз?
Ув. stringo, я вызываю MathSrand() именно один раз, это в скрипте достаточно хорошо видно, на эти грабли я уже наступал в тестере.
Я попробовал симулировать ситуацию, что GetTickCount() выдает нулевое значение или одно и тоже, эскперт все равно должен был уже закрыться, так что скорей всего что дело не в этом, если только GetTickCount() не возвращает значение отличное от числового. (хотелось бы все-таки увидеть что выдает вышеприведенный скрипт на Вашем сервере).
Насчет "излишней чувствительности" - это не про моего эксперта, он абсолютно не привязывается к конкретным значениям цены, а реагирует на объем совокупной прибыли. Так вот, объем прибыли уже более чем в 20 раз превысил тот порог при котором он должен был закрыться!!
Закрываю позиции я по семафору, т.е. пока позиции не будут закрыты, эксперт на каждом тике будет пытаться их закрыть.
Я просто теряюсь в догадках, что могло произойти, но упорно склоняюсь к мысли, что проблемы в терминале, а не в советнике...
Да, точно. Я не обратил внимание на переменную start
Вот что получилось у нас:
===
10:03:58 Compiling 'RAND'
10:04:03 RAND EURUSD,H1: loaded successfully
10:04:03 RAND EURUSD,H1: 2654
10:04:03 RAND EURUSD,H1: 7309
10:04:03 RAND EURUSD,H1: 22535
10:04:03 RAND EURUSD,H1: 13114
10:04:03 RAND EURUSD,H1: 3502
10:04:03 RAND EURUSD,H1: 15192
10:04:03 RAND EURUSD,H1: 14268
10:04:03 RAND EURUSD,H1: 15639
10:04:03 RAND EURUSD,H1: 23905
10:04:03 RAND EURUSD,H1: 19365
10:04:03 RAND EURUSD,H1: removed
===
GetTickCount выдаст нулевое значение только через 48 дней непрерывной работы компьютера.
В подавляющем большинстве случаев идущие подряд GetTickCount выдадут одно и то же число. Попробуйте покрутить следующий скрипт:
//+------------------------------------------------------------------+ //| TestGetTickCount.mq4 | //| Copyright © 2006, MetaQuotes Software Corp. | //| https://www.metaquotes.net/ | //+------------------------------------------------------------------+ #property copyright "Copyright © 2006, MetaQuotes Software Corp." #property link "https://www.metaquotes.net/" //+------------------------------------------------------------------+ //| script program start function | //+------------------------------------------------------------------+ int start() { int cnt1,cnt2,cnt3; //---- for(int i=0; i<100; i++) { cnt1=GetTickCount(); cnt2=GetTickCount(); cnt3=GetTickCount(); Print(cnt1," ",cnt2," ",cnt3); } //---- return(0); } //+------------------------------------------------------------------+
У меня получился следующий вывод:
===
10:02:21 Compiling 'TestGetTickCount'
10:02:43 TestGetTickCount EURUSD,H1: loaded successfully
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: 1401718 1401718 1401718
10:02:43 TestGetTickCount EURUSD,H1: removed
===
Я похоже разобрался в чем дело!
Ждем когда пройдет 48 дней ;)
Функция MathSRand() не совсем корректно работает если её инициализировать достаточно большими значениями.
Погоняте прилагаемый скрипт на сервере чемпионата и посмотрите какое минимальное значение выдается и сравните со значениями на другом компьютере.
В принципе это нельзя назвать ошибкой платформы как таковой, но я предполагал более равномерную работу генератора случайных чисел.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
В логах сайта чемпионата отражается, что происходит логин терминала к серверу, а можно ли проверить, что запускается функция Start()?
Огромная просьба к администрации проверить этот факт и при необходимости запустить терминал!!!
И ещё, если это возможно, сообщите текущее значение глобальной переменной "NewTakeProfit", это может пролить свет на текущую ситуацию.
P.S. я уже тысячу раз пожалел о том, что выключил логи :(