пятница, 11 октября 2013 г.

Аналитические таблицы Quik: параметры разброса колебаний финансового инструмента


PORTFOLIO_EX Volatile;
DESCRIPTION Параметры волатильности рынка;
CLIENTS_LIST ALL_CLIENTS;
FIRMS_LIST Volatile;
PROGRAM
NEW_GLOBAL("Stop_Time",174458)
NEW_GLOBAL("Time_Trade",0)
NEW_GLOBAL("NameStock","")
NEW_GLOBAL("Class",CREATE_COLLECTION())
NEW_GLOBAL("Code",CREATE_COLLECTION())
NEW_GLOBAL("Start_Flag",1)

IF (Start_Flag == 0)
IF (IS_CONNECTED() == 1)
MESSAGE ("Подключение установлено...", 1)
Start_Flag = 1
END IF
ELSE

IF (Start_Flag == 2)
FOR i FROM 0 TO GET_COLLECTION_COUNT(Class)-1
Time_Trade = GET_PARAM(GET_COLLECTION_ITEM(Class,i), GET_COLLECTION_ITEM(Code,i), "time")
StockInfo = GET_SECURITY_INFO(GET_COLLECTION_ITEM(Class,i), GET_COLLECTION_ITEM(Code,i))
NameStock = GET_VALUE (StockInfo, "NAME")
        Open = GET_PARAM(GET_COLLECTION_ITEM(Class,i), GET_COLLECTION_ITEM(Code,i), "open")+0
        Max = GET_PARAM(GET_COLLECTION_ITEM(Class,i), GET_COLLECTION_ITEM(Code,i), "high")+0
        Min = GET_PARAM(GET_COLLECTION_ITEM(Class,i), GET_COLLECTION_ITEM(Code,i), "low")+0        
        Close = GET_PARAM(GET_COLLECTION_ITEM(Class,i), GET_COLLECTION_ITEM(Code,i), "closeprice")+0
        Price = GET_PARAM(GET_COLLECTION_ITEM(Class,i), GET_COLLECTION_ITEM(Code,i), "last")+0 
        LastClose = GET_PARAM(GET_COLLECTION_ITEM(Class,i), GET_COLLECTION_ITEM(Code,i), "prevprice")+0 
        
        Price_Open = (Price/Open*100)-100
        Max_Price = (Max/Price*100)-100 
        Price_Min = (Price/Min*100)-100        
Max_Open = (Max/Open*100)-100 
Max_Close = (Max/Close*100)-100
Max_Min = (Max/Min*100)-100
Open_LastClose = (Open/LastClose*100)-100
string = ""
string = set_value(string, "NameStock", NameStock)
string = set_value(string, "Open", Open)
string = set_value(string, "Max", Max)
string = set_value(string, "Min", Min)
string = set_value(string, "Close", Close)
string = set_value(string, "Max_Open", Max_Open)
string = set_value(string, "Max_Close", Max_Close)
string = set_value(string, "Max_Min", Max_Min)
string = set_value(string, "Price_Open", Price_Open)
string = set_value(string, "Max_Price", Max_Price)
string = set_value(string, "Price_Min", Price_Min)
string = set_value(string, "LastClose", LastClose)
string = set_value(string, "Open_LastClose", Open_LastClose)
IF Time_Trade > 0
string = set_value(string, "Time_Trade", SUBSTR(Time_Trade,0,2)&":"&SUBSTR(Time_Trade,2,2)&":"&SUBSTR(Time_Trade,4,2))
ELSE
string = set_value(string, "Time_Trade", 0)
END IF
MODIFY_Item(i+1,string)
 
END FOR

    IF (IS_CONNECTED() == 0)
MESSAGE ("Quik не подключен к серверу...", 1)
Start_Flag = 0
END IF

ELSE

