yourfanat wrote: I am using another tool for Oracle developers - dbForge Studio for Oracle. This IDE has lots of usefull features, among them: oracle designer, code competion and formatter, query builder, debugger, profiler, erxport/import, reports and many others. The latest version supports Oracle 12C. More information here.
Cloud Computing
Conference & Expo
November 2-4, 2009 NYC
Register Today and SAVE !..

2008 West
Data Direct
SOA, WOA and Cloud Computing: The New Frontier for Data Services
Red Hat
The Opening of Virtualization
User Environment Management – The Third Layer of the Desktop
Cloud Computing for Business Agility
CMIS: A Multi-Vendor Proposal for a Service-Based Content Management Interoperability Standard
Freedom OSS
Practical SOA” Max Yankelevich
Architecting an Enterprise Service Router (ESR) – A Cost-Effective Way to Scale SOA Across the Enterprise
Return on Assests: Bringing Visibility to your SOA Strategy
Managing Hybrid Endpoint Environments
Game-Changing Technology for Enterprise Clouds and Applications
Click For 2008 West
Event Webcasts

2008 West
Get ‘Rich’ Quick: Rapid Prototyping for RIA with ZERO Server Code
Keynote Systems
Designing for and Managing Performance in the New Frontier of Rich Internet Applications
How Can AJAX Improve Homeland Security?
Beyond Widgets: What a RIA Platform Should Offer
REAs: Rich Enterprise Applications
Click For 2008 Event Webcasts
In many cases, the end of the year gives you time to step back and take stock of the last 12 months. This is when many of us take a hard look at what worked and what did not, complete performance reviews, and formulate plans for the coming year. For me, it is all of those things plus a time when I u...
Timing the Market with Distributed Genetics
Taking the winning side in trades using Genetic Programming and Grid Computing

Genetic Programming
Sometimes, you want to solve a problem and you’re pretty sure what a solution would look like, and what the pieces and players are that would have to be involved in any solution – but you’re just not quite sure how to manipulate those pieces in order to get to your envisioned solution. A game of chess is a good real-world example; I know that I need to manipulate my pieces according to a fixed set of rules until I can put my opponent’s king in a state of checkmate, but the exact series of steps I need to take in order to do that can be difficult to see.

Genetic programming uses a model for solving such problems that simulates biological evolution. A number of solutions are randomly generated, then tried and evaluated on the basis of how close they come to solving the problem at hand. Depending on how good or poor a given solution seems to be it will either become the starting point for additional, randomly generated solutions, or dropped from further consideration.

In evolutionary terms, this is similar to the way in which new mutations within a species prove to be beneficial, harmful, or neutral over time. A caveman with a third arm might have found that he was better-equipped for hunting. This might have made him especially popular with the cave ladies and, as a result, he had more offspring and a greater impact on succeeding generations. By way of contrast, a modern-day salesman with a third arm would probably not be as successful – constantly getting it caught in revolving doors and such – and as a result would probably die without progeny, living in the proverbial van down by the river.

The .NET Tool Kit
There is certainly much to be said for creating your own base frameworks for either grid or genetic algorithm applications. The degree of control possible when you roll your own implementations will always exceed anything that is available off-the-shelf. For most applications, however, a couple of base frameworks have developer editions that can be freely used in a limited capacity.

The Digipede Framework
Digipede is a .NET-based framework for grid computing. It provides three essential pieces right out-of-the-box. First, there is a Digipede Server, Digipede Workbench and Control. These applications work together to coordinate and allow you to monitor the independent units of work that you have out on your grid. You typically install these on a single computer in your network.

Second are the Digipede Agents. You will typically install a Digipede Agent on every machine that you want to have performing work as a part of your grid computing environment. The free Developer Edition allows you to install a maximum of two Agents – enough to allow you to completely build and test a grid program, but probably not enough to leverage much benefit for many grid-worthy computing applications.

Finally, and in many ways most important, is the Digipede Framework itself. By providing just a handful of classes for extension and/or consumption, Digipede allows you to focus on writing the “business logic” you need to have running on a grid. The Digipede software will completely handle the relatively inane tasks of distributing and coordinating the tasks you need to have performed across your grid.

John Koza’s Genetic Programming Textbook
The other bit of freely available framework that we will use as the starting point for our application is John Koza’s excellent textbook on the topic of genetic programming called, simply, Genetic Programming: On the Programming of Computers by Means of Natural Selection. In this textbook, Mr. Koza lays out a framework for genetic programming that we will follow very closely in our construction of a stock-picking grid application.

Designing the Stock Selection Application
In order to build an application that is capable of selecting stocks, evaluating the appropriateness of those selections over time, and then adjusting itself for greater accuracy in the future, we will need to provide our application with some data on which to base its selections. This leads us to the first question that typically presents itself in developing genetic algorithms: On what kind of data should its decisions most likely be based?

A quick review of financial planning guides, trading websites, etc., will quickly cause you to zero in on a handful of likely data points for long-term financial analysis. For this engine, we will use the “Real Time Market Data” web service made available by WebServiceX.NET.

This web service provides a façade over the market data published by the INET electronic exchange. The operations we are interested in, specifically, are:

  • TopLists: We will use this to retrieve a base list of 500 stocks that our application will evaluate and decide whether to buy, sell, or hold (ignore).
  • LastExecution: We will evaluate the effectiveness of our algorithms by comparing the price on the last execution for a stock to the last price initially given by the TopLists operation for that stock.

About Derek Ferguson
Derek Ferguson, founding editor and editor-in-chief of .Net Developer's Journal, is a noted technology expert and former Microsoft MVP.

In order to post a comment you need to be registered and logged in.

Register | Sign-in

Reader Feedback: Page 1 of 1

SOA World Latest Stories
"We started a Master of Science in business analytics - that's the hot topic. We serve the business community around San Francisco so we educate the working professionals and this is where they all want to be," explained Judy Lee, Associate Professor and Department Chair at Golden Gate...
There is a huge demand for responsive, real-time mobile and web experiences, but current architectural patterns do not easily accommodate applications that respond to events in real time. Common solutions using message queues or HTTP long-polling quickly lead to resiliency, scalability...
We call it DevOps but much of the time there’s a lot more discussion about the needs and concerns of developers than there is about other groups. There’s a focus on improved and less isolated developer workflows. There are many discussions around collaboration, continuous integration a...
The dynamic nature of the cloud means that change is a constant when it comes to modern cloud-based infrastructure. Delivering modern applications to end users, therefore, is a constantly shifting challenge. Delivery automation helps IT Ops teams ensure that apps are providing an optim...
Modern software design has fundamentally changed how we manage applications, causing many to turn to containers as the new virtual machine for resource management. As container adoption grows beyond stateless applications to stateful workloads, the need for persistent storage is founda...
"CA has been doing a lot of things in the area of DevOps. Now we have a complete set of tool sets in order to enable customers to go all the way from planning to development to testing down to release into the operations," explained Aruna Ravichandran, Vice President of Global Marketin...
Subscribe to the World's Most Powerful Newsletters
Subscribe to Our Rss Feeds & Get Your SYS-CON News Live!
Click to Add our RSS Feeds to the Service of Your Choice:
Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET Kinja Digest View Additional SYS-CON Feeds
Publish Your Article! Please send it to editorial(at)!

Advertise on this site! Contact advertising(at)! 201 802-3021

SYS-CON Featured Whitepapers