TradingSolutions Home  |  Products  |  Services  |  Downloads  |  Resources  |  Support  |  Order NeuroDimension Home  
'
   Products
     TradingSolutions
     Trader68
     Add-Ons
     Bundles
     Financial Books
     Other Products
   Services
     System Development
     Custom Software
   Downloads
     Free Evaluation Copy
     Product Updates
     Free Systems
   Resources
     Sample Performance
     Video Tour
     Data Sources
     TradingSolutions FAQ
     Online Brokers
   Viewpoints
     Customer Interviews
     Customer Quotes
     News and Reviews
   Support
     How to Get Help
     Licensed User Center
     Contact NeuroDimension
   Order

   ND Corporate Website
   NeuroSolutions.com

TradingSolutions Frequently Asked Questions (FAQ)

Questions about Technical Analysis

What is technical analysis?
What are the differences between trading and investing?
What is an entry/exit system?

Questions about Technology

What is a neural network?
What are genetic algorithms?
How can genetic algorithms be used to improve neural networks?
How can neural networks and genetic algorithms be used for technical analysis?

Questions about the Technology in TradingSolutions

What types of neural networks are used in TradingSolutions?
What control do I have over the inputs and outputs?
What is the optimal signal?


Q.  What is technical analysis?

A.  Technical Analysis involves using past stock prices, volume, and other related data to forecast future price movements. There are three basic premises that a technical analyst believes in. First, technical analysts believe that the price of a stock is driven by supply and demand. Stocks are not always worth the price that they are selling for. They often trade higher or lower based upon a large demand or a lack thereof. This ties into the second belief of the technical analyst: stocks move in trends that usually last for a detectable period of time. In other words, price movements are not simply random variations. The final belief of a technical analyst is that these detectable trends often repeat themselves. By detecting a repeating pattern in the early stages, a technical analyst is able to profit from the stock price movement if it behaves in the same manner that it did in the past.

There are two main types of technical analysis. The first type is based upon the recognition and interpretation of chart patterns. This type of technical analysis is more of an art than a science and can be very subjective since it relies on the technical analysts' judgment for determining whether a pattern exists or not. Common techniques utilized in this type of technical analysis involve drawing trendlines on the chart, interpreting a Japanese candlestick chart, and using other line studies such as Fibonacci Arcs, Gann Fans, etc. One major problem with this type of technical analysis is that it does not easily lend itself to historical backtesting. Because pattern recognition is subjective and since each pattern must be recognized manually by the analyst, historical backtesting is almost prohibitively laborious. See figure 1, below, for an example of how a trendline might be drawn on a recognized trend.


Demonstration of a Trendline. Notice the distinct upward trend in the CSCO chart from November 5th to December 13th. This type of trend can be exploited by purchasing the stock after the trend has lasted for so many days and selling the stock once the trend appears to be broken.

The second type of technical analysis uses mechanical indicators based on price, volume and other data to predict future price movements and/or to determine when to buy or sell. The data used to create an indicator can be technical (or even date-based fundamental) data taken from the stock being analyzed, a related stock or stocks, or from various general market data sources. This data is then applied to a mathematical formula to generate the indicator. Some indicators can be used directly to make trading decisions. Other indicators must first be processed by a series of rules to generate an entry/exit signal. The underlying formulas for many indicators are based upon moving averages, oscillators, etc. and use price data, volume data, and market data such as breadth as the inputs. Because this type of technical analysis is mechanical in nature and uses mathematical formulas, historical backtesting is possible. This allows the technical analyst to gain confidence in the indicators and any resulting entry/exit signals before actually trading. See figure 2, below, for an example of an indicator.


Demonstration of the classic Moving Average Convergence/Divergence (MACD) indicator. When the MACD is increasing, this indicates that prices are trending higher, whereas a decreasing MACD indicates that prices are trending lower. The MACD is typically traded at the crossover points of its 9-day exponential moving average (not shown).

Neural networks have recently become a very popular technology for technical analysis. They most closely fall within the bounds of this second type of technical analysis. A neural network can be viewed as a very powerful and flexible “formula” whose output can be used directly for making trading decisions or to produce entry/exit signals. However, the neural network goes far beyond a typical indicator, because it has the ability to learn from the data itself. This powerful tool for technical analysis is at the core of TradingSolutions.

 Return to Topic List