IF (Start_Flag == 1)
  delete_all_items()
    Class = CREATE_COLLECTION()
    Code = CREATE_COLLECTION()

    Class = INSERT_COLLECTION_ITEM(Class,0,"EQNL")   
    Class = INSERT_COLLECTION_ITEM(Class,0,"EQNE")
    Class = INSERT_COLLECTION_ITEM(Class,0,"EQBR")
Class = INSERT_COLLECTION_ITEM(Class,0,"EQBR")
Class = INSERT_COLLECTION_ITEM(Class,0,"EQNL")
Class = INSERT_COLLECTION_ITEM(Class,0,"EQNE")
Class = INSERT_COLLECTION_ITEM(Class,0,"EQNE")
Class = INSERT_COLLECTION_ITEM(Class,0,"EQNL")
Class = INSERT_COLLECTION_ITEM(Class,0,"EQBR")
Class = INSERT_COLLECTION_ITEM(Class,0,"EQNE")

    Code = INSERT_COLLECTION_ITEM(Code,0,"TRNFP")
    Code = INSERT_COLLECTION_ITEM(Code,0,"NOTK")
    Code = INSERT_COLLECTION_ITEM(Code,0,"RU14TATN3014")    
    Code = INSERT_COLLECTION_ITEM(Code,0,"RU14TATN3006")
    Code = INSERT_COLLECTION_ITEM(Code,0,"SIBN")
    Code = INSERT_COLLECTION_ITEM(Code,0,"SNGSP")
    Code = INSERT_COLLECTION_ITEM(Code,0,"SNGS")
    Code = INSERT_COLLECTION_ITEM(Code,0,"ROSN")
    Code = INSERT_COLLECTION_ITEM(Code,0,"LKOH")
    Code = INSERT_COLLECTION_ITEM(Code,0,"GAZP")

FOR i FROM 0 TO GET_COLLECTION_COUNT(Class)-1
Time_Trade = GET_PARAM(GET_COLLECTION_ITEM(Class,i), GET_COLLECTION_ITEM(Code,i), "time")
StockInfo = GET_SECURITY_INFO(GET_COLLECTION_ITEM(Class,i), GET_COLLECTION_ITEM(Code,i))
NameStock = GET_VALUE (StockInfo, "NAME")
        Open = GET_PARAM(GET_COLLECTION_ITEM(Class,i), GET_COLLECTION_ITEM(Code,i), "open")+0
        Max = GET_PARAM(GET_COLLECTION_ITEM(Class,i), GET_COLLECTION_ITEM(Code,i), "high")+0
        Min = GET_PARAM(GET_COLLECTION_ITEM(Class,i), GET_COLLECTION_ITEM(Code,i), "low")+0        
        Close = GET_PARAM(GET_COLLECTION_ITEM(Class,i), GET_COLLECTION_ITEM(Code,i), "closeprice")+0
        Price = GET_PARAM(GET_COLLECTION_ITEM(Class,i), GET_COLLECTION_ITEM(Code,i), "last")+0 
        LastClose = GET_PARAM(GET_COLLECTION_ITEM(Class,i), GET_COLLECTION_ITEM(Code,i), "prevprice")+0 
        
        Price_Open = (Price/Open*100)-100
        Max_Price = (Max/Price*100)-100 
        Price_Min = (Price/Min*100)-100        
Max_Open = (Max/Open*100)-100 
Max_Close = (Max/Close*100)-100
Max_Min = (Max/Min*100)-100
Open_LastClose = (Open/LastClose*100)-100
string = ""
string = set_value(string, "NameStock", NameStock)
string = set_value(string, "Open", Open)
string = set_value(string, "Max", Max)
string = set_value(string, "Min", Min)
string = set_value(string, "Close", Close)
string = set_value(string, "Max_Open", Max_Open)
string = set_value(string, "Max_Close", Max_Close)
string = set_value(string, "Max_Min", Max_Min)
string = set_value(string, "Price_Open", Price_Open)
string = set_value(string, "Max_Price", Max_Price)
string = set_value(string, "Price_Min", Price_Min)
string = set_value(string, "LastClose", LastClose)
string = set_value(string, "Open_LastClose", Open_LastClose)
IF Time_Trade > 0
string = set_value(string, "Time_Trade", SUBSTR(Time_Trade,0,2)&":"&SUBSTR(Time_Trade,2,2)&":"&SUBSTR(Time_Trade,4,2))
ELSE
string = set_value(string, "Time_Trade", 0)
END IF
Add_item(i+1,string)
END FOR

    IF (IS_CONNECTED() == 0)
