понедельник, 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


суббота, 28 сентября 2013 г.

Аналитические таблицы Quik: лидеры Роста и лидеры Падения, в том числе и по оборотам торгов (описание)

Таблица лидеров падения/роста, отсортированных в конечном итоге по объему торгов




Описание
  • Инструмент = название эмитента на бирже ММВБ (сейчас Московская биржа)
  • Объем торгов = объем торгов в рублях по данному эмитенту
  • Price/LClose = цена последней сделки / цену закрытия предыдущей торговой сделки * 100 - 100 = показывает на сколько процентов (долей процента) текущая цена выше или ниже, чем цена закрытия предыдущей торговой сессии
  • ВЕРОЯТНОСТЬ+ = количество случаев плюсового процента изменения к закрытию предыдущей торговой сессии / количество всех случаев * 100 = показывает процент количества бумаг, находящихся в плюсе по сравнению с ценой предыдущего закрытия во всем количестве рассчитываемых в таблице бумаг
Примечание: бумаги сортируются на плюсовые и минусовые, а среди плюсовых и, соответственно, минусовых, фильтруются по объему торгов в рублях (от большего к меньшему)


пятница, 27 сентября 2013 г.

Действительные трейдеры - кто они? Гуру или money мейкеры?

Действительно, прямо достала трескотня "расторговывающей индустрии" и упрямое стремление множества горлодериков из гурустана стать открывашками Священного Грааля.





Вот они - реальные трейдеры, их не много и они скромны. Успех и деньги, как правило, любят тишину. Не Герчик - и слава Богу!  Знакомьтесь - Дмитрий Барановский! Умеющий слушать, да услышит.

Путь трейдера! - какова реальность?

Скажу Вам, что реальность может быть суровой и чтобы она не была таковой - надо готовиться!

Добро пожаловать в лабораторию КЛИЕНТОНОМИКИ


вторник, 24 сентября 2013 г.

Аналитические таблицы Quik: лидеры Роста и лидеры Падения, в том числе и по оборотам торгов

Данная таблица - скринер, то есть  в online "снимает" лидирующие бумаги среди растущих  и падающих, с учетом оборота торгов. Лидеры по процентам изменения и по тому, что они еще и самые оборотистые - означает одновременную фильтрацию по обоим параметрам (двойная фильтрация) и показывает, что за финансовый инструмент (акция, фьючерс), находится в Лидерах или Аутсайдерах (аутсайдеры рассматриваются относительно роста и считаются "снижающимися финансовыми инструментами").



Используя таблицу можно видеть, как один финансовый инструмент догоняет, сравнивается и обгоняет другой финансовый инструмент, что и является потенциальным сигналом.

PORTFOLIO_EX BW_Next;
DESCRIPTION Лидеры рынка;
CLIENTS_LIST ALL_CLIENTS;
FIRMS_LIST BW_Next;
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("Vol",CREATE_COLLECTION())
NEW_GLOBAL("Price_LClose",CREATE_COLLECTION())
NEW_GLOBAL("Start_Flag",1)
NEW_GLOBAL("Lider",0)

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
Vol = SET_COLLECTION_ITEM(Vol,i, GET_PARAM(GET_COLLECTION_ITEM(Class,i), GET_COLLECTION_ITEM(Code,i), "valtoday")+0)
        Price_LClose = SET_COLLECTION_ITEM(Price_LClose,i,GET_PARAM(GET_COLLECTION_ITEM(Class,i), GET_COLLECTION_ITEM(Code,i), "lastchange")+0)
END FOR

Sort()
PriceSort(30)
SortClose(1,Lider)
SortClose(Lider+1,30)

FOR i FROM 0 TO 29
StockInfo = GET_SECURITY_INFO(GET_COLLECTION_ITEM(Class,i), GET_COLLECTION_ITEM(Code,i))
NameStock = GET_VALUE (StockInfo, "NAME")
string = ""
string = set_value(string, "NameStock", NameStock)
string = set_value(string, "Vol", GET_COLLECTION_ITEM(Vol,i))
string = set_value(string, "Price_LClose", GET_COLLECTION_ITEM(Price_LClose,i))
IF i < Lider
Modify_Item(i+1,string)
SET_ROW_COLOR_EX (i+1, "RGB(178,246,160)", "RGB(123,239,91)", "RGB(0,0,0)", "RGB(0,0,0)")
ELSE
Modify_Item(i+1,string)
SET_ROW_COLOR_EX (i+1, "RGB(253,185,185)", "RGB(255,139,139)", "RGB(0,0,0)", "RGB(0,0,0)")
END IF
END FOR
string = set_value(string, "NameStock", "Вероятность +")
string = set_value(string, "Vol", 1/0)
string = set_value(string, "Price_LClose", (Lider/30)*100)
Modify_Item(31,string)
SET_ROW_COLOR_EX (31, "RGB(0,112,192)", "RGB(0,98,172)", "RGB(255,255,255)", "RGB(255,255,255)")

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

