Sergey Kosinsky Personal web site

Функция WriteData()

     Функция позволяет записать массив данных, сформированных в каком либо индикаторе,  в текстовый файл. Каждая строка такого файла содержит три колонки, разделенные запятыми:  дату в формате YYYYMMDD, время в формате HHNNSSS и значение одного отсчета данных, где YYYY -  четыре цифры года, MM,DD,HH,NN - две цифры соответственно месяца, дня, часа и минуты с лидирующим нулем, если это необходимо, а SSS - порядковый номер отсчета (тика) в текущей минуте начиная с нуля. 

Вызов функции из индикатора оуществляется следующим образом:

ExtFml( "msx_ksr.WriteData", DataArray[], "Filename")

Параметры:

DataArray[] - массивов данных,

"Filename" - полный путь к файлу;

Также надо помнить, что Метасток при работе в режиме realtime пишет в бары время окончания интервала и момент вызова DLL зависит от того, обновляется ли бар в момент каждого тика (режим live bar), когда окончательное значение всех составляющих бара еще неизвестно. Можно использовать функцию Ref() для сдвига данных во времени.

В имени файла можно использовать макроподстановки %S  и %P - вместо них будет подставлено название базовой бумаги и периодичность. В этом случае название базовой бумаги не должно содержать ":\/?*" и другие символы, запрещенные в именах файлов. 

Текст пользовательского индикатора для вызова функции WriteData

 

{ExtFml( "msx_ksr.WriteData",DataArray[], "Filename"); 
Replace Mov(C,25,S)  with your own data}   

DataArray:=
Mov(C,25,S);  
ExtFml( "msx_ksr.WriteData", 
DataArray,  "D:\quote\micex\files\eesr.txt" );

Пример совместного использования функций WriteData и ReadData в пользовательских индикаторах для передачи данных из дневного графика в 10-минутный. Вывод данных в файл осуществляется с помощью пользовательского индикатора приведеного выше.

 

Базовый ряд  - дневные котировки РАО ЕЭС на ММВБ.

Дневная периодичность базовой бумаги, компрессия отключена.

Содержимое файла D:\quote\micex\files\eesr.txt:
20020815,0000000,3.00592
20020816,0000000,2.9934
............................
20030115,0000000,4.14976
20030116,0000000,4.15016
20030117,0000000,4.1384


Отображение данных из файла созданного в предыдущем примере на графике с другим таймфреймом с помощью индикатора ReadData.

Базовый ряд: 10-минутные котировки РАО ЕЭС на ММВБ.

Компрессия отключена (10 мин).

Тот же график с дневной компрессией.

Замечания и предложения можно оставить на странице обратной связи.

FAQ по MSX_KSR.dll
/ksr
Сергей Р. Косинский,
Санкт-Петербург, Россия.
Создано: 20 февраля 2003 

Обновлено: February 12, 2011

www.000webhost.com