Пример: Работаем с Обновляемым значением«По просьбам трудящихся» (С)
http://www.tslab.ru/ubb/ubbthreads.php?ubb=showflat&Number=7572#Post7572 и вообще по причине многочисленных и пока малоизведанных возможностей блока Обновляемое значение выкладываю вот такой примерчик.
Задача. Считать количество моментов, когда некое Условие истинно. А при наступлении некого другого Условия, обнулить и начать считать заново.
Реализация. Для решения нам потребуется само Условие. Пусть это будет простое пересечение Цены закрытия и EMA. Эти события мы и будем считать. А считать будем до тех пор, пока количество пересечений будет < некой величины, допустим 10. После этого нужно «сбросить» счетчик и начать заново.
Разберемся сначала с подсчетом количества событий. Для начала назовем блок Обновляемое значение – accum. Далее собираем:
• Блок Пересечения соединяем с блоком Обновляемое значение. Стрелка должна быть направлена от блока Пересечение к Обновляемому значению
• Добавляем блок Формула.
• Соединяем Блок Формула и блок Обновляемое значение так, чтобы стрелка была направлена от блока Обновляемое значение в блок Формула. Этим самым мы передаем хранимое значение блока в блок Формула
• Пишем в блоке Формула: accum+1
• Теперь соединяем Блок Формула и блок Обновляемое значение так, чтобы стрелка была направлена от блока Формула в блок Обновляемое значение. Этим самым мы возвращаем в блок Обновляемое значение хранимую там ранее величину увеличенную на 1. Т.е. проще говоря, посчитали еще одно событие – «плюс один»
Сейчас в блоке Обновляемое значение идет подсчет всех Пересечений. Осталось реализовать, чтобы выполнялось условие accum<10. Для этого модифицируем выражение в блоке Формула:
(accum<10) ? (accum+1) : 0
Что говорит: Если текущее значение accum < 10, то прибавляем 1 (учитываем событие), в противном случае, обнуляем.
Картинка: