среда, 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