MESSAGE ("Quik не подключен к серверу...", 1)
Start_Flag = 0
ELSE
Start_Flag = 2
END IF

ELSE
    IF (IS_CONNECTED() == 0)
MESSAGE ("Quik не подключен к серверу...", 1)
Start_Flag = 0
END IF
END IF
END IF
END IF

FUNC FTime()
TIME = GET_INFO_PARAM("SERVERTIME")
IF TIME+0 > 0 
Result = (SUBSTR(TIME,0,2)&SUBSTR(TIME,3,2)&SUBSTR(TIME,6,2))+0
ELSE
Result = 0
END IF
END FUNC

END_PROGRAM

PARAMETER NameStock;
PARAMETER_TITLE Инструмент;
PARAMETER_DESCRIPTION Инструмент;
PARAMETER_TYPE STRING(40);
END

PARAMETER Open;
PARAMETER_TITLE Open;
PARAMETER_DESCRIPTION Цена открытия рынка;
PARAMETER_TYPE NUMERIC(15,2);
END

PARAMETER Max;
PARAMETER_TITLE Max;
PARAMETER_DESCRIPTION Максимальная цена внутри торгов;
PARAMETER_TYPE NUMERIC(15,2);
END

PARAMETER Min;
PARAMETER_TITLE Min;
PARAMETER_DESCRIPTION Минимальная цена внутри торгов;
PARAMETER_TYPE NUMERIC(15,2);
END

PARAMETER Close;
PARAMETER_TITLE Close;
PARAMETER_DESCRIPTION Цена закрытия рынка;
PARAMETER_TYPE NUMERIC(15,2);
END

PARAMETER Price_Open;
PARAMETER_TITLE Price/Open %;
PARAMETER_DESCRIPTION Отношение цены к цене открытия;
PARAMETER_TYPE NUMERIC(15,2);
END

PARAMETER Max_Price;
PARAMETER_TITLE Max/Price %;
PARAMETER_DESCRIPTION Отношение максимальной цены к цене;
PARAMETER_TYPE NUMERIC(15,2);
END

PARAMETER Price_Min;
PARAMETER_TITLE Price/Min %;
PARAMETER_DESCRIPTION Отношение цены к минимальной цене;
PARAMETER_TYPE NUMERIC(15,2);
END

PARAMETER Max_Open;
PARAMETER_TITLE Max/Open %;
PARAMETER_DESCRIPTION Отношение максимальной цены к цене открытия;
PARAMETER_TYPE NUMERIC(15,2);
END

PARAMETER Max_Close;
PARAMETER_TITLE Max/Close %;
PARAMETER_DESCRIPTION Отношение максимальной цены к цене закрытия;
PARAMETER_TYPE NUMERIC(15,2);
END

PARAMETER Max_Min;
PARAMETER_TITLE Max/Min %;
PARAMETER_DESCRIPTION Отношение максимальной цены к минимальной цене;
PARAMETER_TYPE NUMERIC(15,2);
END

PARAMETER LastClose;
PARAMETER_TITLE LastClose;
PARAMETER_DESCRIPTION Цена прошлого закрытия;
PARAMETER_TYPE NUMERIC(15,2);
END

PARAMETER Open_LastClose;
PARAMETER_TITLE Open/LastClose %;
PARAMETER_DESCRIPTION Отношение цены открытия к цене прошлого закрытия;
PARAMETER_TYPE NUMERIC(15,2);
END

