umoz
0
All posts from umoz
  umoz in Poyarkov696,

Профиль рынка

 

Пробую выложить код портфеля для проверки возникшего затруднения неправильного копирования, Портфель отображает как изменяются бумаги в теч дня по разным спискам
 
 
PORTFOLIO_EX Profile;
DESCRIPTION Профиль рынка;
CLIENTS_LIST ALL_CLIENTS;
FIRMS_LIST FIRMID;
 
PROGRAM
 
 FUNC ISZERO(d)
RESULT = 0
if ((d<0.00001 and="" d="">-0.00001))
RESULT = 1
end if
 END FUNC
 
 FUNC ISEQUAL(d1,d2)
RESULT = ISZERO(0+d1-d2)
 END FUNC
 
sClassCodes = GET_CLASSES_LIST()
outputline  = 0
DELETE_ALL_ITEMS()
 
for sClassCode in sClassCodes
sSecurities = GET_CLASS_SECURITIES(sClassCode)
iCount = 0
iCountUp = 0
iCountDown = 0
sClassName = ""
 
for sSecCode in sSecurities
if iCount = 0
vSecInfo = GET_SECURITY_INFO(sClassCode, sSecCode)
sClassName = GET_VALUE (vSecInfo, "CLASS_NAME")
end if
iCount = iCount + 1
dLastChange = GET_PARAM (sClassCodes, sSecCode, "lastchange")
if (ISEQUAL(dLastChange,0) = 0)
if (dLastChange>0) 
iCountUp = iCountUp + 1
else
iCountDown = iCountDown + 1
end if
end if 
end for
 
if sClassName ""
outputline = outputline + 1
output=CREATE_MAP()
output=SET_VALUE(output,"Class",sClassName)
output=SET_VALUE(output,"ProcUp",iCountUp * 100 / iCount )
output=SET_VALUE(output,"ProcDown",iCountDown * 100 / iCount)
output=SET_VALUE(output,"Count",iCount )
output=SET_VALUE(output,"CountUp",iCountUp )
output=SET_VALUE(output,"CountDown",iCountDown )
 
ADD_ITEM(outputline,output)
 
if (iCountUp > iCountDown) 
SET_ROW_COLOR_EX (outputline, "DEFAULT_COLOR", "DEFAULT_COLOR", "RGB(0,128,0)", "RGB(255,255,255)")
else
if (iCountUp
SET_ROW_COLOR_EX (outputline, "DEFAULT_COLOR", "DEFAULT_COLOR", "RGB(255,0,0)", "RGB(255,255,255)")
end if
end if
end if
end for
 
END_PROGRAM
 
PARAMETER Class;
PARAMETER_TITLE Класс;
PARAMETER_DESCRIPTION Класс;
PARAMETER_TYPE STRING(50);
END
 
PARAMETER ProcUp;
PARAMETER_TITLE % растущих;
PARAMETER_DESCRIPTION Процент растущих бумаг;
PARAMETER_TYPE NUMERIC(10,2);
END
 
PARAMETER ProcDown;
PARAMETER_TITLE % падающих;
PARAMETER_DESCRIPTION Процент падающих бумаг;
PARAMETER_TYPE NUMERIC(10,2);
END
 
PARAMETER Count;
PARAMETER_TITLE Всего бумаг;
PARAMETER_DESCRIPTION Всего бумаг;
PARAMETER_TYPE NUMERIC(10,2);
END
 
PARAMETER CountUp;
PARAMETER_TITLE Всего растущих;
PARAMETER_DESCRIPTION Всего растущих;
PARAMETER_TYPE NUMERIC(10,2);
END
 
PARAMETER CountDown;
PARAMETER_TITLE Всего падающих;
PARAMETER_DESCRIPTION Всего падающих;
PARAMETER_TYPE NUMERIC(10,2);
END
END_PORTFOLIO_EX