Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Пополняй свой счет через платежную систему Visa QIWI Wallet
Sergey Dzyublik
4788
Sergey Dzyublik 2015.02.20 11:10 
Как такое можно вообще писать (+100 работ выполнено у автора):
int start() {
        int bar;

        for(bar = 0; bar < iBars(Symbol(), TimeFrame); bar++)
                obv_original[bar] = iCustom(Symbol(), TimeFrame, IndicatorPath, 0, bar);
        
        for(bar = 0; bar < Bars; bar++)
                obv_adapted[bar] = obv_original[iBarShift(Symbol(), TimeFrame, Time[bar])];     

//...........................................................
//...........................................................
}       




и за этот недо-индикатор ____40____  баксов брать...
Да, у всех есть свои велосипеды - но это как-то слишком круто.

Просто представьте сколько раз здесь вызывается Symbol() за тик.

Alexandr Bryzgalov
26183
Alexandr Bryzgalov 2015.02.20 11:25  
ALXIMIKS:
Как такое можно вообще писать (+100 работ выполнено у автора):

и за этот недо-индикатор ____40____  баксов брать...
Да, у всех есть свои велосипеды - но это как-то слишком круто.

Просто представьте сколько раз здесь вызывается Symbol() за тик.

У каждого свой стиль.

И что индикатор не работает?

ЗЫ: $40 это нормально, каждый привык к своим ценам.

Slawa
Модератор
6799
Slawa 2015.02.20 11:31  
ALXIMIKS:
Как такое можно вообще писать (+100 работ выполнено у автора):

и за этот недо-индикатор ____40____  баксов брать...
Да, у всех есть свои велосипеды - но это как-то слишком круто.

Просто представьте сколько раз здесь вызывается Symbol() за тик.

Вызов Symbol() преобразуется в доступ к переменной _Symbol. Так что, ничего страшного.

Почему Вы ничего не спросили про количество вызовов iBars?

Vasiliy Sokolov
21124
Vasiliy Sokolov 2015.02.20 11:35  
stringo:

Вызов Symbol() преобразуется в доступ к переменной _Symbol. Так что, ничего страшного.

Почему Вы ничего не спросили про количество вызовов iBars?

Мне вот интересно, почему он не спросил про полный перебор всех баров на каждом тике (при том дважды!):)
Dennis Kirichenko
10981
Dennis Kirichenko 2015.02.20 11:45  
Я даже догадываюсь, кто г@вноавтор этого г@внокода...
Victor Nikolaev
Модератор
14357
Victor Nikolaev 2015.02.20 11:53  
denkir:
Я даже догадываюсь, кто г@вноавтор этого г@внокода...

И кто же? Похоже разработчик делал мультитаймфреймный индикатор. Но поступил как проще. Без дополнительного контроля и  с перерасчетом каждого бара. В отдельных случаях помогает,я их правда не припомню. (В своих разработках). Ну не знал человек других вариантов, а сам на это не способен. Делает по аналогии. Хотя некоторый здравый смысл и авантюризм есть.

 

Код рабочий. Просто не стоит несколько индикаторов ставить на чарт. Можно забрать все доступные ресурсы

Alexey Kozitsyn
6207
Alexey Kozitsyn 2015.02.20 12:10  
ALXIMIKS:
Как такое можно вообще писать (+100 работ выполнено у автора):

и за этот недо-индикатор ____40____  баксов брать...
Да, у всех есть свои велосипеды - но это как-то слишком круто.

Просто представьте сколько раз здесь вызывается Symbol() за тик.

Можно проверить, за сколько мс будет выполнен проход с Symbol() и _Symbol. И сравнить... Да и iBars() вынести из цикла.
Sergey Dzyublik
4788
Sergey Dzyublik 2015.02.20 12:13  
stringo:

Вызов Symbol() преобразуется в доступ к переменной _Symbol. Так что, ничего страшного.

Почему Вы ничего не спросили про количество вызовов iBars?

В 4-ке месяца 2-3 назад проверял замену Symbol() на _Symbol и это влияло на скорость достаточно значительно по данным профилировщика (около 10 -15 %).
На сегодня разница действительно не значительная, но все же стабильно есть.

Сейчас проверил:
с Symbol() на один проход start() припадает всегда больше 200 000 (около 10 запусков)
с _Symbol на один проход start() припадает всегда меньше 190 000  (около 10 запусков)

грубо говоря 5%.

Запуски чередовал 2 одного вида 2 другого. 
Также в настройках изменял без перезагрузки "график профилирования в исходном коде"  ситуацию ни как не изменило.
Andrei Fandeev
17205
Andrei Fandeev 2015.02.20 12:20  

ALXIMIKS , а я вот вообще не догоняю - нафига в чужом коде ковыряться, да ещё и топики создавать? Мало ли кто что там ваяет....  

Серёга, намного полезнее часы своей жизни можно использовать. Хотя бы пойти подышать свежим воздухом в сквере, и то полезнее для тела и души.

Dennis Kirichenko
10981
Dennis Kirichenko 2015.02.20 12:22  

самый большой в этом г@внокоде г@внобаг это то, что на каждом тике идёт пересчёт всех баров... есть угроза перерисовки... и ресурс системы используется зазря...

AndreiFAN

а я вот вообще не догоняю - нафига в чужом коде ковыряться, да ещё и топики создавать? Мало ли кто что там ваяет....  

Серёга, намного полезнее часы своей жизни можно использовать. Хотя бы пойти подышать свежим воздухом в сквере, и то полезнее для тела и души.


Не согласен. Польза в изучении г@внокода есть. Самому учиться не г@внокодить так, уже достижение...

Sergey Dzyublik
4788
Sergey Dzyublik 2015.02.20 12:29  

Код да рабочий, но увы на половину - после наступления нового дня он уже не работает.

Код имеет уйму проблем, что мне все надо было описывать?


Спрошу еще для себя, а есть ли в этом коде функция для обновления данных про приход новых баров с другого тф?
Лично я использую RefreshRates в связке CopyClose для пары первых баров. 

Но что используется тут ?
iBarShift этого точно не делает, по скольку в одном проекте был с этим проблем.
iCustom тоже мне кажется не должен это делать, но могу ошибаться.
и iBars тоже.

Или где-то ошибаюсь? Подскажите по этому поводу, пожалуйста, кто знает точно.

/ /12345
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий