One Unified Global Perspective
Communications with a Global Perspective
Home
Intro
Contact Us
Voice over IP
PBX Solutions
Services
Support
Glossary
Open Source
Blog
Forum

WebMail





2008 Jul 11 - Fri

Alpha Generation Platforms

Sometime ago, SmartQuant sold their QuantDeveloper code to QuantHouse. I now see in an article at Wall Street & Technology, QuantHouse listed as one of five vendors who have Alpha Generation Technology. QuantHouse must have done some additional work on the platform. QuantDeveloper definitely fit the defintion of a workflow platform:

  • Data acquisition and preparation
  • creation of the initial alpha discovery model
  • back testing the model using historical data sets
  • analyzing the results of back-testing and fine tuning the model
  • simulation with live data
  • coding the quant research model into production for the live trading environment

Alpha is defined as "excess risk-adjusted returns measured above a benchmark".

Key attributes of the packages reviewe included items such as:

  • seamless integration with data sources and databases for rapid data capture
  • transformation and storage for analysis
  • ease of use in creating back testing and simulation environment
  • detailed documentation of model creation process
  • charting, reporting and visualization tools
  • ease of integration with leading statistical packages
  • offers a straight through processing feature that enables quants to move from idea generation to order generation in a reduced time frame
  • offers a codeless environment for rapid strategy development

QuantDeveloper did offer up all those features but that last one. QD is actually a C# development environment disguised as an Alpha Generation Platform.

I'm not promoting or demonting QD here. I did use the package for a couple of years and have since migrated to a custom C++ platform, which I think, in the end, is going offer very similar capabilities. What with QuickFix tested against OpenFix, QuantLib for the math, and a myriad of other integrated abilites, it may just have a chance to be seen in the big leagues.

Yes I do spend much of my time day dreaming. But there is a drop of reality there somewhere.

As a side note, the article threw out a bunch of names. I'll have to follow up on what these do sometime: "real-time high performance databases such as Vhayu, KX and OneTIck. On top of that, analytics and statistical packages are required, such as MATLAB, S+ and R, as well as optimization tools like Northfield, BARRA, Morningstar, Ibbotson, etc., and EMSs/OMSs like Portware, FlexTrade, OrcSoftware, Aegis Software and Tethys, etc.".


2007 Dec 15 - Sat

Candle Analysis for SmartQuantLibraries

A couple of posts at the SmartQuant forums have requested information on Candle definitions and analysis. Here are two C# modules which can used as a basis for your own analysis and signal generation:

There are various knobs you can make use, with 'bald' (which controls when a hair is detected) being the main one. There are some percentages which I should have set as constants scattered through the code (0.40 being one of them), which set whether something is relatively long bodied or short bodied.

If you have changes, let me know, I'll add them and repost.

The source of inspiration was Bigelow's Profitable Candlestick Trading.


2007 Oct 22 - Mon

QuantDeveloper Source

A number of people took the time to email me their thoughts regarding my rant regarding source code for QuantDeveloper. Anton from SmartQuant responded, but unsurprisingly, I havn't heard anything from QuantHouse.

It seems that QuantHouse has purchased various rights and such to QuantDeveloper, and have renamed it to suit their suite. SmartQuant has also retained certain rights and such to QuantDeveloper, and have maintained the name. SmartQuant has indicated they are continuing development of QuantDeveloper and has hinted that some quite advanced features are in the pipeline. He also confirmed that, for existing developers who have subscribed to source code, source code is available for new releases.


2007 Oct 18 - Thu

Trade Optimization by Genetic Programming, Example for QuantDeveloper

I had recieved a private message by someone requesting some background on what I had done for my Genetic Programming trials with QuantDeveloper.

I am releasing the example source code into the public domain. If you make changes and would like to see the changes recorded here, please let me know, and I'll update the files.

