| By Derek Ferguson | Article Rating: |
|
| September 16, 2008 12:48 PM EDT | Reads: |
2,257 |
At the end of my previous article (DNDJ, Vol. 6, issue 4), I explained the theory behind the two major technologies to be used in timing the market. On the one hand, we are dealing with distributed computing - a process whereby large computationally intensive tasks can be broken up and shared among multiple computers in order to be processed in a shorter amount of time. On the other hand, genetic programming gives us a mechanism for solving the most complicated of problems by "evolving" a solution through the random creation of multiple candidate solutions and the gradual selection of the ones that look most promising.
In this article - the second of this two-part series - we are going to dive into the code behind our solution. First, we'll look at the genetic programming implementation - and see how the artificial intelligence principles that govern this approach can be most readily applied to picking the best stocks in which to invest a fixed amount of money. We'll see what kinds of data these algorithms will require to make their decisions, and we'll see how to evaluate the potential solutions after they've made their decisions.
In the second half of this article we'll turn our attention to the "grid-ification" of our genetic programming solution. A key concern with any such operation is the proper decomposition of a software application into the client application that is intended to run on a single centralized system, and the pieces that are intended to be distributed among multiple machines to perform the actual work of the solution. We'll take a look at the way our solution is constructed, as well as some key challenges that had to be overcome in its creation.
The Genetic Algorithm
The essential framework for the genetic portion of our solution was provided by Brian Connolly in his article "Survival of the Fittest: Natural Selection with Windows Forms". In this article, Brian shows how .NET's Codegen facilities - a set of classes that allow .NET applications to generate new .NET code at runtime - can be leveraged to produce automated "ants" that can, over the course of multiple generations, become increasingly good at gathering pieces of food dropped on a theoretical grid.
Since you can read all about the basics of genetic programming with .NET in this article, we won't go into much more depth about this technology here. There are also three classes provided in this article that we were able to use without modification (see Table 1).
Published September 16, 2008 Reads 2,257
Copyright © 2008 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
More Stories By Derek Ferguson
Derek Ferguson, founding editor and editor-in-chief of .Net Developer's Journal, is a noted technology expert and former Microsoft MVP.
- Kindle 2 vs Nook
- Wave on Ulitzer: Confessions of a Google Wave Fanboy
- Confessions of a Ulitzer Addict
- IBM Hardware Chief, Intel VC Exec Arrested in Insider Trading Scam
- Cloud Computing Best Practices
- Tactical Cloud Computing Panel at 1st Annual GovIT Expo
- Ulitzer.com Named Exclusive "New Media" Sponsor of Cloud Computing Conference & Expo
- Infrastructure-as-a-Service Will Mature in 2010: Microsoft's David Chou
- Windows 7 – Microsoft’s First Step to the Cloud
- Cloud Computing & Federal IT - What Does the Future Hold?
- Jill Tummler Singer, Deputy CIO of CIA, Keynotes at GovIT Expo
- Cloud Expo and the End of Tech Recession
- Kindle 2 vs Nook
- The Difference Between Web Hosting and Cloud Computing
- Ajax in RichFaces 3.3, JSF 2 and RichFaces 4
- Wave on Ulitzer: Confessions of a Google Wave Fanboy
- Confessions of a Ulitzer Addict
- IBM Hardware Chief, Intel VC Exec Arrested in Insider Trading Scam
- Cloud Computing Best Practices
- Tactical Cloud Computing Panel at 1st Annual GovIT Expo
- Ulitzer.com Named Exclusive "New Media" Sponsor of Cloud Computing Conference & Expo
- Eval JavaScript in a Global Context
- Infrastructure-as-a-Service Will Mature in 2010: Microsoft's David Chou
- Windows 7 – Microsoft’s First Step to the Cloud
- Google Maps and ASP.NET
- Crystal Reports XI & How It Has Changed
- Converting VB6 to VB.NET, Part I
- Creating Controls for.NET Compact Framework in Visual Studio 2005
- Where Are RIA Technologies Headed in 2008?
- How to Write High-Performance C# Code
- AJAX World RIA Conference & Expo Kicks Off in New York City
- Implementing Tab Navigation with ASP.NET 2.0
- i-Technology Photo Exclusive: Bill Gates & Steve Jobs In "Nerds"
- .NET Archives: Getting Reacquainted with the Father of C#
- i-Technology Viewpoint: "SOA Sucks"
- Programmatically Posting Data to ASP .NET Web Applications

































