Различная скорость выполнения скрипта и советника... - страница 2

 
Пожалуйста:

2006.03.31 16:59:10 Замер EURUSD,H1: removed 2006.03.31 16:59:10 Замер EURUSD,H1: deinitialized 2006.03.31 16:58:51 Замер EURUSD,H1: initialized 2006.03.31 16:58:51 Замер EURUSD,H1: Время
 
Ну вот у господина Rosh та же проблема что и у меня. Спасибо Rosh за тест!
Может быть у Метаквотс немного другой билд на данный момент?
У меня версия MT4 Build 191 (8 Марта 2006)
То есть у Rosh получается, что старт выполняется 2514 для советника и всего 40 для эксперта!
Может быть кто-нибудь ещё попробует этот пример?
 
Слава гонял в офисе, а я прогнал у себя дома на билде 191 от 2 марта:
График пустой, 4418 баров, выходные, обновления не идут.

Запустил скрипт - заняло 16 ms:
2006.04.02 11:16:55 test9 EURUSD,Daily: removed 2006.04.02 11:16:55 test9 EURUSD,Daily: deinitialized 2006.04.02 11:16:55 test9 EURUSD,Daily: initialized 2006.04.02 11:16:55 test9 EURUSD,Daily: Время
 
Щас я попробую создать эксперт и скрипт заново из кода который я выложил здесь и протестировать.
Тестировал я по нескольку раз на разных валютах.
Кстати а можете ли вы прикрепить свой файл test9? Он совершено одинаков для скрипта и советника, но лежит в разных папках? И вы запускаете их простым петаскиванием с окна Навигатор на окно графика?
Можете ли вы этот файл test9 прикрепить сюда на форуме чтобы я его скачал и протестировал у себя. А я соответственно свои попробую прикрепить, если получится для теста.
А конфигурация компа у меня такая:
Пентиум4 1.8ГГерц Оперативная память 512 МБ. Операционка WinXP рус сервис пак 2. Кстати, что такие НТ? NT операционка чтоли? Или какой-то сопроцессор? На чарте ничего не было до запуска: ни индикаторов, ни каких других советников параллельно запущенно не было.
Тест проводил по нескольку раз. Раз 5 точно.
Вы вроде тоже всё правильно сделали.
Я попробую ещё разок прогнать. Странное это различие у вас и меня с Рошем. У меня всё как у роша, только числа другие, но разница в скорости так же
большая. На скрипт десятки мсек а на советник тысячи мсек и даже визуально замечаю, что объекты в советнике появляются через несколько секунд, а в скрипте мгновенно.
Кстати, попробуйте прогнать на часовиках и на др валютах.
 
test9 и есть скрипт, выложенный в этой ветке - просто такое название я дал.
Конечно же я перетаскивал скрипт из навигатора на график.

Пентиум4 1.8ГГерц - значит без Hyper Threading. Проверите у себя массу тестов.

Кстати, мы многократно говорили - не делайте из init() вызовы start().
 
Да, можно и не старт вызывать, а оформить какую-то функцию и вызывать её из старт и инит.
Я читал, что вы не советуете. Но я подумал, а какая мне разница вызывать старт или сделать другое название функции и вызывать из старт и инит? Кстати, попробую, а то вдруг вы и правда потом в программе эту функцию start и init, как то оформляете особым образом в программе скомпилированной.
На момент вызова инит мне главно чтобы были предопределённые переменные готовы типа Bars, Low, High ...
Вообще, я поэтому то и решил расчет предварительный по истории оформить ввиде скрипта, но код такой же как и у советника на данный момент получился. Интересно, а может быть именно из-за того что комп у меня без Hyper Threading, поэтому и выполняется старт медленее в советнике чем в скрипте. Я так подозреваю, что, возможно, вы сделали приоритет потока для советника с малым типа LOWEST_PRIORITY : ну, чтобы поток советника, который потоянно висит, не тормозир интерфейсный поток. Ведь старт вызывается на каждый тик и вы не захотели чтобы советник пользователя подвесил МТ4, и он не реагировал на команды мышки например. Это я так подозреваю, но может быть и не так. А так как у вас проц с HT, то там распараллеливание потоков идет наверно другим образом, и даже поток с приоритетом LOWEST выполняется быстро. Вероятно, у Rosh тоже проц без HT. Вот такие домыслы. Это реклама процов с Hyper Threading. Intel должна мне приплачивать :))))
 
Renat:

Кстати, мы многократно говорили - не делайте из init() вызовы start().
Так и и хочется перефразировать : не делайте из Init() слона :)
 
Да, у меня старенький комп, и никаких гиперсридингов в нем нет. :(
 
Вот в этом видимо и фишка. Нет у нас с тобою, Рош, HyperTreading. Мыж простые программисты советников :)
Вообще, видимо именно потому, что то в мт4 с приоритетом потоков проблема. А у метаквотевцев новые процы с новой технологией потоков.
Мож вот в этом собака порылась?
 
Совет: сделайте более простой чистый расчетный цикл на 500 ms и проведите замеры снова.
Так, чтобы код был из 15 строк.