Q.  What are the differences between trading and investing?

A.  Investing traditionally refers to buying a stock or other financial instrument for a long period of time, typically over several years. Assessing good investment opportunities often makes use of fundamental information, such as earnings, but can also use technical analysis to detect long-term trends.

Trading typically refers to buying and selling stocks or other financial instruments for shorter periods of time, typicallly less than a few months. Assessing good trading opportunities typically makes use of trading systems or chart-based techniques to detect short-term patterns.

The main advantage of trading over investing is that it provides the ability to make money regardless of the overall direction of the market or the price of an individual stock.


Chart of Baxter Stock Prices during 1999. Notice that despite lots of movement between 57 and 77 over the course of the year, the stock price at the end of the year was very close to the price at the beginning of the year.

Traders try to buy the stock at each of the low points in the price and sell it at the high prices that follow it a few days or weeks later. This is also called a long trade. An additional tool that traders use is short trading. Short trades allow a trader to make money when a price is going down by borrowing shares of the stock from a broker at the high prices and replacing them a few days or weeks later with stock purchased at a lower price.

It is important to understand that it is not necessary to perform short trades in order to make a profit from trading, even in a down market. However, short trading will provide many more opportunities to produce profits.


Chart of percent gains for different approaches to trading Baxter in 1999. Buying the stock and holding it would have yielded a small loss. Buying the stock before each significant rise and selling it at the top would have yielded almost a 200% gain. Also shorting the stock before each significant drop would have yielded over a 600% gain.

Day trading is similar to this, except that time frames are even shorter. Day trading concentrates on the price movements within an individual day, with trades typically lasting less than an hour.

 Return to Topic List


Q.  What is an Entry/Exit System?

A.  An entry/exit system is a set of rules or conditions that specify when to buy or sell an investment. It is also referred to as a trading system in other literature. Upon applying an entry/exit system to a set of data, an entry/exit signal is generated. Entry/exit signals are indications of the best time to buy or sell a stock based on one or more factors in the market. They are also referred to as buy/sell signals or trading signals in other literature. These entry/exit signals can be backtested on historical data to determine the usefulness of the entry/exit system.

Here is a demonstration of a simple entry/exit system that only trades on the long side of the market:
Enter Long: CrossAbove ( MACD ( Close ) , MACDSignal ( Close ) )
Exit Long: CrossBelow ( MACD ( Close ) , MACDSignal ( Close ) )
An investment traded using this entry/exit system is purchased when the Moving Average Convergence/Divergence (MACD) indicator crosses above the MACDSignal indicator (the 9-day exponential moving average of the MACD) and sold when it crosses below.

Some entry/exit systems may produce better results for some stocks than for others. Also, for the same investment, different entry/exit systems often work better than others during different periods in history. The main goal of the technical analyst is to find the right entry/exit system for the right stock at the right time and know when to switch to a different entry/exit system when the current one starts to break down.

A neural network can be used to generate an entry/exit signal directly, or its output(s) can be processed by an entry/exit system to produce an entry/exit signal. However, the nice thing about a neural network, when compared to a traditional entry/exit system, is that once the entry/exit system begins to break down, re-training on the new data that has been collected since the model was originally created will usually improve the results again.

 Return to Topic List


Q.  What is a Neural Network?

A.  A neural network is a powerful data modeling tool that is able to capture and represent complex input/output relationships. The motivation for the development of neural network technology stemmed from the desire to develop an artificial system that could perform "intelligent" tasks similar to those performed by the human brain. Neural networks resemble the human brain in the following two ways:

1. A neural network acquires knowledge through learning.
2. A neural network's knowledge is stored within inter-neuron connection strengths known as synaptic weights.

The true power and advantage of neural networks lies in their ability to represent both linear and non-linear relationships and in their ability to learn these relationships directly from the data being modeled. Traditional linear models are simply inadequate when it comes to modeling data that contains non-linear characteristics.

The most common neural network model is the multilayer perceptron (MLP). This type of neural network is known as a supervised network because it requires a desired output in order to learn. The goal of this type of network is to create a model that correctly maps the input to the output using historical data so that the model can then be used to produce the output when the desired output is unknown. A graphical representation of an MLP is shown below.