ELSE

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

Class = INSERT_COLLECTION_ITEM(Class,0,"EQBR")
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,"EQNL")
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,"EQBR")
Class = INSERT_COLLECTION_ITEM(Class,0,"EQBR")
Class = INSERT_COLLECTION_ITEM(Class,0,"EQNL")
Class = INSERT_COLLECTION_ITEM(Class,0,"EQNL")
Class = INSERT_COLLECTION_ITEM(Class,0,"EQNL")
Class = INSERT_COLLECTION_ITEM(Class,0,"EQBR")
Class = INSERT_COLLECTION_ITEM(Class,0,"EQNL")
Class = INSERT_COLLECTION_ITEM(Class,0,"EQBR")
Class = INSERT_COLLECTION_ITEM(Class,0,"EQNL")
Class = INSERT_COLLECTION_ITEM(Class,0,"EQNL")
Class = INSERT_COLLECTION_ITEM(Class,0,"EQNE")
Class = INSERT_COLLECTION_ITEM(Class,0,"EQBS")
Class = INSERT_COLLECTION_ITEM(Class,0,"EQNE")
Class = INSERT_COLLECTION_ITEM(Class,0,"EQBR")
Class = INSERT_COLLECTION_ITEM(Class,0,"EQNL")
Class = INSERT_COLLECTION_ITEM(Class,0,"EQNL")
Class = INSERT_COLLECTION_ITEM(Class,0,"EQNL")
Class = INSERT_COLLECTION_ITEM(Class,0,"EQNL")
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,"EQBR")
Class = INSERT_COLLECTION_ITEM(Class,0,"EQBR")
Class = INSERT_COLLECTION_ITEM(Class,0,"EQBS")
Class = INSERT_COLLECTION_ITEM(Class,0,"EQNL")
Class = INSERT_COLLECTION_ITEM(Class,0,"PSLV")
Class = INSERT_COLLECTION_ITEM(Class,0,"EQNL")
Class = INSERT_COLLECTION_ITEM(Class,0,"EQBS")
Class = INSERT_COLLECTION_ITEM(Class,0,"EQNL")
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,"EQNL")
Class = INSERT_COLLECTION_ITEM(Class,0,"EQBR")
Class = INSERT_COLLECTION_ITEM(Class,0,"EQLI")
Class = INSERT_COLLECTION_ITEM(Class,0,"EQNE")
Class = INSERT_COLLECTION_ITEM(Class,0,"EQNL")
Class = INSERT_COLLECTION_ITEM(Class,0,"EQNE")
Class = INSERT_COLLECTION_ITEM(Class,0,"EQBS")
Class = INSERT_COLLECTION_ITEM(Class,0,"EQBR")
Class = INSERT_COLLECTION_ITEM(Class,0,"EQNL")


