Опять вопрос про быстродействие. - страница 4

 
Integer:

Когда что-то под что-то заточено, то оно всегда и ограничено, а здесь в наших руки дано все в этом и прелесть. Ну а этот стандартный зигзаг... это вечный ночной кошмар.

 

Ограниченный набор букв алфавита операций позволяет получить более высокое быстродействие, так как некоторые вещи просто сделать не возможно и следовательно и проверять что-то лишнее не приходится, и можно более свободно ( без граничных ситуаций)  получить более высокое быстродействие.

 
Academic:
Да я видел Ваш зигзаг. Интересно. Но тут вопрос несколько о другом. нужен именно СТАНДАРТНЫЙ, зигзаг. Кстати Ваш считается оптимально? Насколько он быстрее стандартного? И какие параметры если такое вообще возможно, ему надо выставить чтобы он полностью соответсвовал стандартному, если он конечно быстрее считается чем тот что в поставке.

Он на 95% идентичен стандартному (визуально всмысле), только с другим алгоритмом построения. iExtPeriod = ExtDepth. Остальные параметры не совпадают и будут небольшие отличия...

На сколько быстрее не проверял....

 
Academic:

Ограниченный набор букв алфавита операций позволяет получить более высокое быстродействие, так как некоторые вещи просто сделать не возможно и следовательно и проверять что-то лишнее не приходится, и можно более свободно ( без граничных ситуаций)  получить более высокое быстродействие.

Тогда при написании индикаторов представьте, что у вас нет операторов while и for, кроме как для основного цикла, они не нужны. Однако они могут потребоваться в ините и деините, будет плохо, если их не будет. Тема философская - давать или не давать, или взрослые сами примут решение. Во всех языках одну и ту же задачу можно решить разными способами - оптимальными и не очень, это не значит, что нужно что-то запрещать. MQ наоборот пошли по пути предоставления максимального количества возможностей.

 

 
Integer:

Тогда при написании индикаторов представьте, что у вас нет операторов while и for, кроме как для основного цикла, они не нужны. Однако они могут потребоваться в ините и деините, будет плохо, если их не будет. Тема философская - давать или не давать, или взрослые сами примут решение. Во всех языках одну и ту же задачу можно решить разными способами - оптималными и не очень, это не значит, что нужно что-то запрещать. MQ наоборот пошли по пути предоставления максимального количества возможностей.

 

Да конечно же, но все же как мне кажется, такие например вещи как копирование буферов в советники из iCustom для их ЧТЕНИЯ имеет смысл делать не действительно копированием, а псевдо копированием с проверкой на запись в них еще на этапе компиляции. Например. Это бы весьма существенно бы увеличило быстродействие в типичных задачах.
 
Academic:
Да конечно же, но все же как мне кажется, такие например вещи как копирование буферов в советники из iCustom для их ЧТЕНИЯ имеет смысл делать не действительно копированием, а псевдо копированием с проверкой на запись в них еще на этапе компиляции. Например. Это бы весьма существенно бы увеличило быстродействие в типичных задачах.
Именно возможности от наличия компилятора дает возможность не бояться испортить данные. Если сказать проще.
 

Ради интереса прогнал на одном ядре:


Получение значения 0-ого бара на каждом тике:

Пустой советник - 71 сек

iCustom(типовой ZigZag) - 1557 сек

Мой класс (iCustom(AlexSTAL_ZigZagProf_NotSeries) чуть быстрее будет) - 289 сек


"чуть" быстрее получается ))))))))))))))))

 
AlexSTAL:

Ради интереса прогнал на одном ядре:


Получение значения 0-ого бара на каждом тике:

Пустой советник - 71 сек

iCustom(типовой ZigZag) - 1557 сек

Мой класс (iCustom(AlexSTAL_ZigZagProf_NotSeries) чуть быстрее будет) - 289 сек


"чуть" быстрее получается ))))))))))))))))

Ну нужно не получение на нулевом баре. Посмотрите ( сохраните и запустите на графике ) индикатор который я показал. Надо как минимум четыре точки ZigZag
 
Academic:
Ну нужно не получение на нулевом баре. Посмотрите ( сохраните и запустите на графике ) индикатор который я показал. Надо как минимум четыре точки ZigZag

Всё в Ваших руках... Все коды открыты... Этого не будет:

Academic:
Мне просто хочется, свое время сэкономить
 
AlexSTAL:

Всё в Ваших руках... Все коды открыты... Этого не будет:

В смысле? Я хочу Вас поэксплуатировать? "Заставить" по работать? Да ну, бросьте. :) не смешите. Я просто уверен, что Вы даже не вникли в то что тот индикаторр делает. Посмотрите, это в чем-то грааль. :) Это ИМХО ( при определенных и весьма существенных, и далеко не для всех приемлимых по финансовым причинам ) одна и не многих прибыльных стратегий на "случайном" шумном рынке таком как форекс.
 
Academic:
Да конечно же, но все же как мне кажется, такие например вещи как копирование буферов в советники из iCustom для их ЧТЕНИЯ имеет смысл делать не действительно копированием, а псевдо копированием с проверкой на запись в них еще на этапе компиляции. Например. Это бы весьма существенно бы увеличило быстродействие в типичных задачах.

Наверно что-то такое было в четверке, но в ней память загружалось несколько индикаторов с одинаковыми наборами параметров (если они вызывались из разных программ). А здесь только один индикатор загружается, но пользоваться им могут все. Это экономит память. Тики  по разным символам идут не синхронно, из советника работающего на одном символе при обращении к индикатору с другого символа можно нарваться на процесс его расчета (наверно)... Выполнять расчет непосредственно при обращении к индикаторы - от этого как раз ушли, индикатор живет собственной жизнью и вычисляется только один раз при тике по своему символу, а не всегда, когда к нему кто-то обращается - это повышает быстродействие в целом. И т.д. и т.п. Можно много рассуждать, думаю, что MQ лучше знают как писать терминалы.

 

Причина обращения: