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
Lori MacVittie is a subject matter expert on emerging technology responsible for outbound evangelism across F5's entire product suite. MacVittie has extensive development and technical architecture experience in both high-tech and enterprise organizations, in addition to network and sy...
In his general session at 19th Cloud Expo, Manish Dixit, VP of Product and Engineering at Dice, discussed how Dice leverages data insights and tools to help both tech professionals and recruiters better understand how skills relate to each other and which skills are in high demand usin...
When building large, cloud-based applications that operate at a high scale, it’s important to maintain a high availability and resilience to failures. In order to do that, you must be tolerant of failures, even in light of failures in other areas of your application. “Fly two mistakes ...
Containers and Kubernetes allow for code portability across on-premise VMs, bare metal, or multiple cloud provider environments. Yet, despite this portability promise, developers may include configuration and application definitions that constrain or even eliminate application portabil...
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...
Using new techniques of information modeling, indexing, and processing, new cloud-based systems can support cloud-based workloads previously not possible for high-throughput insurance, banking, and case-based applications. In his session at 18th Cloud Expo, John Newton, CTO, Founder an...
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
Most Read This Week