Code = INSERT_COLLECTION_ITEM(Code,0,"SBER03")
Code = INSERT_COLLECTION_ITEM(Code,0,"GAZP")
Code = INSERT_COLLECTION_ITEM(Code,0,"GMKN")
Code = INSERT_COLLECTION_ITEM(Code,0,"LKOH")
Code = INSERT_COLLECTION_ITEM(Code,0,"VTBR")
Code = INSERT_COLLECTION_ITEM(Code,0,"ROSN")
Code = INSERT_COLLECTION_ITEM(Code,0,"SNGS")
Code = INSERT_COLLECTION_ITEM(Code,0,"SNGSP")
Code = INSERT_COLLECTION_ITEM(Code,0,"SBERP03")
Code = INSERT_COLLECTION_ITEM(Code,0,"RTKM")
Code = INSERT_COLLECTION_ITEM(Code,0,"HYDR")
Code = INSERT_COLLECTION_ITEM(Code,0,"PLZL")
Code = INSERT_COLLECTION_ITEM(Code,0,"MTSI")
Code = INSERT_COLLECTION_ITEM(Code,0,"URSI")
Code = INSERT_COLLECTION_ITEM(Code,0,"CHMF")
Code = INSERT_COLLECTION_ITEM(Code,0,"RU14TATN3006")
Code = INSERT_COLLECTION_ITEM(Code,0,"SIBN")
Code = INSERT_COLLECTION_ITEM(Code,0,"TRNFP")
Code = INSERT_COLLECTION_ITEM(Code,0,"URKA")
Code = INSERT_COLLECTION_ITEM(Code,0,"OGK2")
Code = INSERT_COLLECTION_ITEM(Code,0,"NOTK")
Code = INSERT_COLLECTION_ITEM(Code,0,"RTKMP")
Code = INSERT_COLLECTION_ITEM(Code,0,"MAGN")
Code = INSERT_COLLECTION_ITEM(Code,0,"TGKJ")
Code = INSERT_COLLECTION_ITEM(Code,0,"PMTL")
Code = INSERT_COLLECTION_ITEM(Code,0,"NLMK")
Code = INSERT_COLLECTION_ITEM(Code,0,"STKM")
Code = INSERT_COLLECTION_ITEM(Code,0,"MSNG")
Code = INSERT_COLLECTION_ITEM(Code,0,"RASP")
Code = INSERT_COLLECTION_ITEM(Code,0,"RBCI")
Code = INSERT_COLLECTION_ITEM(Code,0,"OGKE")
Code = INSERT_COLLECTION_ITEM(Code,0,"MSRS")
Code = INSERT_COLLECTION_ITEM(Code,0,"VSMO")
Code = INSERT_COLLECTION_ITEM(Code,0,"FEES")
Code = INSERT_COLLECTION_ITEM(Code,0,"AKRN")
Code = INSERT_COLLECTION_ITEM(Code,0,"VTEL")
Code = INSERT_COLLECTION_ITEM(Code,0,"OGK4")
Code = INSERT_COLLECTION_ITEM(Code,0,"OGK6")
Code = INSERT_COLLECTION_ITEM(Code,0,"ZMZNP")
Code = INSERT_COLLECTION_ITEM(Code,0,"SPTL")
Code = INSERT_COLLECTION_ITEM(Code,0,"RU000A0ERGA7")
Code = INSERT_COLLECTION_ITEM(Code,0,"AFLT")
Code = INSERT_COLLECTION_ITEM(Code,0,"OGK1")
Code = INSERT_COLLECTION_ITEM(Code,0,"BLNG")
Code = INSERT_COLLECTION_ITEM(Code,0,"GRAZ")
Code = INSERT_COLLECTION_ITEM(Code,0,"MMBM")
Code = INSERT_COLLECTION_ITEM(Code,0,"VZRZ")
Code = INSERT_COLLECTION_ITEM(Code,0,"IRGZ")
Code = INSERT_COLLECTION_ITEM(Code,0,"OGKC")

FOR i FROM 0 TO GET_COLLECTION_COUNT(Class)-1
    Vol = INSERT_COLLECTION_ITEM(Vol,i,GET_PARAM(GET_COLLECTION_ITEM(Class,i), GET_COLLECTION_ITEM(Code,i), "valtoday")+0)
Price = GET_PARAM(GET_COLLECTION_ITEM(Class,i), GET_COLLECTION_ITEM(Code,i), "last")+0
LClose = GET_PARAM(GET_COLLECTION_ITEM(Class,i), GET_COLLECTION_ITEM(Code,i), "prevprice")+0    
        Price_LClose = INSERT_COLLECTION_ITEM(Price_LClose,i,(Price/LClose*100)-100)  
END FOR

Sort()
PriceSort(30)
SortClose(1,Lider)
SortClose(Lider+1,30)

FOR i FROM 0 TO 29
StockInfo = GET_SECURITY_INFO(GET_COLLECTION_ITEM(Class,i), GET_COLLECTION_ITEM(Code,i))
NameStock = GET_VALUE (StockInfo, "NAME")
string = ""
string = set_value(string, "NameStock", NameStock)
string = set_value(string, "Vol", GET_COLLECTION_ITEM(Vol,i))
string = set_value(string, "Price_LClose", GET_COLLECTION_ITEM(Price_LClose,i))
IF i < Lider
Add_Item(i+1,string)
SET_ROW_COLOR_EX (i+1, "RGB(178,246,160)", "RGB(123,239,91)", "RGB(0,0,0)", "RGB(0,0,0)")
ELSE
Add_Item(i+1,string)
SET_ROW_COLOR_EX (i+1, "RGB(253,185,185)", "RGB(255,139,139)", "RGB(0,0,0)", "RGB(0,0,0)")
END IF
END FOR
string = set_value(string, "NameStock", "Вероятность +")
string = set_value(string, "Vol", 1/0)
string = set_value(string, "Price_LClose", (Lider/30)*100)
Add_Item(31,string)
SET_ROW_COLOR_EX (31, "RGB(0,112,192)", "RGB(0,98,172)", "RGB(255,255,255)", "RGB(255,255,255)")

    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 Sort()