The subdirectory OneUnified.GeneticProgramming is the GP library. I used Koza (1992) as well as a few other related references as a guide for various constants and such. You'll need some of my other libraries (as listed elswhere on this site) in order to get the thing to compile.

The library provides population management, survival of the fittest, and various breeding cross-over strategies. Adding and removing operators should be relatively easy. I have a couple of base classes from which most are inherited: boolean and double. Note that, unlike C++ where one can use static methods to initialize some global class variables, C# insists on initializing static class variables upon first invocation, which is why you'll see ugly, redundant code for getting this done for the operator setups. Maybe there is a better way.

The subdirectory UI holds the setup code to run a simulation. When you look at the code, you'll see that there is no real easy way to embed an optimization module in QD, so I took source samples and patched together a self running optimizing application.

You'll be glad to note that doing something like this will be much more difficult, if not impossible in the future. QuantHouse, in their infinite wisdom, has decided that we add-on developers, who don't spend thousands of dollars each month on sub-millisecond data-feeds are a pain in the back side, and so will not be providing source code in the future. Or so they told me. I come from an open source community, and this closed source madness of QuantHouse has turned me off of QD. I've gone back to using C++ routines to take care of my trading chores.

While on the subject of C++, er, C#, I went back to C++ for several other reasons. There is a rich and varied source of high quality open source libraries for C++: Boost, QuantLib just to name two. C++ is faster. Also, I feel that C# is meant for lazy programmers who don't know how to clean up after themselves. There are C++ garbage collection libraries out there if I feel the need to use them. And did you know that Microsoft couldn't even bring themselves to use CLS in most of the their Windows development (most of the core CLS was removed from key kernel applications).

Anyway, here is my Trade Optimization by Genetic Programming, Example for QuantDeveloper.


2007 Jul 17 - Tue

IQFeed Client v1.3 Release

It seams that the client needs to be revised with recent version of the SmartQuant libraries. This one is built with the July 10, 2007 release of libraries. This build may resolve a System.BadImageFormatException. I hope. Here is IQFeed v1.3.


2007 Jul 16 - Mon

IQFeed Client Release 1.2

This client set is released with DTN/IQFeed's latest client v4.2.1.4. This release of the IQFeed SmartQuant Provider v1.2 suppresses an exception when it finds an invalid time in the 18th field of level 1 data. It caused DC to crash and burn, or halt and freeze, as the case may be.

There is a report that it has an image exception when used with OpenQuant. I havn't run OpenQuant, so can't confirm. Please let me know of repeatable issues iwth OpenQuant.


2007 Jul 08 - Sun

TransactionSet Code

For what its worth, there was a request for my TransactionSet code at the SmartQuant Forums. This is my description of the code:

I don't really use the ClOrdId per-se for anything other than reporting an order number. Instead a I created a series of transaction objects, with each storing an opening market/limit order and a starting stop order. When I need to exit, the transaction object then takes care of closing out any stops/markets/limits that are still outstanding. I can then calculate profit/loss (which I could have used from already existing QD API elementes), but I go one step further and maintain other statistics such as time-to-fill, time-in-trade, ... More than anything, the transaction object has helped simplify/encapsulate the trading state-machine for tracking unfilled limits and stops. And it does it smoothly by making use of the two events I mentioned earlier. Then from a higher level perspective, on a market direction change, I can simply tell the transaction to 'exit' and it does what ever clean up is necessary

The code is located in the file TransactionSet.cs.


2007 Jun 05 - Tue

Sliding Window Statistics

Processing bars can lag data somewhat. Bars can also introduce sharp changes in statistics. Instead, I prefer to work with Trades and Quotes directly. But I still need the ability to work with summary statistics.

I've created an O(1) running time mechanism for processing trades and quotes in real time. The resulting code is provided in Accumulation.cs. The basic class I use is SimpleAccumulationStatsOnQuotes. The class is instantiated as an object by defining the window width in seconds. The class will maintain a list of quotes. As quotes are added, they are added to the summary statistics. As quotes fall outside the window, the quotes are removed from the summary statistics.

