Суббота, 13 Декабрь 2008 08:05

Для чего необходим параметр MaxBarsBack?

Автор 
Оцените материал
(0 голосов)

Параметр MaxBarsBack определяет, на какую глубину в прошлое вы можете ссылаться в своем коде. Например, если параметр MaxBarsBack = 50, то вы можете обратиться к значению переменной 50 баров назад:

Value1[50]
Close[50]

Для организации такой возможности будут сохранены 50 последних значений переменных. Так же с начала графика будет пропущено 50 баров.

Параметр MaxBarsBack устанавливается в окне свойств индикатора/стратегии, в папке Properties. Если этот параметр установлен в положении Auto-detect, то при каждом запуске индикатора или функции система  запускает программу с малым количеством значений. Это делается для того, чтобы определить минимальное подходящее для работы значение. Если выясняется, что пробуемого значения не хватает, система увеличивает значение MaxBarsBack и повторяет весь процесс с самого начала. Так будет повторяться до тех пор, пока величина MaxBarsBack не достигнет подходящего минимального значения. Этот процесс требует некоторое время, поэтому для увеличения скорости загрузки рабочих листов можно установить требуемое значение вручную.

Если вам необходимо ссылаться в своем коде на большое число предыдущих значений и вы не хотите терять часть истории, отступая на нужное значение MaxBarsBack, то вы можете самостоятельно организовать массив предыдущих значений:

Arrays: State[1000](0);

State[0] = MyFunction(c, 24);

{Сохраняем предыдущие значения}
For Value1 = 1000 downto 1 begin
State[Value1] = State[Value1 - 1];   
end;

if State[900] < 25 then begin

End;

В языке EasyLanguage есть возможность обращаться к прошлым значениям элементов массива. Например, State[150][50]. Однако надо помнить, что такое обращение требует резервирования дополнительного объема памяти. Это сильно замедляет работу вашей программы. Кроме того, если обращение к значениям массива на прошлых барах отсуствует — память не резервируется, программа работет быстро и эффективно.

При той организации данных, которая предложена выше, лучше произвести следующую адекватную замену:
State[150 + 50] = State[150][50]; {в пределах 1000}

 



В подготовке материала принял участие Герман Брюханов (Leader).

 


Прочитано 3830 раз Последнее изменение Среда, 04 Май 2011 14:14
Gelium

Автор сайта.

Для души и разума.

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

Далее...

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

Следующее племя туземцев заинтересовалось изобретением не меньше первого. Однако местные шаманы, завидовавшие авторитету чужеземца среди народа, однажды напали на него и умертвили. Чтобы отвести все подозрения в убийстве, они водрузили портрет Великого изобретателя на главном алтаре храма; по случаю смерти была написана специальная литургия, в которой с почтением упоминалось его имя и давалось обещание увековечить его. Особенное внимание уделялось тому, чтобы не был ни пропущен, ни изменен ни один параграф литургии. Инструменты для разведения огня были помещены в специальную шкатулку; святые отцы заявляли, что раритеты принесут излечение каждому верующему, кто положит на них свои руки.

Сам главный священник взял на себя ответственность собрать материал о жизни изобретателя. Сборник обрел силу священной книги; безграничная любовь и доброта автора изобретения преподносились в нем в качестве примера для подражания, всячески восхвалялись его славные дела, а его сверхъестественная природа стала объектом поклонения. Священники приняли все меры к тому, чтобы книга сохранилась для будущих поколений; сами же авторитарно интерпретировали смысл его идей и значимость его праведной жизни и смерти. Церковники безжалостно подвергали казням или изгнанию из церкви каждого, кто искажал их доктрину. Люди так боялись нарушить все религиозные предписания, что полностью забыли, как нужно разводить огонь.


 

Перепечатка авторских материалов сайта без указания ссылки на
сайт Gelium.net запрещена.

Gelium.net | 2000-2019 | © All rights reserved.