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

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


Описание данной аналитической таблицы Quik смотрите в следующем сообщении.

PORTFOLIO_EX AskBid;
DESCRIPTION Таблица спроса и предложения;
CLIENTS_LIST ALL_CLIENTS;
FIRMS_LIST AskBid;
PROGRAM
NEW_GLOBAL("Stop_Time",174958)
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")
        SS = GET_PARAM(GET_COLLECTION_ITEM(Class,i), GET_COLLECTION_ITEM(Code,i), "biddeptht")+0
        SP = GET_PARAM(GET_COLLECTION_ITEM(Class,i), GET_COLLECTION_ITEM(Code,i), "offerdeptht")+0
KZK = GET_PARAM(GET_COLLECTION_ITEM(Class,i), GET_COLLECTION_ITEM(Code,i), "numbids")+0
        KZP = GET_PARAM(GET_COLLECTION_ITEM(Class,i), GET_COLLECTION_ITEM(Code,i), "numoffers")+0
SZK = SS/KZK
SZP = SP/KZP
Szk_Szp = SZK/SZP
KZK_KZP = KZK/KZP
string = ""
string = set_value(string, "SS", SS)
string = set_value(string, "SP", SP)
string = set_value(string, "KZK", KZK)
string = set_value(string, "KZP", KZP)
string = set_value(string, "KZK_KZP", KZK_KZP)
string = set_value(string, "SZK", SZK)
string = set_value(string, "SZP", SZP)
string = set_value(string, "Szk_Szp", Szk_Szp)
string = set_value(string, "Time_Trade", Time_Trade)
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)
    IF (Szk_Szp >= 1) 
SET_ROW_COLOR_EX (i+1, "RGB(178,246,160)", "RGB(123,239,91)", "RGB(0,0,0)", "RGB(0,0,0)")
ELSE
    IF (Szk_Szp == 0)
SET_ROW_COLOR_EX (i+1, "DEFAULT_COLOR", "DEFAULT_COLOR", "DEFAULT_COLOR", "DEFAULT_COLOR")
ELSE
  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 IF

END FOR

string = ""
string = set_value(string, "NameStock", "ИТОГО:")
string = set_value(string, "SS", 0)
string = set_value(string, "SP", 0)
string = set_value(string, "KZK", 0)
string = set_value(string, "KZP", 0)
string = set_value(string, "SZK", 0)
string = set_value(string, "SZP", 0)

    FOR i FROM 1 TO GET_NUMBER_OF("OWN")-1

  trade = GET_ITEM ("OWN", i)
string = set_value(string, "SS", get_value(string, "SS")+GET_VALUE(trade, "SS"))
string = set_value(string, "SP", get_value(string, "SP")+GET_VALUE(trade, "SP"))
string = set_value(string, "KZK", get_value(string, "KZK")+GET_VALUE(trade, "KZK"))
string = set_value(string, "KZP", get_value(string, "KZP")+GET_VALUE(trade, "KZP"))
string = set_value(string, "SZK", get_value(string, "SZK")+GET_VALUE(trade, "SZK"))
string = set_value(string, "SZP", get_value(string, "SZP")+GET_VALUE(trade, "SZP"))

END FOR

  trade = GET_ITEM ("OWN", GET_NUMBER_OF("OWN"))
string = set_value(string, "KZK_KZP", GET_VALUE(trade, "KZK")/GET_VALUE(trade, "KZP"))
string = set_value(string, "Szk_Szp", GET_VALUE(trade, "SZK")/GET_VALUE(trade, "SZP"))
MODIFY_Item(GET_NUMBER_OF("OWN"),string)
SET_ROW_COLOR_EX (GET_NUMBER_OF("OWN"), "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()
    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
StockInfo = GET_SECURITY_INFO(GET_COLLECTION_ITEM(Class,i), GET_COLLECTION_ITEM(Code,i))
NameStock = GET_VALUE (StockInfo, "NAME")
Time_Trade = GET_PARAM(GET_COLLECTION_ITEM(Class,i), GET_COLLECTION_ITEM(Code,i), "time")
        SS = GET_PARAM(GET_COLLECTION_ITEM(Class,i), GET_COLLECTION_ITEM(Code,i), "biddeptht")+0
        SP = GET_PARAM(GET_COLLECTION_ITEM(Class,i), GET_COLLECTION_ITEM(Code,i), "offerdeptht")+0
KZK = GET_PARAM(GET_COLLECTION_ITEM(Class,i), GET_COLLECTION_ITEM(Code,i), "numbids")+0
        KZP = GET_PARAM(GET_COLLECTION_ITEM(Class,i), GET_COLLECTION_ITEM(Code,i), "numoffers")+0
SZK = SS/KZK
SZP = SP/KZP
Szk_Szp = SZK/SZP
KZK_KZP = KZK/KZP
string = ""
string = set_value(string, "NameStock", NameStock)
string = set_value(string, "SS", SS)
string = set_value(string, "SP", SP)
string = set_value(string, "KZK", KZK)
string = set_value(string, "KZP", KZP)
string = set_value(string, "KZK_KZP", KZK_KZP)
string = set_value(string, "SZK", SZK)
string = set_value(string, "SZP", SZP)
string = set_value(string, "Szk_Szp", Szk_Szp)
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)
    IF (Szk_Szp >= 1) 
