понедельник, 30 сентября 2013 г.

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

Таблицу-скринер назвали Эмитент Инфо - впрочем отражает ее смысл.




PORTFOLIO_EX EmitentInfo;
DESCRIPTION EmitentInfo;
CLIENTS_LIST ALL_CLIENTS;
FIRMS_LIST EmitentInfo;
PROGRAM
NEW_GLOBAL("Stop_Time",174958)
NEW_GLOBAL("Time_Trade",0)
NEW_GLOBAL("NameStock","")
NEW_GLOBAL("Class","")
NEW_GLOBAL("Code","")
NEW_GLOBAL("Start_Flag",1)
NEW_GLOBAL("C1", "RGB(0,112,192)")
NEW_GLOBAL("C2", "RGB(0,100,176)")
NEW_GLOBAL("C3", "RGB(255,255,255)")
NEW_GLOBAL("C4", "RGB(255,255,255)")
NEW_GLOBAL("STR", 1)

IF (Start_Flag == 0)

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

    Class = "EQNE"
    Code = "GAZP"

    STR = 1

SS = GET_PARAM(Class, Code, "biddeptht")+0
SP1 = GET_PARAM(Class, Code, "offerdeptht")+0
KZK = GET_PARAM(Class, Code, "numbids")+0
    KZP = GET_PARAM(Class, Code, "numoffers")+0
    Pr = GET_PARAM(Class, Code, "offer")+0
    Sp = GET_PARAM(Class, Code, "bid")+0
    Price = GET_PARAM(Class, Code, "last")+0
    VLast = GET_PARAM(Class, Code, "qty")+0 
    VKol = GET_PARAM(Class, Code, "voltoday")+0
KolTrade = GET_PARAM(Class, Code, "numtrades")+0  
V = GET_PARAM(Class, Code, "valtoday")+0 
    MMVB = GET_PARAM("INDX", "MICEXINDEXCF", "valtoday")+0 
    OG = GET_PARAM("INDX", "MICEXO&G", "valtoday")+0
Close = GET_PARAM(Class, Code, "closeprice")+0
    LastClose = GET_PARAM(Class, Code, "prevprice")+0 
Open = GET_PARAM(Class, Code, "open")+0
    Max = GET_PARAM(Class, Code, "high")+0
    Min = GET_PARAM(Class, Code, "low")+0
WPrice = GET_PARAM(Class, Code, "waprice")+0
  LastMMVB = GET_PARAM("INDX", "MICEXINDEXCF", "lastchange")+0 
    LastOG = GET_PARAM("INDX", "MICEXO&G", "lastchange")+0    

BCloseMMVB = Beta(GET_PARAM(Class, Code, "lastchange"),LastMMVB)
BCloseOG = Beta(GET_PARAM(Class, Code, "lastchange"),LastOG)  
SZK = SS/KZK
SZP = SP1/KZP
Szk_Szp = SZK/SZP

  Modify("Спрос и предложение (СТР)",1/0,"")

SET_ROW_COLOR_EX (1, C1, C2, C3, C4)
  Modify("Средняя заявка на куплю",SZK,"Лоты")
  Modify("Средняя заявка на продажу",SZP,"Лоты")
  Modify("СЗК/СЗП",Szk_Szp,"Разы")
  Modify("Средняя заявка",FLOOR(SZK+SZP/2),"Лоты")
  Modify("Спрос и предложение (ТАКТ)",1/0,"")
SET_ROW_COLOR_EX (6, C1, C2, C3, C4)
  Modify("Предложение-Спрос",Pr-Sp,"Рубли")
  Modify("Предложение-Цена",Pr-Price,"Рубли")
  Modify("Цена-Спрос",Price-Sp,"Рубли")
  Modify("Ликвидность (ТАКТ)",1/0,"")
SET_ROW_COLOR_EX (10, C1, C2, C3, C4)
  Modify("Последняя сделка",VLast,"Лоты")
  Modify("Средняя сделка",FLOOR(VKol/KolTrade),"Лоты")
  Modify("Посл. сд./Сред. сд.",VLast/(VKol/KolTrade),"Разы")
  Modify("Сред. сд./Средняя заявка",VKol/KolTrade/SZK+SZP/2,"Разы")
  Modify("Ликвидность (СТР)",1/0,"")
