Построение индикаторов в Excel
Два способа построения индикаторов по заданному временному ряду котировок в Excel. Для примера взят индикатор средней цены за заранее заданный временной отрезок (количество котировок), "MovingAverage".
В макросе "formulaMA_1" алгоритм для каждого бара ("Close" котировки) суммирует заданное число предыдущих котировок включая текущую и делит сумму на их число. При помощи цикла.
В макросе "formulaMA_2" алгоритм просто вставляет формулу индикатора в ячейку столбца смежного со столбцом данных и "протягивает" формулу до конца диапазона данных. Затем заменяет формулы в ячейках на их значения, для уменьшения "тяжести" файла. Достаточно универсальный способ для тех кто не желает слишком копаться в макросах VBA.
В общем виде формула среднего за период 10 котировок в макросе выглядит так: = "=ROUND(AVERAGE(R[-9]C[-1]:RC[-1]),5) " . Для того чтобы иметь возможность быстро менять период индикатора нужно ввести изменяемую переменную, тогда формула будет выглядеть так: = "=ROUND(AVERAGE(R[" & -(sizeAverage - 1) & "]C[-1]:RC[-1]),5)". Получить текст любой другой формулы для вставки в макрос "formulaMA_2" можно при помощи макро-рекордера Excel. Делается это так - набираем формулу в ячейке листа Excel, в ленте панели инструментов выбираем: "Вид > Макросы > Запись макроса". Переходим на ячейку введённой формулы и нажимаем Enter. Можно выключать макро-рекордер "Вид > Макросы > Остановить запись". Нажимаем правой кнопкой мыши на ярлычке любого листа Книги и выбираем "Исходный текст", откроется окно редактора, в левой части навигации появится Модуль ("Module1"), в котором и будет записан макрос с текстом формулы. Если в книге уже были другие модули, вновь записанный макро-рекордером макрос обычно появляется в в модуле под последним номером, нужно поискать.
Ссылка на скачивание файла "formulaMA.xlsm" в архиве: (formulaMA.rar) , 210 KB.
( Collapse )
В макросе "formulaMA_1" алгоритм для каждого бара ("Close" котировки) суммирует заданное число предыдущих котировок включая текущую и делит сумму на их число. При помощи цикла.
В макросе "formulaMA_2" алгоритм просто вставляет формулу индикатора в ячейку столбца смежного со столбцом данных и "протягивает" формулу до конца диапазона данных. Затем заменяет формулы в ячейках на их значения, для уменьшения "тяжести" файла. Достаточно универсальный способ для тех кто не желает слишком копаться в макросах VBA.
В общем виде формула среднего за период 10 котировок в макросе выглядит так: = "=ROUND(AVERAGE(R[-9]C[-1]:RC[-1]),5)
Ссылка на скачивание файла "formulaMA.xlsm" в архиве: (formulaMA.rar) , 210 KB.
( Collapse )