FOR S FROM 0 TO GET_COLLECTION_COUNT(Vol)-2
max = S
FOR k FROM S+1 TO GET_COLLECTION_COUNT(Vol)-1
IF ((GET_COLLECTION_ITEM(Vol,k)+0) > (GET_COLLECTION_ITEM(Vol,max)+0))
max = k
            END IF
    END FOR
buf = GET_COLLECTION_ITEM(Vol,S)
Vol = SET_COLLECTION_ITEM(Vol,S,GET_COLLECTION_ITEM(Vol,max))
Vol = SET_COLLECTION_ITEM(Vol,max, buf)

buf = GET_COLLECTION_ITEM(Class,S)
Class = SET_COLLECTION_ITEM(Class,S,GET_COLLECTION_ITEM(Class,max))
Class = SET_COLLECTION_ITEM(Class,max, buf)

buf = GET_COLLECTION_ITEM(Code,S)
Code = SET_COLLECTION_ITEM(Code,S,GET_COLLECTION_ITEM(Code,max))
Code = SET_COLLECTION_ITEM(Code,max, buf)

buf = GET_COLLECTION_ITEM(Price_LClose,S)
Price_LClose = SET_COLLECTION_ITEM(Price_LClose,S,GET_COLLECTION_ITEM(Price_LClose,max))
Price_LClose = SET_COLLECTION_ITEM(Price_LClose,max, buf)
    END FOR
END FUNC

FUNC SortClose(F,Kol)
FOR S FROM F-1 TO Kol-2
max = S
FOR k FROM S+1 TO Kol-1
IF ((GET_COLLECTION_ITEM(Vol,k)+0) > (GET_COLLECTION_ITEM(Vol,max)+0))
max = k
            END IF
    END FOR
buf = GET_COLLECTION_ITEM(Vol,S)
Vol = SET_COLLECTION_ITEM(Vol,S,GET_COLLECTION_ITEM(Vol,max))
Vol = SET_COLLECTION_ITEM(Vol,max, buf)

buf = GET_COLLECTION_ITEM(Class,S)
Class = SET_COLLECTION_ITEM(Class,S,GET_COLLECTION_ITEM(Class,max))
Class = SET_COLLECTION_ITEM(Class,max, buf)

buf = GET_COLLECTION_ITEM(Code,S)
Code = SET_COLLECTION_ITEM(Code,S,GET_COLLECTION_ITEM(Code,max))
Code = SET_COLLECTION_ITEM(Code,max, buf)

buf = GET_COLLECTION_ITEM(Price_LClose,S)
Price_LClose = SET_COLLECTION_ITEM(Price_LClose,S,GET_COLLECTION_ITEM(Price_LClose,max))
Price_LClose = SET_COLLECTION_ITEM(Price_LClose,max, buf)
    END FOR
END FUNC

FUNC PriceSort(Kol)
Lider = 0
FOR S FROM 0 TO Kol-1
IF ((GET_COLLECTION_ITEM(Price_LClose,S)+0) > 0)
buf = GET_COLLECTION_ITEM(Vol,Lider)
Vol = SET_COLLECTION_ITEM(Vol,Lider,GET_COLLECTION_ITEM(Vol,S))
Vol = SET_COLLECTION_ITEM(Vol,S, buf)

buf = GET_COLLECTION_ITEM(Class,Lider)
Class = SET_COLLECTION_ITEM(Class,Lider,GET_COLLECTION_ITEM(Class,S))
Class = SET_COLLECTION_ITEM(Class,S, buf)

buf = GET_COLLECTION_ITEM(Code,Lider)
Code = SET_COLLECTION_ITEM(Code,Lider,GET_COLLECTION_ITEM(Code,S))
Code = SET_COLLECTION_ITEM(Code,S, buf)

buf = GET_COLLECTION_ITEM(Price_LClose,Lider)
Price_LClose = SET_COLLECTION_ITEM(Price_LClose,Lider,GET_COLLECTION_ITEM(Price_LClose,S))
Price_LClose = SET_COLLECTION_ITEM(Price_LClose,S, buf)
        
Lider = Lider + 1
END IF
    END FOR
END FUNC

END_PROGRAM

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

PARAMETER Vol;
PARAMETER_TITLE Объем торгов;
PARAMETER_DESCRIPTION Объем торгов;
PARAMETER_TYPE NUMERIC(15,2);
END

PARAMETER Price_LClose;
PARAMETER_TITLE Price/LClose;
PARAMETER_DESCRIPTION Объем торгов;
PARAMETER_TYPE NUMERIC(15,2);
END

END_PORTFOLIO_EX