Функции для работы с графиками

  • GET_CANDLE
  • GET_CANDLE_EX
  •  

    GET_CANDLE

    Функция для обращения к данным «свечек» на графике, а также к значениям индикаторов технического анализа.

    MAP  GET_CANDLE (STRING class_code, STRING sec_code, STRING parameter_name, STRING interval, STRING graph_type, DOUBLE Date, DOUBLE Time)

    Функция возвращает ассоциативный массив (MAP), содержащий информацию о ценах  в момент времени «Date»«Time», для графика, построенного по инструменту с кодом «sec_code» из класса с кодом «class_code» с временным интервалом «interval». Если «class_code» равен «», то функция ищет «sec_code» по всем классам до первого нахождения.

    Тип графика указывается следующим кодом:

    Тип графика Код   Тип графика Код   Тип графика Код
    PRICE 1 PARABOLIC SAR 10 CUM AD  21
    VOLUME 2 SROC 11 CHAIKIN OSCILLATOR 22
    MOVING AVERAGE 3 MOM 12 CUM WAD 23
    PRICE OSCILLATOR 4 ROC 13 ELDER FI 24
    MACD 5 MFI 16 ELDER RAY 25
    STANDARD DEV 6 WILLIAMS %R 17 VERTICAL HORIZONTAL FILTER 26
    BOLLINGER LINES 7 ENVELOPS 18 CHAIKIN VOLATILITY 27
    STOCHASTIC 8 VOLUME OSCILLATOR 19    
    RSI 9 BALANCE VOLUME 20    

     

    Значение временного интервала «interval» можно задавать следующими числовыми величинами:

    Величина интервала Значение   Величина интервала Значение   Величина интервала Значение
    Месячный month 1 минута 1 15 минут 15
    -3   2 20 минут 20
    Недельный week 3 минуты 3 30 минут 30
    -2 4 минуты 4 60 минут 60
    Дневной day 5 минут 5 2 часа 120
    -1 6 минут 6 4 часа 240
    Тиковый 0 10 минут 10    

     

    Значение «parameter_name» должно соответствовать одному из значений имени параметра из Таблицы текущих значений параметров. Их перечень см. Функции для получения значений Таблицы текущих торгов. Если «parameter_name» указан как «», то поиск осуществляется по данным Таблицы обезличенных сделок.

    Значение даты «Date» нужно указывать в формате «ГГГГММДД». Например, «20050527» означает 27 мая 2005 г. Значение времени «Time» нужно указывать в формате «ЧЧММСС». Например, «163500» означает 16 ч. 35 мин.
    Функция возвращает ассоциативный массив (MAP), содержащий параметры:

    Параметр Тип Описание
    1 OPEN DOUBLE Цена открытия (первой сделки) в данном интервале времени
    2 CLOSE DOUBLE Цена закрытия (последней сделки) в интервале
    3 HIGH DOUBLE Наибольшая цена сделки в интервале
    4 LOW DOUBLE Наименьшая цена сделки в интервале
    5 VOLUME DOUBLE Суммарный объем сделок в интервале

    Пример:


    msg = GET_CANDLE("TQBR", "HYDR", "", "5", "PRICE", 20101130, 103500)
    MESSAGE(msg, 2)

    GET_CANDLE_EX

    В некоторых случаях, например, когда индикатор технического анализа состоит из нескольких линий, применение функции GET CANDLE невозможно. Для доступа к таким графикам средствами языка QPILE используется функция GET CANDLE EX.

    MAP  GET_CANDLE_EX (STRING Tag, DOUBLE Date, DOUBLE Time)

    Функция возвращает ассоциативный массив (MAP) с данными для графика со строковым идентификатором Tag в момент времени «Date» и «Time». Таким образом, для того чтобы обратиться к данным на графике, необходимо его предварительно построить и присвоить ему уникальный строковый идентификатор Tag. Идентификатор Tag задается в диалоге «Редактирование настроек графика» на вкладке «Дополнительно».

    При вызове функции значение даты «Date» нужно указывать в формате «ГГГГММДД». Например, «20050527» означает 27 мая 2005 г. Значение времени «Time» нужно указывать в формате «ЧЧММСС». Например, «163500» означает 16 ч. 35 мин. Функция округляет параметр «Time» до ближайшего меньшего значения времени, соответствующего интервалу графика. Например, если интервал графика — «5 минут», а значение параметра «Time» — «163700», то функция округлит значения параметр «Time» до «163500», а если интервал графика – «60 минут», то «163700» округлиться до «160000».

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

    Параметр Тип Описание
    1 COUNT DOUBLE Количество линий, образующих индикатор
    2 TIME DOUBLE Точное время свечки
    3 LINES DOUBLE Коллекция линий, в которой каждый элемент коллекции содержит ассоциативный массив (MAP)

     

    Каждый элемент коллекции линий содержит ассоциативный массив (MAP) со следующими параметрами:

    Параметр Тип Описание
    1 NAME STRING Название линии (из легенды)
    2 OPEN DOUBLE Цена открытия в интервале времени
    3 CLOSE DOUBLE Цена закрытия в интервале времени
    4 HIGH DOUBLE Наибольшее значение цены в интервале времени
    5 LOW DOUBLE Наименьшее значение цены в интервале времени
    6 VOLUME DOUBLE Суммарный объем сделок в интервале

    Пример:

    slice = Get_Candle_Ex ("all", 20070511, 170000) 
    
    LineCount = Get_Value (slice,"COUNT")
    time = Get_Value (slice,"TIME")
    lines = Get_Value (slice,"LINES")
    FOR lineID FROM 0 TO LineCount-1
    line = Get_Collection_Item (lines, lineID)
    open = Get_Value (line,"OPEN")
    line_name = Get_Value (line,"NAME")
    volume = Get_Value (line,"VOLUME")
    END FOR