"Buy low, sell high. It seems simplistic in its basic construct, but the implementation is often at odds with the construction."
Portfolio management has been a target of computer solutions since the early days of IBM. While the complexity of analysis and the advancement of tools in the form of the faster networked computers and new software technologies haven’t changed the idea of buying and selling, it seems these “advancements” haven’t made it easier for the trader either. The reason for the difficulty is simple however - for it’s much more difficult to make something easy then it is to add complexity. This is where portfolio management and to a greater extent Fund Management exists today – complex.
To further exacerbate the situation, every few years there is heightened debate in software circles whether newly released technologies add complexity for the benefit or detriment of end-users. This debate can be heard today with the release of new software languages, interface changes, data abstraction, distributed environments, and security obstacles. Certainly it’s not the intension of those who develop new technology to add complexity, but like portfolio management, the implementation often leads inevitably toward it. This is the reason, therefore, for my development of my neuFund Manager Software Suite – to leverage technology for its intended purpose, i.e. to make things easier.
It’s difficult to explain why something is easy to use. It’s better to demonstrate simple functionality that hides underlying complexity. But in order to explain how this complexity is hidden, you must start with technology.
Tech Talk…
neuFund Manager Suite was written in 100% .NET 3.5 managed code, using MS Studio 2008. Utilizing an object-oriented methodology and n-Tier architecture, SQL Server 2005 is used as the Data Storage of system objects with administrator controlled protocol selection. The data storage is, however, significantly abstracted using LINQ to easily utilize ORACLE or another in-house DB storage solution. Although system objects are stored via a relational model, an object hierarchy model is persisted internally within the middle tier business objects. All DB input is performed via a shared remoted configuration I/O component, the location of which is administratively determined. AS DB writes occur (protected by transaction encapsulation), this component communicates with another remoted program for event distribution via encrypted TCP (in a proprietary protocol format). All components register and “listen” for these events as they pertain to internal objects, and update those objects accordingly. The Presentation Layer is divided between a Browser Application which utilizes the familiar TreeView/ListView design (also event aware), and Common Dialogs. There are usually two dialogs for each business object, one for creation and one for editing. Along with Configuration I/O, there is a Transaction component which is given a different security roll (to separate configuration security from the more critical business transactions). These too are both event-aware and event driven. At the highest level, the neuFund Browser becomes mostly a host for the underlying objects contained within it. All presentation components within the browser are dockable and sizable.
Reporting is accomplished via MS Business Intelligence Development Studio’s SQL 2005 Reporting Services. Hosted via IIS, Reporting Services publish and serve pre-defined reports using HTML. Although requiring IIS (which can co-reside with SQL Server or on a separate host), the benefit is that reports may be selectively granted access outside the intranet domain – effectively giving members access to their own reports across the internet. Reporting Services do not provide the level of graphics and charting capability as the neuFund Manager, but to offset, the drill-down capability is superb.
Acting as a ‘heart-beat’ of the system is the neuFund Event Server. This program not only sends and receives events to listening components, it is multi-threaded and provides the interface to Internet Data Providers for stock prices, historical data, indexes, etc. Another thread continuously analyses the internal events and creates the Key Performance Indicator data and Alerts as defined by the neuFund Manager configuration. These KPIs and Alerts are therefore seen by the Presentation Layer and middle-tier components as just another event.
All neuFund Manager configuration information is stored within the back-end DB (except for Presentation Layouts which are stored in Isolated Storage by OS user.
Finally, end-user installation is performed via one-click deployment MSIs, which copies all local components as well as the main browser application. Although intended for Enterprise use, a single computer may host all required components if desired.
"neuFund Manager was written to leverage technology, not to complement it."
Transparent to the operator, neuFund Manager technology gives a solid foundation for secure and uninterrupted operation.By separating components in an n-Tier, object oriented, and distributed environment, maintenance is easier, updates are unobtrusive, and deployment effortless.