SET_ROW_COLOR_EX (15, C1, C2, C3, C4)
  Modify("Доля от рынка",(V/MMVB)*100,"%")
  Modify("Доля от сектора",(V/OG)*100,"%")
  Modify("Волатильность (СТР)",1/0,"")
SET_ROW_COLOR_EX (18, C1, C2, C3, C4)
  Modify("Закрытие/Открытие",((Close/Open)*100)-100,"%")
  Modify("Максимальная/Открытие",((Max/Open)*100)-100,"%")
  Modify("Максимальная/Минимальная",((Max/Min)*100)-100,"%")
  Modify("Открытие/Закрытие пред. дня",((Open/LastClose)*100)-100,"%")
  Modify("Волатильность (ТАКТ)",1/0,"")
SET_ROW_COLOR_EX (23, C1, C2, C3, C4)
  Modify("Цена посл./Открытие",((Price/Open)*100)-100,"%")
  Modify("Максимальная/Цена",((Max/Price)*100)-100,"%")
  Modify("Цена/Минимальная",((Price/Min)*100)-100,"%")
  Modify("Максимальная/Средневзв. цена",((Max/WPrice)*100)-100,"%")
  Modify("Средневзв. цена/Минимальная",((WPrice/Min)*100)-100,"%")
  Modify("Цена посл./Средневзв. цена",((Price/WPrice)*100)-100,"%")
  Modify("Средневзв. цена/Цена посл.",((WPrice/Price)*100)-100,"%")
  Modify("Бета Close(ММВБ)",BCloseMMVB,"BETA")
  Modify("Бета Close(OG)",BCloseOG,"BETA")

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

ELSE


IF (Start_Flag == 1)

  delete_all_items()
    Class = "EQNE"
    Code = "GAZP"

SS = GET_PARAM(Class, Code, "biddeptht")+0

SP1 = GET_PARAM(Class, Code, "offerdeptht")+0
KZK = GET_PARAM(Class, Code, "numbids")+0
    KZP = GET_PARAM(Class, Code, "numoffers")+0
    Pr = GET_PARAM(Class, Code, "offer")+0
    Sp = GET_PARAM(Class, Code, "bid")+0
    Price = GET_PARAM(Class, Code, "last")+0
    VLast = GET_PARAM(Class, Code, "qty")+0 
    VKol = GET_PARAM(Class, Code, "voltoday")+0
KolTrade = GET_PARAM(Class, Code, "numtrades")+0  
V = GET_PARAM(Class, Code, "valtoday")+0 
    MMVB = GET_PARAM("INDX", "MICEXINDEXCF", "valtoday")+0 
    OG = GET_PARAM("INDX", "MICEXO&G", "valtoday")+0
Close = GET_PARAM(Class, Code, "closeprice")+0
    LastClose = GET_PARAM(Class, Code, "prevprice")+0 
Open = GET_PARAM(Class, Code, "open")+0
    Max = GET_PARAM(Class, Code, "high")+0
    Min = GET_PARAM(Class, Code, "low")+0
WPrice = GET_PARAM(Class, Code, "waprice")+0
  LastMMVB = GET_PARAM("INDX", "MICEXINDEXCF", "lastchange")+0 
    LastOG = GET_PARAM("INDX", "MICEXO&G", "lastchange")+0    

BCloseMMVB = Beta(GET_PARAM(Class, Code, "lastchange"),LastMMVB)
BCloseOG = Beta(GET_PARAM(Class, Code, "lastchange"),LastOG)  
SZK = SS/KZK
SZP = SP1/KZP
Szk_Szp = SZK/SZP

  AddStr("Спрос и предложение (СТР)",1/0,"")

SET_ROW_COLOR_EX (1, C1, C2, C3, C4)
  AddStr("Средняя заявка на куплю",SZK,"Лоты")
  AddStr("Средняя заявка на продажу",SZP,"Лоты")
  AddStr("СЗК/СЗП",Szk_Szp,"Разы")
  AddStr("Средняя заявка",FLOOR(SZK+SZP/2),"Лоты")
  AddStr("Спрос и предложение (ТАКТ)",1/0,"")