Block diagram of a two hidden layer multilayer perceptron (MLP). The inputs are fed into the input layer and get multiplied by interconnection weights as they are passed from the input layer to the first hidden layer. Within the first hidden layer, they get summed then processed by a nonlinear function (usually the hyperbolic tangent). As the processed data leaves the first hidden layer, again it gets multiplied by interconnection weights, then summed and processed by the second hidden layer. Finally the data is multiplied by interconnection weights then processed one last time within the output layer to produce the neural network output.

The MLP and many other neural networks learn using an algorithm called backpropagation. With backpropagation, the input data is repeatedly presented to the neural network. With each presentation the output of the neural network is compared to the desired output and an error is computed. This error is then fed back (backpropagated) to the neural network and used to adjust the weights such that the error decreases with each iteration and the neural model gets closer and closer to producing the desired output. This process is known as “training”.


Demonstration of a neural network learning to model the exclusive-or (Xor) data. The Xor data is repeatedly presented to the neural network. With each presentation, the error between the network output and the desired output is computed and fed back to the neural network. The neural network uses this error to adjust its weights such that the error will be decreased. This sequence of events is usually repeated until an acceptable error has been reached or until the network no longer appears to be learning.

In addition to the multilayer perceptron and other industry-standard neural networks, TradingSolutions includes state-of-the-art time-lag recurrent networks. These dynamic networks are much better than static networks for modeling data that contains information over time, such as financial data. They have locally recurrent connections where they are able to retain past information. Furthermore, the amount of past information stored (memory depth) can be adapted by the neural network to find the optimum. These networks are trained using an extension of backpropagation known as “backpropagation through time”, where the errors are not only backpropagated to the neural network for the current instant, but are also backpropagated across time.

 Return to Topic List


Q.  What are Genetic Algorithms?

A.  Genetic algorithms are general-purpose search algorithms based upon the principles of evolution observed in nature. Even with today's high-powered computers, using an exhaustive search to find the optimal solution for even relatively small problems can be prohibitively expensive.

For many problems, genetic algorithms can often find good solutions (near-optimal) in around 100 generations. This can be many times faster than an exhaustive search. For example, a chromosome containing 32 binary genes would have 4,294,967,296 possible combinations (solutions) to evaluate when using an exhaustive search. If the same problem were to be solved with a genetic algorithm of population size 50, requiring 100 generations of evolution, the genetic algorithm would only need to evaluate 5000 possible solutions.

As mentioned previously, genetic algorithms are able to find optimal or near optimal solutions by using many of the principles of evolution that can be observed in nature. These include selection, crossover, and mutation. Below is an outline of how a genetic algorithm uses these principals to search for optimal solutions:

  1. Create an initial population of chromosomes. Each chromosome is made up of a collection of genes (the parameters to be optimized) and represents a complete solution to the problem at hand. The gene values are usually initialized to random values within user-specified boundaries.
  2. Evaluate each of the chromosomes in the initial population. A chromosome is evaluated by a fitness function to determine the quality of the solution. This fitness function is problem-specific and defines the genetic algorithm's objective for the current problem.
  3. Select chromosomes that will have their information passed on to the next generation. The most common selection operator is “roulette selection”. This selection operator is based upon the evolutionary principle know as “survival of the fittest”, whereby a chromosome's probability of getting selected is proportional to its fitness. Thus, the good solutions are more likely to survive.
  4. Crossover the selected chromosomes to produce new offspring chromosomes. This crossover occurs according to some user-defined probability (usually high) and results in new chromosomes having characteristics taken from both of the parent chromosomes. The most common crossover operator is “one point crossover”. This crossover operator picks a random point within the chromosomes, then switches the genes of the two chromosomes at this point to produce two new offspring. If an offspring takes the best parts from each of its parents, the result will likely be a better solution.
  5. Mutate the genes of the offspring chromosomes. This mutation occurs according to some user-defined probability (usually low) and serves to introduce some variability into the gene pool. Without mutation, offspring chromosomes would be limited to only the genes available within the initial population. For real genes, one of the most common mutation operators simply adds a Gaussian distributed random value to the gene being mutated.
  6. Repeat steps 3 through 5 until a new population of chromosomes has been created. Two chromosomes are selected, crossed-over, and mutated to produce two offspring until there are enough offspring to fill a population the same size as the last population.
  7. Evaluate each of the chromosomes in the new population. Each of the chromosomes in the current population is evaluated by the fitness function, just as the initial population was evaluated in step 2.
  8. Repeat steps 3 through 7 until some termination condition has been met. This termination condition can be based simply on the number of generations or it can be based upon more complex criteria such as the population convergence, fitness convergence, etc.