SET_ROW_COLOR_EX (i+1, "RGB(178,246,160)", "RGB(123,239,91)", "RGB(0,0,0)", "RGB(0,0,0)")
ELSE
    IF (Szk_Szp == 0)
SET_ROW_COLOR_EX (i+1, "DEFAULT_COLOR", "DEFAULT_COLOR", "DEFAULT_COLOR", "DEFAULT_COLOR")
ELSE
  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 IF
END FOR

IF FTime() > 0
string = set_value(string, "Time_Trade", SUBSTR(FTime(),0,2)&":"&SUBSTR(FTime(),2,2)&":"&SUBSTR(FTime(),4,2))
ELSE
string = set_value(string, "Time_Trade", "")
END IF

string = ""
string = set_value(string, "NameStock", "ИТОГО:")
string = set_value(string, "SS", 0)
string = set_value(string, "SP", 0)
string = set_value(string, "KZK", 0)
string = set_value(string, "KZP", 0)
string = set_value(string, "KZK_KZP", 0)
string = set_value(string, "SZK", 0)
string = set_value(string, "SZP", 0)
string = set_value(string, "Szk_Szp", 0)

    FOR i FROM 1 TO GET_NUMBER_OF("OWN")

  trade = GET_ITEM ("OWN", i)
string = set_value(string, "SS", get_value(string, "SS")+GET_VALUE(trade, "SS"))
string = set_value(string, "SP", get_value(string, "SP")+GET_VALUE(trade, "SP"))
string = set_value(string, "KZK", get_value(string, "KZK")+GET_VALUE(trade, "KZK"))
string = set_value(string, "KZP", get_value(string, "KZP")+GET_VALUE(trade, "KZP"))
string = set_value(string, "SZK", get_value(string, "SZK")+GET_VALUE(trade, "SZK"))
string = set_value(string, "SZP", get_value(string, "SZP")+GET_VALUE(trade, "SZP"))

END FOR
Add_item(GET_NUMBER_OF("OWN")+1,string)
  trade = GET_ITEM ("OWN", GET_NUMBER_OF("OWN"))
string = set_value(string, "KZK_KZP", GET_VALUE(trade, "KZK")/GET_VALUE(trade, "KZP"))
string = set_value(string, "Szk_Szp", GET_VALUE(trade, "SZK")/GET_VALUE(trade, "SZP"))
MODIFY_Item(GET_NUMBER_OF("OWN"),string)
SET_ROW_COLOR_EX (GET_NUMBER_OF("OWN"), "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

END_PROGRAM

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

PARAMETER SS;
PARAMETER_TITLE SS;
PARAMETER_DESCRIPTION Суммарный спрос;
PARAMETER_TYPE NUMERIC(15,0);
END

PARAMETER SP;
PARAMETER_TITLE SP;
PARAMETER_DESCRIPTION Суммарное предложение;
PARAMETER_TYPE NUMERIC(15,0);
END

PARAMETER KZK;
PARAMETER_TITLE KZK;
PARAMETER_DESCRIPTION Количество заявок на покупку;
PARAMETER_TYPE NUMERIC(15,0);
END

PARAMETER KZP;
PARAMETER_TITLE KZP;
PARAMETER_DESCRIPTION Количество заявок на продажу;
PARAMETER_TYPE NUMERIC(15,0);
END

PARAMETER KZK_KZP;
PARAMETER_TITLE KZK/KZP;
PARAMETER_DESCRIPTION Кол-во заявок на покупку/количество заявок на продажу;
PARAMETER_TYPE NUMERIC(15,2);
END

PARAMETER SZK;
PARAMETER_TITLE SZK;
PARAMETER_DESCRIPTION Средняя заявка на покупку;
PARAMETER_TYPE NUMERIC(15,2);
END

PARAMETER SZP;
PARAMETER_TITLE SZP;
PARAMETER_DESCRIPTION Средняя заявка на продажу;
PARAMETER_TYPE NUMERIC(15,2);
END

PARAMETER Szk_Szp;
PARAMETER_TITLE Szk/Szp;
PARAMETER_DESCRIPTION Соотношение средней заявки на покупку со средней заявкой на продажу;
PARAMETER_TYPE NUMERIC(15,2);
END

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

END_PORTFOLIO_EX

Комментариев нет:

Отправить комментарий

Комментируйте и откомментированы будете...!