Параметр Бета показывает - опережает (Бета > 1) или запаздывает (Бета < 1) финансовый инструмент по сравнению с базовым финансовым инструментом.
Чаще всего сравнивают акции, фьючерсы с фондовым индексом, а также отраслевые индексы с общим фондовым индексом.
Запаздывание, а впоследствии опережение финансовым инструментом, например, индекса ММВБ или индекса РТС, может являться сигналом к торговле данным финансовым инструментом.
PORTFOLIO_EX Beta;
DESCRIPTION Расчет параметра БЕТА;
CLIENTS_LIST ALL_CLIENTS;
FIRMS_LIST Beta;
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
Close = GET_PARAM(GET_COLLECTION_ITEM(Class,i), GET_COLLECTION_ITEM(Code,i), "lastchange")+0
Price = GET_PARAM(GET_COLLECTION_ITEM(Class,i), GET_COLLECTION_ITEM(Code,i), "last")+0
Open = GET_PARAM(GET_COLLECTION_ITEM(Class,i), GET_COLLECTION_ITEM(Code,i), "open")+0
Time_Trade = GET_PARAM(GET_COLLECTION_ITEM(Class,i), GET_COLLECTION_ITEM(Code,i), "time")
MMVB = GET_PARAM("INDX", "MICEXINDEXCF", "lastchange")+0
OG = GET_PARAM("INDX", "MICEXO&G", "lastchange")+0
OClose = (Price/Open*100)-100
BOpenMMVB = Beta(OClose,MMVB)
BOpenOG = Beta(OClose,OG)
BCloseMMVB =Beta(Close,MMVB)
BCloseOG = Beta(Close,OG)
OpenClose = (BCloseMMVB/BOpenMMVB*100)-100
string = ""
string = set_value(string, "Close", Close)
string = set_value(string, "OClose", OClose)
string = set_value(string, "BOpenMMVB", BOpenMMVB)
string = set_value(string, "BOpenOG", BOpenOG)
string = set_value(string, "BCloseMMVB", BCloseMMVB)
string = set_value(string, "BCloseOG", BCloseOG)
string = set_value(string, "OpenClose", OpenClose)
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)
Col(BCloseMMVB,i)
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
StockInfo = GET_SECURITY_INFO(GET_COLLECTION_ITEM(Class,i), GET_COLLECTION_ITEM(Code,i))
NameStock = GET_VALUE (StockInfo, "NAME")
Close = GET_PARAM(GET_COLLECTION_ITEM(Class,i), GET_COLLECTION_ITEM(Code,i), "lastchange")+0
Price = GET_PARAM(GET_COLLECTION_ITEM(Class,i), GET_COLLECTION_ITEM(Code,i), "last")+0
Open = GET_PARAM(GET_COLLECTION_ITEM(Class,i), GET_COLLECTION_ITEM(Code,i), "open")+0
Time_Trade = GET_PARAM(GET_COLLECTION_ITEM(Class,i), GET_COLLECTION_ITEM(Code,i), "time")
MMVB = GET_PARAM("INDX", "MICEXINDEXCF", "lastchange")+0
OG = GET_PARAM("INDX", "MICEXO&G", "lastchange")+0
OClose = (Price/Open*100)-100
BOpenMMVB = Beta(OClose,MMVB)
BOpenOG = Beta(OClose,OG)
BCloseMMVB =Beta(Close,MMVB)
BCloseOG = Beta(Close,OG)
OpenClose = (BCloseMMVB/BOpenMMVB*100)-100
string = ""
string = set_value(string, "NameStock", NameStock)
string = set_value(string, "Close", Close)
string = set_value(string, "OClose", OClose)
string = set_value(string, "BOpenMMVB", BOpenMMVB)
string = set_value(string, "BOpenOG", BOpenOG)
string = set_value(string, "BCloseMMVB", BCloseMMVB)
string = set_value(string, "BCloseOG", BCloseOG)
string = set_value(string, "OpenClose", OpenClose)
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)
Col(BCloseMMVB,i)
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 Col(ST, K)
IF St == 0
SET_ROW_COLOR_EX (K+1, "RGB(219,229,241)", "RGB(200,215,234)", "RGB(0,0,0)", "RGB(0,0,0)")
END IF
IF St > 1
SET_ROW_COLOR_EX (K+1, "RGB(178,246,160)", "RGB(123,239,91)", "RGB(0,0,0)", "RGB(0,0,0)")
ELSE
SET_ROW_COLOR_EX (K+1, "RGB(253,185,185)", "RGB(255,139,139)", "RGB(0,0,0)", "RGB(0,0,0)")
END IF
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
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 Close;
PARAMETER_TITLE % измен. закр.;
PARAMETER_DESCRIPTION Изменение к зактытию;
PARAMETER_TYPE NUMERIC(15,2);
END
PARAMETER OClose;
PARAMETER_TITLE % измен. откр.;
PARAMETER_DESCRIPTION Изменение к открытию;
PARAMETER_TYPE NUMERIC(15,2);
END
PARAMETER BOpenMMVB;
PARAMETER_TITLE Бета open(ММВБ) ;
PARAMETER_DESCRIPTION 1;
PARAMETER_TYPE NUMERIC(15,2);
END
PARAMETER BOpenOG;
PARAMETER_TITLE Бета open(OG) ;
PARAMETER_DESCRIPTION 1;
PARAMETER_TYPE NUMERIC(15,2);
END
PARAMETER BCloseMMVB;
PARAMETER_TITLE Бета Close(ММВБ) ;
PARAMETER_DESCRIPTION 1;
PARAMETER_TYPE NUMERIC(15,2);
END
PARAMETER BCloseOG;
PARAMETER_TITLE Бета Close(OG) ;
PARAMETER_DESCRIPTION 1;
PARAMETER_TYPE NUMERIC(15,2);
END
PARAMETER OpenClose;
PARAMETER_TITLE M B(C/O) %;
PARAMETER_DESCRIPTION 1;
PARAMETER_TYPE NUMERIC(15,2);
END
PARAMETER Time_Trade;
PARAMETER_TITLE Время послед.;
PARAMETER_DESCRIPTION Время последнего изменения;
PARAMETER_TYPE STRING(10);
END
END_PORTFOLIO_EX