After the evolution of the initial population through many generations, the chromosomes (or solutions) within the final population will generally be much better as a whole than the chromosomes within the initial population. Also, the best chromosome in the final population will generally be near optimal if the genetic algorithm was run for enough generations.

 Return to Topic List


Q.  How can genetic algorithms be used to improve neural networks?

A.  Genetic algorithms can be combined with neural networks to enhance their performance by taking some of the guesswork out of optimally choosing neural network parameters, inputs etc. In general, genetic algorithms can be used in conjunction with neural networks in the following four ways. They can be used to choose the best inputs to the neural network, optimize the neural network parameters (such as the learning rates, number of hidden layer processing elements, etc.), train the actual network weights (rather than using backpropagation), or to choose/modify the neural network architecture. In each of these cases, the neural network error is the fitness used to rank the potential solutions. TradingSolutions can use genetic algorithms to pick the best inputs, optimize neural network parameters, and to optimize trading thresholds.

 Return to Topic List


Q.  How can neural networks and genetic algorithms be used for technical analysis?

A.  The previous topics have provided brief introductions to technical analysis, neural networks, and genetic algorithms. Now these concepts will be tied together to explain how neural networks and genetic algorithms can be used for technical analysis. In particular, three general methods will be discussed.

First, and probably most common, a neural network could be used to create a model for predicting the future price of a financial instrument, given the current and previous prices and other technical and/or fundamental data. The predicted price could then be used within an entry/exit system to produce a signal indicating when to buy or sell. The simplest entry/exit system would be: buy if the predicted price is greater than the current price and sell otherwise. Genetic algorithms could be used to optimize the neural network's inputs and parameters in order to produce the best model possible.

A second method would be to train a neural network to produce an entry/exit (buy/sell) signal. The desired entry/exit signal for the training phase could be produced by looking into the future to determine the optimum time to buy and sell given certain constraints and commission assumptions. The neural network could then be trained to produce this optimal signal using only current and historical data as inputs. Since the output of this type of neural model is an entry/exit signal, it can be used directly without the need for further processing by an entry/exit system. Again, genetic algorithms could be used to optimize the inputs and parameters to the neural network in addition to the entry/exit system thresholds.

Finally, a neural network could be used to create a model for predicting the performance of a stock for a certain period into the future. For example, the inputs to the model could be the current price, the percent gain over the last week, the percent gain over the last month, etc. and the desired output could be the percent gain for the next week. If this type of model was created for a number of stocks, such as the stocks in the S&P 500, these stocks could be sorted by the projected percent gain for the next week. The top ten could be purchased and held for that week then re-chosen again each week according to the models' projections. This is only one simple way in which this type of model could be used for trading. As with the previous two methods for using neural networks, the networks inputs and parameters could be optimized using genetic algorithms.

These are just some of the ways neural networks and genetic algorithms can be used for technical analysis. Many other possibilities exist. Because TradingSolutions allows you the flexibility to decide the inputs and outputs, you are essentially limited only by your imagination.

 Return to Topic List


Q.  What types of neural networks are used in TradingSolutions?

A.  TradingSolutions comes with several general neural network models that you can use to develop predictions. By default, the program automatically selects an appropriate pre-configured model for the prediction being made. In most cases, beginning and intermediate users can simply continue from this panel without changing any options. However, there may be times when you want to select a different model, modify the pre-configured model, or specify to use a subset of the data for training.

