back start next

[start] [1] [2] [3] [4] [5] [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] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93] [94] [95] [96] [97] [98] [99] [100] [101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120] [121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140] [141] [142] [143] [144] [145] [146] [147] [148] [149] [150] [151] [152] [153] [154] [155] [156] [157] [158] [159] [160] [161] [162] [ 163 ] [164] [165] [166] [167] [168] [169] [170] [171] [172] [173] [174] [175] [176] [177] [178] [179] [180] [181] [182] [183] [184] [185] [186] [187] [188] [189] [190] [191] [192] [193] [194] [195] [196] [197] [198] [199] [200] [201] [202] [203] [204] [205]


2. Intraday tradmg platform, providing users with on-line data feeds to execute their

Both tjpes of software provide the ability to enter your trading strategies and test them on historic data. The software that operates on daily data is considered-off-line-and is used by traders who prefer to evaluate the maikel after it closes and prepare orders that can be executed the nesd day without having to constantly watch the maiket. The intraday trading platform is much more complex and more expensive. It requires active data feeds and provides both real-time graphics and generates trading signals at the close of each price tick or bar, as defined by the user.

Acquiring Data

Daily historic data, essential to the development of trading sjstems, is readily available and most often comes with the purchase of the software, it is common to see 25 years of historic data on all U.S. markets, but not as common to have European and Asian data provided as well. Intraday data is available from a few major vendors and can be easily obtained for at least 15 years on U.S. markets, but is also much more difficult to get on markets outside the United States. Occasionally, there are sales on this data, and it can be purchased at a reasonable price. The Chicago Mercantile Exchange has made most of its tick data available on compact dide but it is necessarj to convert their form into one that can be read by your trading strategj software.

Of the non-U.S. fhins, Londons LIFFEhas been providing tick data for the longest time, and 10 to 15 years is available for their oldest markets. Frances MATIF is just now providing tick data, as is Germanys DTB, Singapores SIMEX, and many other exchanges. The form of the data provided is very similar, but all of them are incompatible with the trading sfrategj software and require what is called data reduction. Because the exchanges have taken the policy that providing data facilitates trading on their markets, there is usually no cost for it; this gives you some latitude to pay a programmer to write a program to convert this into your own format.

Cleaning the Data

Occasionally, you will find that your sfrategj was immensely profitable, or lost much more than you expected. When you test 20 years of data, you may not look at each trade

but accept the results as correct and rationalize the outcome as a sequence of bad or good frades. You might be surprised to leam that there can be many erroneous prices in your data. It is an incredible waste of time to use data without first reviewing it to find errors.

Tick data is notorious for including bad data with the good, simply because of the magnitude of the problem. Most daily data is alreadj clean. The easiest approach to checking your tbta is to display it as a chart and scan through all of the markets that you plan to use. Bad data points are obvious once seen on a screen. A low price of zero will show up as a vertical line going to the bottom of the chart; this will result in the correct data points being scaled down to look as though they are just a horizontal line. You can then find the date of this point and correct it (provided your software has a correction feature).

if you can program the computer yourself, you will want to scan the data looking for outliers, those data points that are at least I0°o away from the previous data points. The data provider should have prescanned the data to be sure that there are no intraday prices that were outside the end-of-day high and low prices fransmitted by the exchanges, bul this is not usually the case, and you will find that the most obvious errors have been overlooked. There are more subtle errors that can be found and corrected, but the largest ones must be fixed before you use the data. For testing, even one error per year is enough to make all of the tests useless. Dont forget that, if you remove a price instead of correcting it, you must reduce the tick volume as well.

Data Updates

It is not difficult to remember when all fraders kept a copy of the Wall Sfreet journal and clipped the price pages so that data could be entered into their computer. These pages, kept in a file drawer, became their historic database and absolute reference. This doesnt make sense any more. Automatic end-of-day updates are available to anyone at very little cost. They provide complete and accurate data as well as correcting any past data that might have been wrong. Some exchanges post daily prices on their Web sites and can be refrieved for free, but this requires added elfort to convert that data into a form acceptable by your database. Most data providers will accommodate a number of different formats so that data received each day simply gets added to your historic data and is immediately readj to use. Dont do it manually. Your time is best spent finding a profitable frading strategj rather than fiddling with data.

Archivmg Data

Not only must you have a complete database of accurate, historic data, but you must keep that data current* Even if you have a live data feed, the data management of your sjstem cannot store an unlimited amount of ticks or dajs before it begins to discard the oldest values. Most software will have a specftic number of data points that it will hold for intraday data, and much more for daily data. For example, it is common to have only 3 months of tick or 15-minute data, or the computer may hold 4,000 entries each of 1-minute, 5-minute, 15-minute, and daily data, which mean about 16 years of daily data but only 4 months of 15-minute data. This design may be important when you choose the sjstem you use. By being aware of how much data is held, you will need to remember to archive the 15-minute data before each 4-month period elapses; otherwise, you will lose the data and your history will not be continuous.

Combining Standard Techniques into a System

Strategj development programs provide a wide assortment of standard techniques in the form of indicators and sjstems. You can pick a stochastic oscillator, a moving average, or