The summary statistics provide the basics for maintaining Bollinger Bands for the selected moving window time frame.

The class AccumulateQuotes is a brute force approach to calculating slope change velocities and acceleration. I think, with suitable modification of the basic statistics, this class would not be needed.

Running statistics are maintained through a reference to the RunningStats class.

If you wish to know the Minimum/Maximum levels over an interval, a RunningMinMax class helps. It is more of a manual process, with the AddPoint and RemovePoint methods.


2007 Apr 22 - Sun

IQFeed Provider For SmartQuant QuantDeveloper: Updated

I have an original article which discusses a beta IQFeed Provider for SmartQuant's QuantDeveloper product.

I've fixed a few bugs in the provider. In addition, it should work with IQFeed's soon to be released data feeds which are stamped at the second resolution rather than minute resolution. The Provider is released in a zip file with an updated Ticker utility called: OneUnified.IQFeed.1.1.zip. The new IQFeed client is iqfeed_client_4_2_1_3.exe.


2007 Jan 21 - Sun

IQFeed Level II Order Book

DTN IQ has a Level II feed for NASDAQ. I wouldn't classify it as a complete Open Book type of feed. Interactive Brokers has something a bit better in that regard. The draw back with Interactive Brokers Level II Feed is that they will only provide a maximum of three instuments simultaneously. They do provide Level II for NASDAQ as well as for NYSE.

Anyway, back to IQFeed. They provide a type of LevelII for NASDAQ, but nothing similar for NYSE. And as mentioned before, it is not a full OpenBoook. Instead, they supply the best inside price provided from each Market Maker.

I've provided a sample LevelIIOrderBook.cs module to show how to process IQFeed's Level II stream.

I use that code in the demo ticker program I mention in my post at IQFeed Provider for SmartQuant. If there are non-SmartQuant users interested in trying this utility, I'll look at licensing the dll's into the distibution.

There is an interesting Elite Trader chat room capture from a while back as it relates to scalping, program trading, and how to make use of Level II type data. I'm not sure if the strategies still hold, but there were some ways mentioned that could be used to beat some of the automatons on the small scalps.

I'm realizing that for we mere mortals, we'll have to work with slightly larger ranges, but with some sort of decent short term predictor and good money management, it should still be realizeable goal.

The chat was sponsored by Genesis Securities, who have a data/trading interface in QuantDeveloper.



Blog Content ©2008
Ray Burkholder
All Rights Reserved
ray@oneunified.net
(441) 505 7293
Available for Contract Work
Resume

RSS: Click to see the XML version of this web page.

View Ray 
Burkholder's profile on LinkedIn
technorati
Add to Technorati Favorites



September
Su Mo Tu We Th Fr Sa
  6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30        


Main Links:
Monitoring Server
SSH Tools
QuantDeveloper Code

Special Links:
Frink

Blog Links:
Sergey Solyanik
Marc Andreessen
HotGigs
Micro Persuasion
... Reasonable ...
Chris Donnan
BeyondVC
lifehacker
Trader Mike
Ticker Sense
HeadRush
TraderFeed
Stock Bandit
The Daily WTF
Guy Kawaski
J. Brant Arseneau
Steve Pavlina
Matt Cutts
Kevin Scaldeferri
Joel On Software
Quant Recruiter
Blosxom User Group
Wesner Moise
Julian Dunn
Steve Yegge

2008
Months
Sep
Oct Nov Dec




Mason HQ

Disclaimer: This site may include market analysis. All ideas, opinions, and/or forecasts, expressed or implied herein, are for informational purposes only and should not be construed as a recommendation to invest, trade, and/or speculate in the markets. Any investments, trades, and/or speculations made in light of the ideas, opinions, and/or forecasts, expressed or implied herein, are committed at your own risk, financial or otherwise.