SET_ROW_COLOR_EX (6, C1, C2, C3, C4)
  AddStr("Предложение-Спрос",Pr-Sp,"Рубли")
  AddStr("Предложение-Цена",Pr-Price,"Рубли")
  AddStr("Цена-Спрос",Price-Sp,"Рубли")
  AddStr("Ликвидность (ТАКТ)",1/0,"")
SET_ROW_COLOR_EX (10, C1, C2, C3, C4)
  AddStr("Последняя сделка",VLast,"Лоты")
  AddStr("Средняя сделка",FLOOR(VKol/KolTrade),"Лоты")
  AddStr("Посл. сд./Сред. сд.",VLast/(VKol/KolTrade),"Разы")
  AddStr("Сред. сд./Средняя заявка",VKol/KolTrade/SZK+SZP/2,"Разы")
  AddStr("Ликвидность (СТР)",1/0,"")
SET_ROW_COLOR_EX (15, C1, C2, C3, C4)
  AddStr("Доля от рынка",(V/MMVB)*100,"%")
  AddStr("Доля от сектора",(V/OG)*100,"%")
  AddStr("Волатильность (СТР)",1/0,"")
SET_ROW_COLOR_EX (18, C1, C2, C3, C4)
  AddStr("Закрытие/Открытие",((Close/Open)*100)-100,"%")
  AddStr("Максимальная/Открытие",((Max/Open)*100)-100,"%")
  AddStr("Максимальная/Минимальная",((Max/Min)*100)-100,"%")
  AddStr("Открытие/Закрытие пред. дня",((Open/LastClose)*100)-100,"%")
  AddStr("Волатильность (ТАКТ)",1/0,"")
SET_ROW_COLOR_EX (23, C1, C2, C3, C4)
  AddStr("Цена посл./Открытие",((Price/Open)*100)-100,"%")
  AddStr("Максимальная/Цена",((Max/Price)*100)-100,"%")
  AddStr("Цена/Минимальная",((Price/Min)*100)-100,"%")
  AddStr("Максимальная/Средневзв. цена",((Max/WPrice)*100)-100,"%")
  AddStr("Средневзв. цена/Минимальная",((WPrice/Min)*100)-100,"%")
  AddStr("Цена посл./Средневзв. цена",((Price/WPrice)*100)-100,"%")
  AddStr("Средневзв. цена/Цена посл.",((WPrice/Price)*100)-100,"%")
  AddStr("Бета Close(ММВБ)",BCloseMMVB,"BETA")
  AddStr("Бета Close(OG)",BCloseOG,"BETA")

    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

FUNC AddStr(S,P,E)

string = ""
string = set_value(string, "NameStock", S)
string = set_value(string, "Gaz", P)
string = set_value(string, "Ed", E)
    Add_item(GET_NUMBER_OF("OWN")+1,string)
END FUNC

FUNC Modify(S,P,E)

string = ""
string = set_value(string, "NameStock", S)
string = set_value(string, "Gaz", P)
string = set_value(string, "Ed", E)
    Modify_item(STR,string)
    STR = STR + 1
END FUNC

FUNC Beta(St,Ind)


Result = 1

IF St > Ind
IF Abs(St) > Abs(Ind)
Result = ABS(St/Ind)
ELSE
Result = ABS(Ind/St)
END IF
ELSE
IF Abs(St) < Abs(Ind)
Result = ABS(St/Ind)
ELSE
Result = ABS(Ind/St)
END IF
END IF

END FUNC


END_PROGRAM


PARAMETER NameStock;

PARAMETER_TITLE Параметр;
PARAMETER_DESCRIPTION Параметр;
PARAMETER_TYPE STRING(80);
END

PARAMETER Gaz;

PARAMETER_TITLE Газпром;
PARAMETER_DESCRIPTION Газпром;
PARAMETER_TYPE NUMERIC(15,2);
END

PARAMETER Ed;

PARAMETER_TITLE Ед. изм.;
PARAMETER_DESCRIPTION Единица измерения;
PARAMETER_TYPE STRING(10);
END

END_PORTFOLIO_EX