PARAMETER Time_Trade;
PARAMETER_TITLE Время послед.;
PARAMETER_DESCRIPTION Время последнего изменения;
PARAMETER_TYPE STRING(10);
END

END_PORTFOLIO_EX


пятница, 4 октября 2013 г.

Аналитические таблицы Quik: сравнение объемов торгов по отраслевым фондовым индексам и "широким" фондовым индексам (описание)

Таблица объемов по специализированным фондовым индексам, индексу ММВБ и доле объемов специализированных фондовых индексов в индексе ММВБ



Описание
  • V Ind = объем торгов в рублях по специализированному фондовому индексу (капитализационному индексу, либо отраслевому фондовому индексу)
  • V ММВБ = объем торгов в рублях по индексу ММВБ
  • V Ind/ММВБ % = показывает какую долю составляет объем специализированного фондового  индекса в объеме индекса ММВБ

среда, 2 октября 2013 г.

Аналитические таблицы Quik: сравнение объемов торгов по отраслевым фондовым индексам и "широким" фондовым индексам


PORTFOLIO_EX Vol vs Vol;
DESCRIPTION Расчетные параметры по индексам как индикаторам;
CLIENTS_LIST ALL_CLIENTS;
FIRMS_LIST Vol vs Vol;
PROGRAM
NEW_GLOBAL("Stop_Time",174458)
NEW_GLOBAL("NameParam",CREATE_COLLECTION())
NEW_GLOBAL("Param",CREATE_COLLECTION())
NEW_GLOBAL("Start_Flag",1)

IF (Start_Flag == 0)
IF (IS_CONNECTED() == 1)
MESSAGE ("Подключение установлено...", 1)
Start_Flag = 1
END IF
ELSE

IF (Start_Flag == 2)
    MMVB = GET_PARAM("INDX", "MICEXINDEXCF", "valtoday")+0

Param = CREATE_COLLECTION()
Param = INSERT_COLLECTION_ITEM(Param,0,GET_PARAM("INDX", "MICEXMNF", "valtoday")+0)
Param = INSERT_COLLECTION_ITEM(Param,0,GET_PARAM("INDX", "MICEXM&M", "valtoday")+0)
Param = INSERT_COLLECTION_ITEM(Param,0,GET_PARAM("INDX", "MICEXTLC", "valtoday")+0)
Param = INSERT_COLLECTION_ITEM(Param,0,GET_PARAM("INDX", "MICEXPWR", "valtoday")+0)
Param = INSERT_COLLECTION_ITEM(Param,0,GET_PARAM("INDX", "MICEXO&G", "valtoday")+0)
Param = INSERT_COLLECTION_ITEM(Param,0,GET_PARAM("INDX", "MICEXSC", "valtoday")+0)
Param = INSERT_COLLECTION_ITEM(Param,0,GET_PARAM("INDX", "MICEXMC", "valtoday")+0)
Param = INSERT_COLLECTION_ITEM(Param,0,GET_PARAM("INDX", "MICEXLC", "valtoday")+0)
Param = INSERT_COLLECTION_ITEM(Param,0,GET_PARAM("INDX", "MICEX10INDEX", "valtoday")+0)

FOR i FROM 0 TO GET_COLLECTION_COUNT(Param)-1

string = ""
string = set_value(string, "NameParam", GET_COLLECTION_ITEM(NameParam,i))
string = set_value(string, "Vol1", GET_COLLECTION_ITEM(Param,i))
string = set_value(string, "Vol2", MMVB)
string = set_value(string, "VolPr", (GET_COLLECTION_ITEM(Param,i)/MMVB)*100)
MODIFY_Item(i+1,string)

END FOR

    IF (IS_CONNECTED() == 0)
MESSAGE ("Quik не подключен к серверу...", 1)
Start_Flag = 0
END IF

ELSE