an N-day breakout and combine them m various wajs to evaluate markets over different time horizons, such as a 10-day and 40-day smoothing, or even varj the frequency of data using 30-minute, 1-hour, and daily bars. In mosl cases, you can write your own formulas to create customized indicators. If you eeriment with these software features, you might find that they provide the ability to create a trading strategj that matdies the time frame and rid; profile that you want. For , a long-term trend can be found with a standard moving average, weighted average, exponential smoothing, N-day breakout, or linear regression. All of these techniques are alreadj available. You may want to combine that with a band to avoid whipsaws. That is also easily done, if you want to alter your timing so that you enter on a pullbad; after a trend signal, then you can add a stochastic or RSI to your rules. Before you begin specialized programming, there is a lot to be learned by using these standard tools. It is not at all clear that you can create a trend that is any better than the ones provided in your sjstem. It may be that the choice of trend period is much more important than the trend technique.


in an era of remarkable advances in technologj, the hardware costs no longer seem an obstacle. As each new, faster chip is introduced, the previous model computers are reduced in price. This process seems to be happening at least once eadi year. The cost of a computer with a maximum configuration is small compared with your objectives and not much greater than one trading loss. Because hardware has a shorter shelf life than only a few years ago, bujing the biggest and best equipment is the only way to extend the life of your purchase.

The process of testing your strategies by optimization is a computationally intensive method for the computer Youll want to have the fastest processor. In addition, testing may still take one or more uninterrupted hours of data crunching; therefore, youll want to have a large RAM to allow that process to go on in the background while you use the computer to do some other tasks. Institutional users will find it more practical to have one or more madiines dedicated to testing. This will allow the calculations to continue at a predictable pace, rather than being interrupted by demands from other programs.

Programming the Sjstem

Computer programming talent is no longer rare, but in high demand. In addition, understanding a trading strategj is a special talent that requires training. Fortunately, the most arcane parts of sjstem development are alreadj part of any trading development software you buy. therefore, it is only necessary to code the actual strategj, rather than how to retrieve and store prices from the exchange data feed.

The prevailing philosophy about software development is to try to use as much thirtartj software as possible, if you need to see the results of a TradeStation optimization, save the results to a spreaddieet, then sort, organize, analyze, and graph the results using your favorite spreadsheet. You can compare one set of tests with another if you save them all in the same format. For the more popular platforms, such as TradeStation and MetaStock, there are a number of users groups, support groups, and newsletters that can be of great help. Some companies provide alternate statistical measurements for your tests, while others have an add-in portfolio program. It is a good idea to check to see

if these services satisfj your needs before attacking the programming yourself Selecting a Programmer

If you are not going to program the computer yourself try to fmd someone with experience in a language similar to the one youll be using. It would be helpful if the programmer had some knowledge of trading, which might avoid errors caused by misunderstanding con

cepts, but that is not likely to happen. Given a choice, a scientific background is better than business programming experience.

Getting a programmer to say how much it will cost or how long it will take to solve a problem is going to be difficult-they just dont know. Programmers are incurable optimists, ahvajs thinking that the problem will be done at anj moment. Even competent managers of programmers have difficulty in scheduling a project, based on the uncertainty of the debugging, or checking-out process. If it is necessarj to contract the work or hire a programmer, try to get a fixed-price quote and avoid the problems that will occur later.

Define the Steps

To keep the work on schedule, you will need to know what you want to do in advance. You can take a chart and mark the places where you believe the sjstem will buy and sell. It is important that you have an actual of what is expected so that you can verifj the programmed results against the example.

Write down all the rules in outline form. You must be able to be precise about every rule. The computer cannot deal with ambiguities. It is very likely that a programmer can work directly from your rules to create the final strategj. This is also an opportunity to be sure that your rules are clear and complete. Using your rules, select a price series and mark the trading signals that will be used to verify the program output. Check the results carefully, if one frade doesnl match your expectations, dont stop until you find the reason.

Looking into the Past

We have alreadj thoroughly discussed the advantages of using as much data as possiblethe results reflect a broader variety of market conditions and are, therefore, more representative. There is often a concem that older data does not represent current conditions. While there may be some truth in that, there is usually more to be gained with a sjstem that can survive those years and still perform well in current markets. Unless there has been a stmctural change that makes the old data invalid, you should always favor Icnger tests and more data. Even if you are convinced that the older years represent a period of low volatility that will never be seen again, your sjstem should, at the very least not post losses for that period.


With all good intentions, when you develop a new strategj you plan to hold the most recent data aside for out-of-sanple testing. Somehow, before youre done, that data has been used a number of times. Therefore, as carefiil as you have fried to be, it is possible that you have overfitted the data by fine tuning the rules and parameters.

The only alternative is some period of paper trading. By monitoring the program daily, you can see how it is performing under real market conditions. Before doing that, however, you should write down the sjstem expectations, for , the size and frequency of the profits and losses. It is ahvajs a relief when the sjstem posts its first profit but it is the overall profile that is most important. When paper frading, assume that your fill is the worst price of the 5-minute period immediately following an infraday signal, or the highest price of the closing range if your frades come at the end of the day. A touch of reality can start you thinking and save a lot of money. Dont start frading a new sjstem without monitoring its performance first

Dealing with the Unexpected

By the time a computer and database have been acquired and installed, you have programmed or had a programmer implement your ideas, debugged and tested the programs.

[start] [1] [2] [3] [4] [5] [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] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93] [94] [95] [96] [97] [98] [99] [100] [101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120] [121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140] [141] [142] [143] [144] [145] [146] [147] [148] [149] [150] [151] [152] [153] [154] [155] [156] [157] [158] [159] [160] [161] [162] [ 163 ] [164] [165] [166] [167] [168] [169] [170] [171] [172] [173] [174] [175] [176] [177] [178] [179] [180] [181] [182] [183] [184] [185] [186] [187] [188] [189] [190] [191] [192] [193] [194] [195] [196] [197] [198] [199] [200] [201] [202] [203] [204] [205]