February 28th, 2013

Построение индикаторов в 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 )

Копилка идей • SQL-запрос к внешним БД из Excel

excel_logo       SQL-запрос к внешим БД из Excel В приложенном файле Вы найдете пример использования технологии ADO для обработки внешних данных в Excel посредством процедуры RunQuery.
        Для того чтобы эта процедура заработала в Вашем проекте, необходимо подключить в VBE библиотеку Microsoft ActiveX Data Objects (VBE -> Tools -> References -> Microsoft ActiveX Data Objects 2.5 Library). Процедура RunQuery позволяет манипулировать внешними данными практически любого типа. Можно добавлять, удалять или изменять данные, а также возвращать результат запросов в заданный диапазон Excel.
Архив можно скачать по ссылке: (RunQuery.rar), 1.6MB

Данный пример использования технологии был опубликован на ресурсе (www.planetaexcel.ru), где я его и нашёл. Но ссылка затерялась. Видимо в связи с реорганизацией форума. Что не исключает, однако, того что ветка сохранилась где-нибудь в глубинах форума. В источниках числился в т.ч. сайт: (www.connectionstrings.com).
Также дублировал "пример" на форуме (forex.kbpauk.ru), пост: [re: Andrewso] #310522 - 31/08/2010 08:26