IF (Start_Flag == 1)
  delete_all_items()
    NameParam = CREATE_COLLECTION()
    Param = CREATE_COLLECTION()

NameParam = INSERT_COLLECTION_ITEM(NameParam,0,"V[mMNF]/ V [ММВБ]")
NameParam = INSERT_COLLECTION_ITEM(NameParam,0,"V[mM&M]/ V [ММВБ]")
NameParam = INSERT_COLLECTION_ITEM(NameParam,0,"V[mTLK]/ V [ММВБ]")
NameParam = INSERT_COLLECTION_ITEM(NameParam,0,"V[mPWR]/ V [ММВБ]")
NameParam = INSERT_COLLECTION_ITEM(NameParam,0,"V [mO&G]/ V [ММВБ]")
NameParam = INSERT_COLLECTION_ITEM(NameParam,0,"V [mSC]/ V [ММВБ]")
NameParam = INSERT_COLLECTION_ITEM(NameParam,0,"V [mMC]/ V [ММВБ]")
NameParam = INSERT_COLLECTION_ITEM(NameParam,0,"V [mLC]/ V [ММВБ]")
NameParam = INSERT_COLLECTION_ITEM(NameParam,0,"V [ММВБ10]/ V [ММВБ]")

    MMVB = GET_PARAM("INDX", "MICEXINDEXCF", "valtoday")+0

Param = INSERT_COLLECTION_ITEM(Param,0,GET_PARAM("INDX", "MICEXMNF", "valtoday")+0)
Param = INSERT_COLLECTION_ITEM(Param,0,GET_PARAM("INDX", "MICEXM&M", "valtoday")+0)
Param = INSERT_COLLECTION_ITEM(Param,0,GET_PARAM("INDX", "MICEXTLC", "valtoday")+0)
Param = INSERT_COLLECTION_ITEM(Param,0,GET_PARAM("INDX", "MICEXPWR", "valtoday")+0)
Param = INSERT_COLLECTION_ITEM(Param,0,GET_PARAM("INDX", "MICEXO&G", "valtoday")+0)
Param = INSERT_COLLECTION_ITEM(Param,0,GET_PARAM("INDX", "MICEXSC", "valtoday")+0)
Param = INSERT_COLLECTION_ITEM(Param,0,GET_PARAM("INDX", "MICEXMC", "valtoday")+0)
Param = INSERT_COLLECTION_ITEM(Param,0,GET_PARAM("INDX", "MICEXLC", "valtoday")+0)
Param = INSERT_COLLECTION_ITEM(Param,0,GET_PARAM("INDX", "MICEX10INDEX", "valtoday")+0)

FOR i FROM 0 TO GET_COLLECTION_COUNT(Param)-1

string = ""
string = set_value(string, "NameParam", GET_COLLECTION_ITEM(NameParam,i))
string = set_value(string, "Vol1", GET_COLLECTION_ITEM(Param,i))
string = set_value(string, "Vol2", MMVB)
string = set_value(string, "VolPr", (GET_COLLECTION_ITEM(Param,i)/MMVB)*100)
Add_item(i+1,string)

END FOR

    IF (IS_CONNECTED() == 0)
MESSAGE ("Quik не подключен к серверу...", 1)
Start_Flag = 0
ELSE
Start_Flag = 2
END IF

ELSE

    IF (IS_CONNECTED() == 0)
MESSAGE ("Quik не подключен к серверу...", 1)
Start_Flag = 0
END IF

END IF
END IF
END IF

FUNC FTime()
TIME = GET_INFO_PARAM("SERVERTIME")
IF TIME+0 > 0 
Result = (SUBSTR(TIME,0,2)&SUBSTR(TIME,3,2)&SUBSTR(TIME,6,2))+0
ELSE
Result = 0
END IF
END FUNC

END_PROGRAM

PARAMETER NameParam;
PARAMETER_TITLE Параметр;
PARAMETER_DESCRIPTION Параметр;
PARAMETER_TYPE STRING(20);
END