The neural network models in TradingSolutions are broken into two basic types: static neural networks and dynamic neural networks. Static neural networks train and predict using only current input information. This makes them good for classification problems in that they treat each set of inputs as a separate case. Static networks can also be used for time-series predictions by providing multiple historical samples as inputs. Static neural networks include multilayer perceptrons (MLP), modular networks, and Jordan/Elman networks.

Dynamic neural networks train and predict using current input information, as well as a memory of recent input values and other training values. This makes them good for time-series predictions, such as price predictions, since they automatically maintain a memory of recent information to apply against the current information. Dynamic neural networks include time-lag recurrent networks and recurrent networks.

Most of the processing of a neural network takes place in its hidden layers. All of the neural models in TradingSolutions can have one or two hidden layers. Having fewer hidden layers simplifies a neural model, allowing it to train more easily. Having more hidden layers allows a neural model to learn more complex patterns, but makes it more difficult to train.

Each general neural model in TradingSolutions has a list of characteristics, or subtypes, that can be selected from in order to further refine the model. These primarily vary how the various components of the model are connected, but can also be used to select different types of memory in dynamic networks.

 Return to Topic List


Q.  What control do I have over the inputs and outputs?

A.  Predictions in TradingSolutions require a set of inputs and a desired output in order to create a model. For example, if you were trying to predict what the closing price of a stock will be three days from now, you would train the prediction using whatever historical data was relevant to the movement of the closing price as inputs and previous closing prices as desired outputs. The prediction could then be used with the current values of the inputs to predict what the closing price would be in the future.

Most predictions have a single desired output. However, it is also possible to create neural network models that produce multiple predictions. This may be useful when predicting interrelated fields, such as high and low prices for a trading day.

After you have selected the values you are trying to predict, you need to select a set of fields to use as inputs on which to base the model. The selection of inputs is the most important aspect to creating a useful prediction, as it represents all of the knowledge that is available to the model to base the prediction on. Conversely, if you put useless garbage into a neural network, you will get useless garbage back out.

Any number of inputs can be used for a prediction. However, it is possible to provide too many inputs to a neural network. If a model is trained with lots of irrelevant inputs, it may take significantly longer to train or not be able to train at all. And, if a model is trained with many inputs for a relatively small number of samples, it may be subject to over-training, in which the model simply memorizes the training data and doesn't do well at predicting new values.

 Return to Topic List


Q.  What is the optimal signal?

A.  The optimal signal is an entry/exit signal that indicates what would have been the best trading position for a series of price data. Its value is calculated by looking ahead at each point in the data series to determine whether the price went up or down enough to cover a specified minimum profit within a specified amount of time.

For example, looking at a historical data series in a chart, you can visually determine where the peaks and valleys in the price were and decide where you would like to have traded. TradingSolutions automates this task by allowing you to produce an optimal signal that marks these peaks and valleys based on the profit criteria you specify.

The only problem with the optimal signal is that it requires future knowledge to generate. In other words, in order to know the value of the optimal signal for a given day, TradingSolutions needs to know the price for the next ten days. Because of this, the current and most recent values of the optimal signal can not be calculated.

Even though the current value of the optimal signal is not available, its previous values are known for most of the historical data. This means that the optimal signal can be modeled so that we can predict the current value based on how it has reacted to changes in the past. This is similar to predicting future prices in a data series. However, instead of simply predicting the price or the percent change in price, we are predicting the optimal action based on that price.

 Return to Topic List


TradingSolutions Home  |  Products  |  Downloads  |  Resources  |  Support  |  Order

Contact NeuroDimension | Privacy Policy
Webmasters, join our affiliate program. Interested in selling our software? Become a reseller!
Web Site Design and Implementation Copyright © 2009 NeuroDimension, Inc.
Risks of Forex Trading.



NeuroDimension, Inc. unleashes Trader68, free automated trading platform for TradingSolutions Real-Time.


Need help determining which of our products to buy? Try our product advisor.
Stay Informed
Enter your e-mail address in the box below to subscribe to the TradingSolutions Newsletter and be notified when new features are added to the software.
Customer Quotes
"Kudos to you and your team. Even leaving functionality aside for a moment as far as PC software is concerned it is one of, if not the, slickest designs and executions I have had the pleasure of using."
- Colin Woods, Software Developer
More Customer Quotes...

Testimonials Disclosure