PARAMETER Vol1;
PARAMETER_TITLE V Ind;
PARAMETER_DESCRIPTION Значение;
PARAMETER_TYPE NUMERIC(15,2);
END

PARAMETER Vol2;
PARAMETER_TITLE V ММВБ;
PARAMETER_DESCRIPTION Значение;
PARAMETER_TYPE NUMERIC(15,2);
END

PARAMETER VolPr;
PARAMETER_TITLE V Ind/ММВБ %;
PARAMETER_DESCRIPTION Значение;
PARAMETER_TYPE NUMERIC(15,2);
END

END_PORTFOLIO_EX


вторник, 1 октября 2013 г.

Аналитические таблицы Quik: аналитическая информация по отдельному эмитенту (описание)

Сводная таблица параметров по эмитенту

Описание

СПРОС И ПРЕДЛОЖЕНИЕ (СТР)
  • Средняя заявка на куплю = Общий спрос (лоты) / количество заявок на куплю (шт.)
  • Средняя заявка на продажу = Общее предложение (лоты) / количество заявок на продажу (шт.)
  • СЗК/СЗП = отношение средней заявки на куплю и средней заявки на продажу
  • Средняя заявка = (Средняя заявка на покупку + среднюю заявку на продажу) / 2
СПРОС И ПРЕДЛОЖЕНИЕ (СТР)
  • Предложение-Спрос = Цена предложения - Цена спроса = спрэд в рублях
  • Предложение-Цена = Спрэд в рублях между ценой предложения и ценой последней сделки
  • Цена-Спрос = Спрэд в рублях между ценой последней сделки и ценой спроса
ЛИКВИДНОСТЬ (ТАКТ)
  • Последняя сделка = Объем последней сделки
  • Средняя сделка = Объем торгов по эмитенту на данный момент / Количество сделок, совершенных на данный момент
  • Последняя сделка/Средняя сделка = сравнение объема последней сделки с объемом средней сделки
  • Средняя сделка/Средняя заявка = сравнение объема средней сделки с объемом средней заявки
ЛИКВИДНОСТЬ (СТР)
  • Доля от рынка % = доля объема торгов по эмитенту в объеме торгов по индексу ММВБ
  • Доля от сектора % = доля торгов по эмитенту в соответствующем отраслевом индексе
ВОЛАТИЛЬНОСТЬ (СТР)
  • Закрытие/Открытие = Цена закрытия / Цену открытия * 100 - 100
  • Максимальная/Открытие = Максимальная цена / Цену открытия* 100 - 100
  • Максимальная/Минимальную = Максимальная цена / Минимальную цену * 100 - 100
  • Открытие/Закрытие предыдущего дня = Цена открытия / Цену закрытия предыдущей торговой сессии * 100 - 100
ВОЛАТИЛЬНОСТЬ (ТАКТ)
  • Цена последней сделки/Открытие = Цена последней сделки / Цену открытия * 100 - 100
  • Максимальная/Текущую цену = Максимальная цена / текущую цену * 100 - 100
  • Текущая цена/Минимальную = Текущая цена / Минимальную цену * 100 - 100
  • Максимальная / Средневзвешенную цену = Максимальная цена / Средневзвещшенную цену * 100 - 100
  • Средневзвешенная цена/Минимальную = Средневзвешенная цена / Минимальную цену * 100 - 100
  • Цена последней сделки/Средневзвешенную цену = Цена последней сделки / Средневзвешенную цену * 100 - 100
  • Средневзвешенную цену/Цену последней = Средневзвешенную цену / Цену последней сделки * 100 - 100
  • Бета Close (ММВБ) = сравнение % изменения к закрытию по данному эмитенту с % изменения к закрытию индекса ММВБ
  • Бета Open (OG) = сравнение % изменения к открытию по данному эмитенту с % изменения к открытию индекса НЕФТЕГАЗОВОГО сектора