You are viewing a javascript disabled version of the site. Please enable Javascript for this site to function properly.
Go to headerGo to navigationGo to searchGo to contentsGo to footer
In content section. Select this link to jump to navigation

Empirical evaluation of price-based technical patterns using probabilistic neural networks


Technical analysis is the art of identifying patterns in historical data with the belief that certain patterns foretell future price movements. An empirical evaluation of the effectiveness of technical analysis is confounded by the subjectivity involved in identifying patterns. This work presents a robust framework for pattern identification using probabilistic neural networks (PNN). The thirty components of the Dow Jones Industrial Average and a set of ten indices are considered. Fourteen patterns are analyzed. In order to test the possibility that technical patterns are more predictable in certain market environments, the period under study (1990 – 2015) is partitioned into bull and bear markets and the statistical significance of profits earned by identified patterns observed in each environment is analyzed. A range of holding periods from 10 to 50 trading days is considered and a simple model of transaction costs is added. The study reveals that no pattern produces statistically and economically significant profits for a cross-section of stocks and indices analyzed, though a few patterns are more successful predictors. Bullish (bearish) patterns are more reliable predictors in bullish (bearish) market environments. These observations can be explained by the Adaptive Market Hypothesis with certain patterns becoming more accurate predictors in specific market environments.


Technical analysis is the art of identifying geometric patterns in historical prices – often supplemented with volume-based signals – with the belief that occurrence of patterns are reliable predictors of price movement in the immediate future. Academic professionals and fundamental analysts typically scoff at technical analysis because of its paucity of quantitative justification. Recent works dealing with profitability of technical analysis based trading strategies have given some credence to the assertion that technical analysis may not be a complete farce. Brock et al. (1992) test the profitability of moving average rule (buying when shorter period moving average rises above longer period moving average, and selling when it falls below longer period moving average) and trading-range break out (buy when price rises above the observed local maximum and sell when it falls below the observed local minimum). They find statistically significant profits that cannot be explained using three null models of efficient market hypothesis – random walk, AR(1) and GARCH-M models. They observe further that volatility of returns following a buy signal is lower than volatility of returns following sell signal, thereby refuting the notion that higher returns for these strategies compensate higher inherent risks.

Osler and Chang (1995) test the profitability of head and shoulders pattern in foreign-exchange markets. They find the strategy yields economically significant profit in German Mark and Yen markets but not in other exchange rate markets studied in the work. They use a bootstrap method using random walk null model of efficient market hypothesis to conclude that returns from head and shoulders trading strategy are incompatible with the null hypothesis for German Mark and Yen exchange markets. Rejection of null model could either imply inefficiency of those exchange markets or the existence of a different null model compatible with efficient market hypothesis (for example, time varying mean). Other works Logue et al. (1978), Sweeney (1986), and Levich and Thomas (1993) also report statistically significant profits using technical analysis.

Savin et al. (2007) use pattern recognition method presented by Lo et al. (2000) to test if head-and-shoulders pattern has predictive power. After examining data for S&P 500 and Russell 2000 from 1990 to 1999, they conclude that the pattern has negligible predictive power when used as a stand-alone trading strategy, but has power to predict risk-adjusted excess returns over market portfolio returns. They conclude that the period studied in their work coincided with a bull market, and head-and-shoulders being a reversal pattern would not be a profitable stand-alone trading strategy.

Researchers have noted the failure of macro-economic models in explaining exchange rate volatility. Neely et al. (1997) and Stephan (2009) have assessed the effectiveness of technical patterns in explaining exchange rate fluctuations. Neely et al. (1997) apply genetic algorithm to study the profitability of technical patterns in foreign exchange markets. Genetic algorithm is used to design superior trading strategies based on filter rules and moving-average rules. The rule is tested in an out-of-sample period from 1981 – 1995 and found to generate statistically and economically significant profits. Neely et al. (1997) further show that the higher profits are not a compensation for bearing higher risks by examining betas. The significance of technical patterns in foreign exchange markets has been examined by Stephan (2006), Stephan (2008) and Stephan (2009). Stephan (2009) attributes the prevalence of technical analysis in foreign exchange markets to a virtuous circle whereby traders use it as a tool to form an expectation of current trends, in turn making technical analysis a more commonly used tool and increasing its effectiveness as a predictor. Neely et al. (2009) examine the time-varying effectiveness of technical patterns as predictors in foreign exchange market. They observe that filter-rules and moving-average technical rules produce statistically and economically significant profits from early 1970 to late 1980; however, by early 1990 such rules no longer produce statistically significant profits. They explain the observation as being consistent with Adaptive Market Hypothesis (Lo, 2004). Olson (2004) arrives at a similar conclusion, noting that moving-average trading rule profits (risk-adjusted) have declined from 3.5% during 1970 to around 0% from 1990 to 2000 across 18 exchange rate series. Chavarnakul and Enke (2008) employ generalized regression neural network (GRNN) to construct two trading strategies based on equivolume charting that predict the next day’s price using volume and price based technical indicators. They observe that using neural network improves the profitability of a moving average based trading rule in trending markets. However, the time period studied is rather limited - one year - and they only consider S&P 500 index. Furthermore, the difference in profitability between neural network based strategy and buy-and-hold strategy is not too large. Other works (Enke and Thawornwong 2005), (Li and Kuo 2008), (Leigh et al. 2005), (Chenoweth et al. 1996) have studied the application of neural networks in finance. Enke and Thawornwong (2005) test the hypothesis that neural networks can provide superior prediction of future returns based on their ability to identify non-linear relationships. They employ only fundamental measures and do not consider technical ones. Their neural network provides higher returns than buy-and-hold strategy, but they do not consider transaction costs. Scalar vector regression (SVR) has also been used in creating automated trading strategies: (Hong et al. 2010; Huang 2012; Kazema et al. 2013; Wang and Pardalos 2014).

A challenging aspect for any work attempting to perform an empirical assessment of technical analysis based trading strategies is the automated identification of technical pattern. Osler and Chang (1995) employ a method based on peaks and troughs. They define a peak as a local maximum of closing price that is at least χ percent higher than the preceding trough and a trough as a local minimum at least χ percent lower than the preceding peak. χ is selected based on standard deviation; in their work they select a set of values for the cutoff parameter χ. Lo et al. (2000) use a novel method based on kernel smoothing. They use a Gaussian kernel in smoothing, with a constant smoothing parameter chosen by visual inspection of smoothed price curve. Approach used by Lo et al. (2000), and Osler and Chang (1995) has the shortcoming of using a constant smoothing parameter over the entire price history. Heteroskedasticity in stock prices is a well documented phenomenon (Bollerslev, 1987). Lo et al. (2000) acknowledge this shortcoming. Methods employed by Osler and Chang (1995) and Lo et al.(2000) use sequence of successive local maximum and minimum to identify patterns. In addition, they use a number of tests to make sure there is close fidelity to the technical patterns they recognize, for example, Lo et al. (2000) require the tops in a double-top pattern to be within 1.5% of their mean. It is conceivable for a double-top pattern to occur with successive tops being slightly more than 1.5% of their average. Further, it is distinctly possible that a different smoothing in an area may reveal part of a pattern. An approach that insists on observing local extrema in a specific order while using a constant smoothing parameter is likely to miss such pattern occurrences.

This work applies neural networks for recognizing technical patterns in stock prices and evaluates the performance of patterns as predictors of future price movements. Neural networks are uniquely suited to the task of character recognition, and pattern recognition has distinct similarities to character recognition (Beymer and Poggio 1996). A class of neural networks called probabilistic neural networks or PNN is employed. PNN were introduced by Specht (1990). The process of constructing a PNN is simpler than that required for a back-propagation neural network. PNN is used to identify the following patterns: ascending-triangle, descending-triangle, head-and-shoulders, cup-and-handle, double-top, double-bottom, triple-top, triple-bottom, broadening-top, down-price-channel, rising-wedge, falling-wedge, up-symmetric-triangle, down-symmetric-triangle and down-price-channel for ten indices and for the thirty components of Dow Jones Industrial Average. To evaluate the empirical performance of a trading strategy based on each of the patterns, 15 years of history for indices (from 2000 to 2015) and 25 years of history for Dow Jones components (from 1990 to 2015) is considered.

Technical analysts also resort to the use of volume-based indictors as confirming signals during pattern formation phase. However, there is little agreement between technical analysts on the exact definition of confirming signals. The confirming signals rarely constitute the defining aspect of the pattern. To illustrate this point, consider the definition of head-and-shoulders pattern from two sources Investopedia (2016) and Wikipedia (2016). While Investopedia (2016) mentions nothing about the role of volume, Wikipedia (2016) qualifies its description of the pattern using volume: “The left shoulder is formed at the end of an extensive move during which volume is noticeably high.”. However, Wikipedia (2016) further qualifies the role of volume in left shoulder by mentioning that the breakout below neckline in that region may occur on high or low volume. “The drawn neckline of the pattern represents a support level, and assumption cannot be taken that the Head and Shoulder formation is completed unless it is broken and such breakthrough may happen to be on more volume or may not be. Because volume does not seem to play the defining role in pattern definition and there is some disagreement on the exact definition of the volume-based confirming signal, this work does not consider volume for the purpose of pattern identification.

The remainder of this paper is organized as follows: Section 3 describes the algorithm used in identifying the patterns, Section 4 describes the probabilistic neural network used, Section 5 discusses the application of the probabilistic neural network in identifying the patterns for ten indices and thirty Dow Jones components. Section 6 concludes the work.

2Algorithm for identification of technical patterns

To recognize a pattern using neural networks, a representation of the pattern is required that is robust to local noise. As a first step, prototypes of price patterns are first created manually. The prototypes are very geometric, with prices rising and falling along straight lines. Figures 13 show the manually generated prototypes on a plot. These prototypes are referred as prototype patterns in this work. All prototype patterns are twenty days in length. Next, Gaussian noise is added to each day’s price in prototype pattern. The standard deviation of noise is selected to be smaller than the maximum daily price change in the prototype plots. In the present work, standard deviation of added noise is taken to be 0.3. 200 realizations of random variable are obtained at each point, thereby yielding 200 perturbed plots corresponding to each prototype pattern. An example of perturbed plot for head-and-shoulders pattern is shown in Fig. 4. Next, each point in the unperturbed price plot is moved to the left by one day. First and last points corresponding to the first and last day are kept at their original positions. The third days price displaces the second day’s price and so on. 200 realizations of Gaussian noise with mean = 0 and variance = 0.09 are added to each day’s price yielding 200 new perturbed plots. An example of left-shift perturbed plot for head-and-shoulders pattern is shown in Fig. 4. In a similar manner to the left-shift, right shift is performed on unperturbed base price pattern, keeping the first and last day’s prices at their original location. After right-shifting by one day, 200 realizations of Gaussian noise are added to each day’s price yielding another 200 perturbed plots. Gaussian noise has mean = 0 and variance = 0.09. An example of right-shift perturbed plot for head-and-shoulders pattern is shown in Fig. 4. This procedure produces 601 examples of price patterns corresponding to each technical pattern under consideration. These 601 plots (six hundred perturbed plots and one prototype plot) corresponding to each pattern comprise the training set for the probabilistic neural network. PNN are simpler to construct as compared with multi-layer back-propagation neural networks. For example, back-propagation neural network implementation in R package neuralnet (Fritsch et al. 2012) fails to converge for the data set in this work (14 × 601 plots). Increasing the number of hidden neurons or the maximum iterations does not help to overcome the problem of non-convergence during training. Also, increasing the number of hidden layers or hidden neurons increases the time taken by back-propagation neural network during learning. This demonstrates the attractive feature of network simplicity for a PNN. Details regarding construction of PNN are presented in Section 4.


Manually generated pattern shapes.

Manually generated pattern shapes.

Manually generated pattern shapes.

Manually generated pattern shapes.

Manually generated pattern shapes.

Manually generated pattern shapes.

Perturbed head-and-shoulders pattern with left and right shift.

Perturbed head-and-shoulders pattern with left and right shift.

In order to classify a pattern into one of several classes under consideration, or to determine that it does not belong to any of the classes, a representation of pattern is required. This representation is akin to a fingerprint: patterns belonging to one class should produce similar representations. This task is similar to the task confronted in character recognition where a handwritten character must be matched to one of several known characters. However, unlike in character recognition where a character must belong to one of several classes (alphabets), one also needs to discriminate the case where a pattern does not match any of the classes. To that end, the algorithm for pattern recognition presented in this work can also be used for character recognition.

The prototype patterns and their perturbations are constructed to have the same length, i.e. they have same number of days. This is true of all patterns considered. In this work, the prototype patterns are chosen to be 20 days in length. This requirement does not impose any restriction on the length of patterns that can be classified using this algorithm. Further, because window sizes considered are greater than or equal to 20 days, resizing the series down to a length of 20 days does not introduce significant interpolation inaccuracy. The prices are normalized. Let pmin denote the minimum price, p the daily price and pmax the maximum price observed over the twenty day length of a pattern. Normalized prices are calculated using equation (1).


This set of twenty normalized prices is the fingerprint of the pattern. The perturbations of a pattern will have fingerprints that are closer to the fingerprints of prototype (unperturbed) pattern. Distance is defined as Euclidean distance in the twenty-dimensional space. More formally, distance between two patterns is given by equation (2). xi and yi are the normalized prices.


A probabilistic neural network (PNN) is constructed to classify patterns belonging to the types considered in this work. Details of constructing the network are presented in the next section. In order to identify a pattern, a range of window lengths varying from twenty days to sixty days are considered. Let l denote the window length, L denote the price series length and i denote an index in price series. For each window length, the algorithm checks price pattern between i and i + l days, where index i ranges from the beginning of price series to L - l - 1 (inclusive range). The price list observed between days [i, i + l] is scaled to a new price list with 20 elements; the scaled price list now has the same length as the prototype patterns. The price series length scaling is performed using equation (3). Rescaling is analogous to resizing the price series length to 20 days. Price for day j in actual price series becomes the price on day dj in rescaled price series where dj is given by equation (3). Price for days between dj and dj+1 are interpolated.


Fingerprint of each rescaled price series is calculated as a tuple of twenty normalized prices using Equation (1). This fingerprint is presented as input to PNN for classification. In order to identify the case where a pattern does not match any of the types considered in this work, the PNN uses a threshold. Details are presented in the next section.

3Details on probabilistic neural network

Probabilistic neural networks were first introduced by Specht (1990) as a four-layer neural network capable of representing non-linear decision boundaries for a classification problem and offering significant speedup as compared to the training time of a back-propagation multi-layer feed-forward neural network. Prababilistic neural networks have four layers: input layer, pattern layer, summation layer and output layer. The first layer is the input layer. The number of input units is equal to the dimensionality of the problem. In this work, a pattern is represented by a set of twenty normalized prices, hence the first layer of PNN is comprised of twenty input units. The input units transmit their input as output, without applying any other transformation. The second layer of the PNN, known as pattern layer, is defined by the training set data. In this work, the training data consists of 14 × 601 inputs – each pattern type has 600 perturbations and one base price series, giving 601 training data points for each pattern type, and there are fourteen patterns types examined. The second layer therefore consists of 14 × 601 units. Units in second layer of a PNN network are grouped into classes the PNN network is meant to classify. In this work, second layer units are grouped into fourteen groups. Each group consists of 601 units. Each unit applies a Gaussian activation function to its input. If the input is denoted as x, output generated by m unit in second layer pattern j is given by equation (4). xm denotes the normalized price vector corresponding to mth training input. xm and x are vectors of size 20.


In Equation (4), xi refers to the training data point corresponding to i pattern unit. It is the normalized price. σ is the variance-covariance matrix defined on training data belonging to a pattern type. It is calculated as shown in Equation (5). There are fourteen variance covariance matrices used in the PNN network, one corresponding to each pattern type.


The third layer of a PNN is the summation layer. Summation layer sums up the output from second layer’s units belonging to a group. There are fourteen summation layer units in this work, each producing an output corresponding to the likelihood of the data matching a pattern type. Input for a summation layer unit is the set of outputs generated by second layer units belonging to a particular group. Summation layer unit’s output is shown in equation (6). m denotes the index of pattern type, there are 14 types of pattern considered in this work.


The fourth layer of a PNN is the output layer, it picks the group having the maximum value and classifies the data as belonging to that group. The fourth layer has one unit, its output is given in Equation (7).


A PNN always classifies a data into one of the classes. In order to identify the case where a data set does not match any pattern, this work requires the maximum output to be greater than 100 times the output from other groups. Let zm denote the maximum output from third layer and zi denote an output from another unit in third layer. m denotes the third layer unit having maximum output and i is another third-layer unit. For the data to be classified as matching pattern m, this work requires that Equation (8) hold for all i ≠ m.


The threshold value of 100 is an empirical parameter, higher values of threshold will produce very close matches to the pattern while rejecting potential matches that do not comport with the threshold. Low values of threshold parameter will produce greater number of matches while producing an occasional false positive by identifying a data to match a pattern when it does not (i.e. a technical analyst would disagree with the classification).

A diagrammatic representation of the probabilistic neural network is shown in Fig. 5.


Representation of PNN.

Representation of PNN.

4Application of pattern recognition in empirical analysis

This work attempts to identify technical patterns enumerated earlier in prices of thirty Dow Jones components and in ten indices: S&P 500 index and nine Russell indices (Table 1). For Dow Jones components and S&P 500 index, price history from 1990 to 2015 is analyzed. For Russell indices, price history from 2000 to 2015 is studied because prices for these indices are available from 2000 onwards. Patterns with length ranging from 20 trading days to 40 trading days are considered (40 trading days is around two months). Manifestations of patterns with longer duration are not identified. This restriction reflects a compromise between reducing computation time and considering a window length that covers common occurrences of patterns. Bulkowski (2005, p. 805) observes average length of falling-wedge pattern to be less than two months, average length of flag pattern to be less than two weeks (Bulkowski 2005, p. 903), average length of broadening tops and bottoms to be two months (Bulkowski 2005, p. 81), average length between left and right shoulder tops of head-and-shoulders pattern to be two months (Bulkowski 2005, p. 415) and average length of an island pattern to be just over a month (Bulkowski 2005, p. 491). According to Bulkowski (2005, p. 143), pattern length can vary depending on bull or bear market. A range of holding periods (10, 20, 30, 40 and 50 trading days) is considered in order to test the possibility that some patterns may need longer holding periods for price to move in accordance with the pattern’s prediction.

On each day, the PNN based pattern identification algorithm is applied to price series of 30 Dow components and 10 indices to see if a pattern can be identified over the window length. Dividend and split adjusted closing prices for the 30 Dow components and 10 indices are used. After identification, the pattern is validated using an independent test (described below). Once a pattern is identified and validated, its return is recorded over the holding period. Return is calculated as pi+N-pipi, where N is the holding period length. In order to examine the possibility that technical patterns may be more effective predictors in certain market environments, the period from 1990 to 2015 is partitioned into bull or bear markets depending upon the market performance (S&P 500 index) during the period. The periods were selected using publicized dates for the onset of bull and bear markets widely reported in media. This selection entails some in-sample bias because the partitions are selected ex-post, though the bias is alleviated to a certain extent by the relatively long duration of periods selected compared to the length of patterns and holding periods considered. A study conducted for the entire period yields similar qualitative results. Since the patterns are either bullish or bearish in their predictions, it is appropriate to partition the period between bullish or bearish markets and test the predictive power of all patterns in the two market environments. The classification is shown in Table 2. Returns observed for different patterns are tabulated in tables presented. Examples of identified patterns are presented in Figures 6, 7 and 8.

Table 1

Indices analyzed

TickerIndex Name
SPYS&P 500
IWMRussell 2000
IWBRussell 1000
IWRRussell Midcap
IWCRussell Microcap
XLGRussell Top 50
IWFRussell 1000 Growth
IWDRussell 1000 Value
IWORussell 2000 Growth
IWNRussell 2000 Value
Table 2

Partition by market trend

Begin DateEnd DateClassification
1991-01-011999-01-01Bull Market
2002-01-012003-04-01Bear Market
2003-03-012007-09-01Bull Market
2007-10-012009-02-01Bear Market
2009-03-012015-01-01Bull Market

Specimen patterns identified by the algorithm.

Specimen patterns identified by the algorithm.

Specimen patterns identified by the algorithm.

Specimen patterns identified by the algorithm.

Specimen patterns identified by the algorithm.

Specimen patterns identified by the algorithm.

Bullish and bearish environments are selected to coincide with changes in S&P 500 index over a period of a year or more, marked by well publicized market events (Table 2). Shorter periods – less than a year – were not used in order to reduce in-sample bias because the partitions are being selected ex-post. The period from 1990 – 1999 is marked by a steady rise in markets, without any major market black-swan event like Black Monday (crash of 1987) or technology crash. 2002 – 2003 partition is widely recognized as the period of technology bubble burst. 2003 – 2007 partition is recognized as the bull market spawned by brisk growth of mortgage lending; 2007 – 2009 partition is the ensuing period now referred as the Great Recession and 2009 – 2015 is the period of recovery from the Great Recession.

In order to validate identified patterns, a price-based test is added. The validation test is based on observing a set of high and low prices in a certain order. A technical pattern is characterized as an ordered set of high and low prices attained during the pattern’s observation period. Lo et al. (2000) have used kernel smoothing techniques to identify local price maxima and minima. Locally weighted scatter-plot smoothing algorithm (LOESS) with a quadratic polynomial employed for local fitting is used for price smoothing. Smoothed daily prices are compared to their neighboring prices to identify local extrema (maximum or minimum) by comparing the closing price for a day with the closing price of preceding and following trading days. If the closing price is higher than its neighbors, the price is a local maximum. Likewise, if it is lower than its neighbors, it is a local minimum. The identified pattern must have an occurrence of high-low price sequence characterizing the pattern. If an identified pattern fails the validation test, it is rejected. The high-low sequence for the patterns is shown in Table 4. Parameters employed in locally weighted scatterplot smoothing algorithm are tabulated in 3.

Table 3

Parameters used in LOESS smoothing

Polynomial Degree
KernelGaussian (Least
Squares Fitting)
Table 4

Validating identified patterns

PatternHigh-Low Order
Ascending Triangle(H,L,H,L,H)
Descending Triangle(L,H,L,H,L)
Broadening Top(H,L,H,L,H,L)
Double Bottom(L,H,L)
Double Top(H,L,H)
Down Price Channel(H,L,H,L,H,L)
Cup and Handle(H,L,H,L,H)
Head and Shoulders(H,L,H,L,H,L)
Symmetric Triangle Down(H,L,H,L,H)
Symmetric Triangle Up(H,L,H,L,H)
Triple Bottom(L,H,L,H,L)
Triple Top(H,L,H,L,H)
Falling Wedge(H,L,H,L,H,L)
Rising Wedge(H,L,H,L,H,L)

Recognized and validated patterns are not manually evaluated to ensure correct classification. Technical analysts employ additional tests for classifying a price series as a technical pattern. To the extent that those validation tests are not employed, certain price series may have been misclassified.

Trading strategies based on technical patterns are often associated with trading rules. Trading rules are diverse, ranging from simple price increase or decrease based decisions to complex conditions involving volume. In order to study the impact of trading rules on the ability of technical patterns to forecast future price movements, a simple trading rule is applied: following the identification of the pattern, closing price is observed after three days. If the close price has not moved in accordance with the prediction of the technical pattern, no trading is done for that pattern instance. As an example, let i denote the day on which a technical pattern is recognized. Closing price is observed for i + 3 day and compared with closing price for i day. If the price change is not in accord with the bullish or bearish price prediction of the pattern, no trading is done for that pattern occurrence. Holding period begins from i + 4 day and ends on i + 13 day (both days inclusive) to ensure there is no in-sample bias. Three-day period is an empirical parameter; it is meant to test the accuracy of technical patterns as a price predictor. Increasing this period can increase the reliability of patterns at the expense of foregoing trading for more days following pattern identification.

Figures 6, 7 and 8 demonstrate the effectiveness of the algorithm in identifying patterns.

After a technical pattern is identified by the algorithm, price change is recorded for one unit of asset for the duration of the holding period. In order to ensure that there is no in-sample bias, holding period begins after pattern identification, validation and application of trading rule. A range of holding periods – 10, 20, 30, 40 and 50 trading-days – are considered. Technical analysis categorizes the technical patterns as bullish or bearish – bullish patterns are supposed to presage bullish price movement and bearish patterns are harbingers of future price declines. Table 5 shows this classification. In order to assess the statistical significance of profits for the trading strategy based on respective technical patterns, a one-sided t-test is performed. One-sided test is appropriate to test the bullish or bearish characterization of the patterns. 95% significance threshold is used; thestatistically significant patterns observed during bull and bear markets are reported in Tables 6 and 7 for Dow Jones components and in Tables 8 and 9 for indices respectively. Other patterns were not statistically significant. Null hypothesis for the test is that the technical patterns have no predictive power for future price movements.

Table 5

Bullish or bearish classification of technical patterns

PatternBullish or Bearish Predictor
Ascending TriangleBullish
Descending TriangleBearish
Broadening TopBearish
Double BottomBullish
Double TopBearish
Down Price ChannelBearish
Cup and HandleBullish
Head and ShouldersBearish
Symmetric Triangle DownBearish
Symmetric Triangle UpBullish
Triple BottomBullish
Triple TopBearish
Wedge FallingBullish
Wedge RisingBearish
Table 6

Statistically significant patterns observed during bull markets for dow components

AXP30Double Bottom132.2630.0210.977
AXP30Cup and Handle52.0450.0482.385
AXP40Cup and Handle52.2220.0381.560
AXP40Falling Wedge521.8010.0390.771
AXP50Double Bottom132.6800.0091.703
AXP50Falling Wedge522.3930.0101.280
BAC30Falling Wedge421.8120.0390.343
BAC40Double Bottom202.4420.0120.711
BAC40Symmetric Triangle Up352.0130.0260.361
BAC40Falling Wedge421.7640.0420.420
BAC50Symmetric Triangle Up351.9570.0290.418
BAC50Falling Wedge422.2090.0160.628
BA10Falling Wedge501.8480.0350.481
BA20Falling Wedge502.5880.0061.102
BA30Falling Wedge502.2130.0160.996
BA40Falling Wedge502.9140.0031.451
BA50Falling Wedge503.6520.0002.319
CAT20Falling Wedge352.4530.0101.342
CAT30Double Bottom201.8550.0391.928
CAT30Falling Wedge352.3260.0131.576
CAT50Triple Bottom102.4240.0182.158
CAT50Falling Wedge353.3360.0013.009
CSCO20Double Bottom171.7700.0470.458
CSCO20Falling Wedge512.3880.0100.272
CSCO40Double Bottom171.9020.0370.628
CSCO50Falling Wedge512.1010.0200.455
CVX10Falling Wedge451.9580.0280.487
CVX40Symmetric Triangle Up392.0940.0211.120
DD10Double Bottom292.3160.0140.478
DD10Falling Wedge461.6820.0500.270
DD20Falling Wedge461.7950.0400.437
DD30Falling Wedge462.6860.0050.785
DD40Falling Wedge464.2250.0001.339
DD50Symmetric Triangle Up291.7750.0430.671
DD50Falling Wedge463.7750.0001.312
DIS10Double Bottom152.0250.0310.511
DIS20Falling Wedge432.5280.0080.666
DIS30Double Bottom151.7680.0490.756
DIS30Falling Wedge433.8040.0001.069
DIS40Double Bottom152.9150.0051.425
DIS40Falling Wedge434.0930.0001.276
DIS50Double Bottom153.2380.0031.421
DIS50Symmetric Triangle Up242.4350.0111.399
DIS50Triple Bottom182.1040.0251.010
DIS50Falling Wedge434.2090.0001.627
GE20Triple Bottom103.0540.0060.523
GE20Falling Wedge491.9290.0300.255
GE30Triple Bottom102.7860.0100.825
GE40Double Bottom192.2390.0190.601
GE40Triple Bottom102.0920.0310.878
GE40Falling Wedge492.2810.0130.283
GE50Double Bottom191.7450.0490.464
GE50Triple Bottom102.3880.0190.816
GE50Falling Wedge492.9690.0020.490
HD10Double Bottom182.2770.0180.571
HD10Symmetric Triangle Up392.2540.0150.320
HD20Double Bottom183.4970.0011.225
HD20Symmetric Triangle Up392.8040.0040.651
HD30Double Bottom182.6470.0081.336
HD30Symmetric Triangle Up392.1850.0170.743
HD30Falling Wedge462.0440.0230.687
HD40Double Bottom183.2840.0021.813
HD40Symmetric Triangle Up393.0450.0021.047
HD40Falling Wedge462.2840.0140.925
HD50Double Bottom183.0380.0041.858
HD50Symmetric Triangle Up393.3030.0011.376
HD50Falling Wedge462.9690.0021.306
HPQ30Triple Bottom162.4600.0130.431
HPQ40Triple Bottom162.2670.0190.464
IBM20Falling Wedge493.1700.0011.657
IBM30Falling Wedge493.0480.0021.871
IBM40Triple Bottom152.2290.0212.791
IBM40Falling Wedge493.0660.0022.193
IBM50Triple Bottom152.0860.0272.698
IBM50Falling Wedge492.2970.0132.570
INTC20Double Bottom222.6090.0080.764
INTC30Double Bottom223.0490.0030.912
INTC40Double Bottom222.5950.0081.166
INTC40Symmetric Triangle Up282.0620.0240.537
INTC50Symmetric Triangle Up282.0120.0270.635
INTC50Falling Wedge381.7120.0480.479
JNJ10Symmetric Triangle Up332.2490.0160.320
JNJ20Symmetric Triangle Up331.7870.0420.399
JNJ20Falling Wedge592.0940.0200.463
JNJ30Symmetric Triangle Up332.3030.0140.823
JNJ30Falling Wedge592.3850.0100.744
JNJ40Double Bottom201.9000.0360.856
JNJ40Symmetric Triangle Up333.7920.0001.311
JNJ40Falling Wedge592.5400.0070.764
JNJ50Double Bottom202.3660.0141.210
JNJ50Symmetric Triangle Up332.9740.0031.538
JNJ50Falling Wedge593.0590.0020.922
JPM20Symmetric Triangle Up352.2040.0170.692
JPM30Symmetric Triangle Up352.8990.0031.117
JPM40Symmetric Triangle Up352.3610.0121.079
JPM50Cup and Handle52.4850.0280.900
KO20Double Bottom181.9410.0340.285
KO20Falling Wedge402.2540.0150.378
KO30Falling Wedge402.1860.0170.389
KO40Double Bottom182.1090.0250.508
KO40Falling Wedge402.0850.0220.428
KO50Falling Wedge402.9530.0030.608
MCD10Double Bottom172.5680.0100.631
MCD20Double Bottom172.1610.0230.785
MCD30Double Bottom172.1010.0251.038
MCD30Symmetric Triangle Up292.8670.0040.939
MCD40Symmetric Triangle Up291.8080.0400.680
MCD40Falling Wedge512.5300.0070.845
MCD50Falling Wedge513.3240.0011.286
MMM20Falling Wedge352.3040.0141.105
MMM40Symmetric Triangle Up292.2620.0161.424
MMM40Falling Wedge352.6790.0061.844
MMM50Falling Wedge353.2350.0012.686
MRK10Falling Wedge471.7720.0410.198
MRK20Symmetric Triangle Up311.8000.0410.395
MRK20Falling Wedge472.2470.0150.539
MRK40Falling Wedge472.0220.0240.722
MRK50Symmetric Triangle Up312.7050.0050.772
MRK50Falling Wedge471.9250.0300.700
MSFT10Triple Bottom142.0650.0290.299
MSFT20Triple Bottom142.9750.0050.546
MSFT30Symmetric Triangle Up351.7170.0470.448
MSFT30Triple Bottom142.1150.0260.713
MSFT40Triple Bottom142.1650.0240.541
MSFT40Falling Wedge422.0490.0230.514
MSFT50Symmetric Triangle Up352.1660.0190.790
MSFT50Triple Bottom142.1960.0230.668
MSFT50Falling Wedge422.3290.0120.696
PFE10Triple Bottom112.2960.0210.361
PFE20Double Bottom202.7540.0060.414
PFE40Symmetric Triangle Up341.8530.0360.321
PFE50Double Bottom201.7950.0440.563
PFE50Symmetric Triangle Up341.7780.0420.409
PG10Symmetric Triangle Up283.0240.0030.316
PG20Symmetric Triangle Up283.4060.0010.549
PG20Falling Wedge522.9240.0030.747
PG30Double Bottom171.9170.0360.601
PG30Symmetric Triangle Up283.5000.0010.496
PG30Falling Wedge523.6650.0001.068
PG40Double Bottom173.5510.0011.100
PG40Symmetric Triangle Up282.4820.0100.705
PG40Falling Wedge523.3920.0011.107
PG50Double Bottom173.3820.0021.689
PG50Symmetric Triangle Up282.1000.0220.680
PG50Falling Wedge524.6870.0001.414
TRV40Double Bottom152.5310.0121.112
TRV40Falling Wedge491.7980.0390.781
TRV50Double Bottom152.7470.0071.656
TRV50Symmetric Triangle Up281.7350.0470.952
TRV50Falling Wedge492.0290.0241.006
T10Falling Wedge432.1020.0210.158
T20Falling Wedge432.2900.0130.259
T30Falling Wedge432.5050.0080.331
T40Triple Bottom131.7940.0480.436
T40Falling Wedge434.2910.0000.689
T50Double Bottom161.8450.0420.366
T50Triple Bottom131.9280.0380.525
T50Falling Wedge433.7900.0000.735
UTX10Falling Wedge401.7240.0460.339
UTX20Double Bottom201.8960.0360.873
UTX30Double Bottom202.3190.0161.274
UTX30Symmetric Triangle Up342.8640.0041.017
UTX30Falling Wedge401.6860.0500.920
UTX40Double Bottom203.0400.0031.523
UTX40Symmetric Triangle Up342.6140.0071.111
UTX40Falling Wedge401.9060.0321.214
UTX50Double Bottom203.6240.0012.149
UTX50Symmetric Triangle Up342.2360.0161.340
UTX50Falling Wedge402.5080.0081.644
VZ40Falling Wedge532.4860.0080.467
VZ50Falling Wedge532.5300.0070.610
WMT10Falling Wedge481.8120.0380.310
WMT40Double Bottom262.8890.0041.310
WMT40Falling Wedge481.8310.0370.877
WMT50Double Bottom262.5390.0091.288
WMT50Falling Wedge481.9110.0310.839
XOM10Falling Wedge422.8140.0040.575
XOM20Falling Wedge421.6930.0490.363
XOM40Double Bottom182.0050.0301.489
XOM40Symmetric Triangle Up252.0530.0251.041
XOM50Double Bottom182.6560.0082.210
XOM50Symmetric Triangle Up251.8420.0391.164
Table 7

Statistically Significant Patterns Observed During Bear Markets for Dow Components

BAC50Rising Wedge10-2.4250.018-3.166
BA30Rising Wedge8-2.2620.027-5.180
BA40Rising Wedge8-2.8670.010-5.926
BA50Rising Wedge8-3.1960.006-6.711
GE20Rising Wedge6-2.2040.035-0.906
GE50Down Price Channel7-2.7300.015-1.570
HPQ50Rising Wedge8-2.1170.034-1.166
INTC30Rising Wedge9-2.2470.026-1.541
INTC40Rising Wedge9-2.5170.016-2.191
JPM30Rising Wedge8-1.9280.045-1.879
JPM50Rising Wedge8-2.1170.034-2.381
KO40Rising Wedge6-2.3160.030-0.777
MRK20Rising Wedge8-1.9000.047-1.974
MRK40Rising Wedge8-2.2500.027-2.827
MRK50Rising Wedge8-2.1390.032-3.067
MSFT30Rising Wedge7-2.4800.021-1.513
MSFT40Rising Wedge7-3.9680.003-2.128
MSFT50Rising Wedge7-3.8050.003-2.117
PFE20Rising Wedge9-2.3190.023-0.582
PFE30Rising Wedge9-2.6280.014-0.967
PFE40Rising Wedge9-2.6980.012-1.008
PFE50Rising Wedge9-2.7950.010-1.052
TRV40Rising Wedge7-2.7470.014-2.831
TRV50Rising Wedge7-2.2840.028-1.913
T40Rising Wedge8-2.5850.016-1.678
T50Rising Wedge8-4.7240.001-2.360
UTX20Rising Wedge7-1.9140.049-2.831
UTX50Rising Wedge7-1.9140.049-3.962
XOM10Rising Wedge9-2.1750.029-0.990
XOM20Rising Wedge9-3.0460.007-1.578
XOM30Rising Wedge9-2.8930.009-1.901
XOM40Rising Wedge9-2.2230.027-2.021
XOM50Rising Wedge9-2.6310.014-3.120
Table 8

Statistically significant patterns observed during bull markets for indices

IWB10Cup and Handle77.7030.0001.131
IWB10Symmetric Triangle Up532.0450.0230.308
IWB20Cup and Handle73.8770.0031.873
IWB20Symmetric Triangle Up534.7200.0000.901
IWB20Falling Wedge622.5270.0070.649
IWB30Symmetric Triangle Up533.7430.0001.181
IWB30Falling Wedge622.1260.0190.865
IWB40Cup and Handle72.5230.0202.402
IWB40Symmetric Triangle Up533.0830.0021.264
IWB40Falling Wedge623.1650.0011.345
IWB50Symmetric Triangle Up533.6870.0001.590
IWB50Falling Wedge623.1460.0011.589
IWC10Double Bottom101.9220.0420.329
IWC20Cup and Handle52.6370.0231.413
IWC30Double Bottom102.6930.0111.583
IWD10Cup and Handle92.0180.0370.494
IWD10Triple Bottom72.6970.0150.674
IWD20Cup and Handle93.8410.0021.405
IWD20Symmetric Triangle Up573.0210.0020.518
IWD20Falling Wedge692.9060.0020.937
IWD30Cup and Handle96.6630.0002.035
IWD30Symmetric Triangle Up573.7790.0000.898
IWD30Falling Wedge692.1560.0170.833
IWD40Cup and Handle97.4490.0002.682
IWD40Symmetric Triangle Up573.9610.0001.042
IWD40Falling Wedge692.0440.0221.020
IWD50Cup and Handle98.8120.0003.456
IWD50Symmetric Triangle Up573.4780.0001.199
IWD50Triple Bottom74.3160.0021.602
IWD50Falling Wedge693.0460.0021.335
IWF10Falling Wedge501.7450.0440.207
IWF20Falling Wedge501.7040.0470.429
IWF30Triple Bottom222.0350.0270.664
IWF40Triple Bottom223.2950.0021.255
IWF50Triple Bottom215.8700.0001.973
IWM20Falling Wedge772.0540.0220.725
IWM30Double Bottom271.7150.0491.271
IWM40Double Bottom272.5350.0091.397
IWM40Symmetric Triangle Up462.2380.0150.983
IWM40Falling Wedge763.9920.0001.813
IWM50Falling Wedge763.4730.0001.729
IWN10Cup and Handle112.0110.0351.092
IWN10Triple Bottom183.3790.0020.620
IWN20Cup and Handle114.9930.0002.220
IWN20Symmetric Triangle Up361.6930.0500.593
IWN20Triple Bottom182.8160.0060.874
IWN30Cup and Handle112.8930.0072.475
IWN30Symmetric Triangle Up362.7130.0051.157
IWN30Triple Bottom182.9860.0041.482
IWN40Cup and Handle112.3960.0182.907
IWN40Symmetric Triangle Up362.3200.0131.094
IWN40Triple Bottom183.3250.0021.822
IWN50Cup and Handle113.0310.0063.238
IWN50Symmetric Triangle Up362.2410.0161.105
IWN50Triple Bottom183.6740.0012.093
IWO20Falling Wedge743.2140.0011.378
IWO30Symmetric Triangle Up462.6160.0061.384
IWO30Falling Wedge741.9500.0271.143
IWO40Cup and Handle53.2640.0114.053
IWO40Symmetric Triangle Up463.8910.0002.191
IWO40Falling Wedge733.1010.0011.956
IWO50Double Bottom141.7660.0502.461
IWO50Cup and Handle52.6710.0223.586
IWO50Symmetric Triangle Up463.3330.0012.279
IWO50Falling Wedge733.7730.0002.235
IWR10Cup and Handle142.2380.0211.073
IWR20Cup and Handle143.5710.0022.179
IWR20Symmetric Triangle Up543.9460.0000.908
IWR30Cup and Handle142.9300.0051.558
IWR30Symmetric Triangle Up544.6010.0001.838
IWR40Cup and Handle142.3300.0182.568
IWR40Symmetric Triangle Up547.0530.0002.673
IWR40Falling Wedge611.7250.0451.502
IWR50Cup and Handle142.9210.0062.691
IWR50Symmetric Triangle Up545.7410.0002.564
SPY10Symmetric Triangle Up362.1430.0190.598
SPY10Triple Bottom132.4820.0140.532
SPY20Cup and Handle52.3900.0313.071
SPY20Symmetric Triangle Up366.3770.0001.704
SPY20Triple Bottom132.1290.0260.961
SPY20Falling Wedge392.3280.0130.982
SPY30Symmetric Triangle Up363.5640.0011.909
SPY30Falling Wedge391.7830.0411.117
SPY40Symmetric Triangle Up364.9850.0002.933
SPY40Triple Bottom131.8740.0421.752
SPY40Falling Wedge392.1290.0201.670
SPY50Symmetric Triangle Up364.6760.0003.078
SPY50Falling Wedge393.1670.0012.488
XLG10Symmetric Triangle Up312.9370.0030.760
XLG20Cup and Handle72.3130.0271.171
XLG20Symmetric Triangle Up313.0730.0021.220
XLG20Triple Bottom222.1150.0230.640
XLG30Symmetric Triangle Up314.8000.0002.376
XLG30Triple Bottom222.7110.0060.996
XLG40Ascending triangle54.5870.0032.309
XLG40Symmetric Triangle Up313.4170.0012.086
XLG50Ascending triangle53.1570.0132.204
XLG50Symmetric Triangle Up313.4030.0012.294
XLG50Triple Bottom221.8680.0381.337
XLG50Falling Wedge502.0100.0251.528
Table 9

Statistically significant patterns observed during bear markets for indices

IWB40Rising Wedge9-2.0300.036-3.240
IWC30Double Bottom72.3890.0241.414
IWD10Double Bottom43.4700.0130.941
IWD40Rising Wedge10-2.3760.019-3.500
IWD50Rising Wedge10-2.2950.022-3.835
IWF40Down Price Channel8-1.8840.048-2.679
IWF50Down Price Channel8-1.9620.043-3.514
IWM30Rising Wedge12-1.8620.044-2.476
IWM40Rising Wedge12-1.9890.035-3.798
IWM50Rising Wedge12-2.4140.016-4.077
IWN40Rising Wedge8-2.1460.032-2.129
IWN50Rising Wedge8-2.1950.030-2.612
IWR20Down Price Channel5-2.3850.031-2.503
IWR20Rising Wedge5-2.3290.034-3.021
XLG10Symmetric Triangle Up152.0430.0300.760
XLG20Symmetric Triangle Up152.1370.0251.220
XLG30Symmetric Triangle Up153.3390.0022.376
XLG30Triple Bottom111.8360.0470.945
XLG40Symmetric Triangle Up152.3770.0162.086
XLG50Symmetric Triangle Up152.3670.0162.294

It can be observed from the tables that only a few technical patterns from the set of fourteen patterns considered in this work produce statistically significant profits for a specific ticker. Falling wedge is the most common pattern occurring in the price charts for the Dow components that produces profits in line with the technical analyst’s predictions. It is followed by triple bottom and symmetric triangle up patterns, each of which produces statistically significant profits for 10 tickers. Cup-and-handle pattern produces statistically significant profits for 9 tickers. It can be observed that no pattern produces statistically significant profits for more than half the tickers considered.

More technical patterns produce statistically significant results during bull markets – this is in part accounted by the longer duration of bull markets. During bear markets, bearish technical patterns are observed to produce statistically and economically significant profits for Dow Jones components. For indices, Table 9 illustrates that both bullish and bearish patterns produce statistically significant profits. Cup-and-handle pattern is observed to produce statistically significant profits more frequently for indices than for assets, as can be seen by comparing the occurrences of that pattern between Tables 8 and 6. Also, most patterns require a holding period greater than 20 trading days to produce statistically significant profits.

Previous works (Allen and Karjalainen 1999; Lo et al. 2004) have shown transaction costs to be an important factor in the profitability of a trading strategy, particularly the ones with high turnover. Transaction costs include trading commission, bid-ask spread and market-impact costs (Lo et al. 2004). A simple model of transaction costs is introduced in order study how many patterns remain statistically and economically significant predictors of future price movements. Allen and Karjalainen (1999) model transaction costs as 0.1%, 0.25% or 0.5% of the notional. Here, transaction cost is modeled as 0.5% of the trade notional.

Transaction costs reduce the profits earned (or increase the losses incurred) by a trading strategy. By virtue of knowing the bullish or bearish nature of a technical strategy, a one-sided T-test is used to assess the statistical and economic significance of a strategy. For bullish patterns, the transaction costs are subtracted from profit (or loss); for bearish patterns, they are added to loss (or profit). If a bullish pattern yields a loss, transaction costs will increase the loss; if a bearish pattern produces a profit, transaction costs will increase the profit. In both of these cases, the pattern will contribute to a rejection by the one-sided T-test. When transaction costs are accounted for in this manner, and a pattern produces profits that are opposite to those predicted by the bullish or bearish nature of the pattern, one cannot conclude that taking an opposite position in the pattern may open the possibility of profitable trading using the pattern. This is because transaction costs always reduce the profits.

As expected, Tables 10, 11, 12 and 13 show that fewer patterns cross the threshold of 95% significance as predictors of future price moves after transaction costs are accounted for. Falling wedge pattern is a more reliable predictor of future price moves for Dow Jones components during bull markets as compared with other patterns, as is rising wedge pattern during bear markets. Cup-and-handle pattern is a more reliable pattern for indices considered in this work than it is for Dow Jones components.

Table 10

Inclusive of transaction costs (0.5%), statistically significant patterns observed during bull markets for dow components

AXP40Cup and Handle52.0840.0461.238
AXP50Double Bottom132.2100.0231.383
AXP50Falling Wedge521.7590.0420.928
BA40Falling Wedge502.0510.0231.002
BA50Falling Wedge503.0070.0021.865
CAT20Falling Wedge351.9380.0301.018
CAT30Falling Wedge351.8820.0341.251
CAT50Triple Bottom102.3510.0201.861
CAT50Falling Wedge353.0240.0022.677
DD30Falling Wedge461.7700.0420.515
DD40Falling Wedge463.4210.0011.066
DD50Falling Wedge463.0290.0021.039
DIS30Falling Wedge432.9310.0030.779
DIS40Double Bottom152.4640.0131.154
DIS40Falling Wedge433.2930.0010.985
DIS50Double Bottom152.7430.0081.151
DIS50Symmetric Triangle Up241.9330.0331.082
DIS50Falling Wedge433.6020.0001.334
GE20Triple Bottom102.0000.0370.350
GE30Triple Bottom102.1960.0260.651
GE50Triple Bottom101.8810.0450.642
GE50Falling Wedge492.1270.0190.351
HD20Double Bottom182.8540.0050.947
HD20Symmetric Triangle Up391.8090.0390.408
HD30Double Bottom182.1640.0221.058
HD40Double Bottom182.8860.0051.532
HD40Symmetric Triangle Up392.4070.0100.801
HD50Double Bottom182.6480.0081.577
HD50Symmetric Triangle Up392.7940.0041.129
HD50Falling Wedge462.3590.0111.007
HPQ30Triple Bottom161.8810.0390.324
HPQ40Triple Bottom161.7710.0480.356
IBM30Falling Wedge491.6870.0491.026
IBM40Falling Wedge491.8950.0321.346
INTC20Double Bottom222.2090.0190.627
INTC30Double Bottom222.6500.0070.774
INTC40Double Bottom222.3260.0151.026
JNJ40Symmetric Triangle Up332.8200.0040.914
JNJ50Symmetric Triangle Up332.2990.0141.140
JNJ50Falling Wedge591.8320.0360.552
JPM30Symmetric Triangle Up352.2840.0140.875
JPM40Symmetric Triangle Up351.8390.0370.838
JPM50Cup and Handle52.2320.0380.776
KO50Falling Wedge402.0340.0240.422
MCD30Symmetric Triangle Up291.8580.0370.596
MCD50Falling Wedge512.4400.0090.930
MMM40Falling Wedge352.0370.0251.336
MMM50Falling Wedge352.7360.0052.173
MRK50Symmetric Triangle Up311.7370.0460.495
MSFT20Triple Bottom142.6240.0100.424
MSFT30Triple Bottom141.8360.0440.591
MSFT40Triple Bottom141.7820.0480.419
MSFT50Symmetric Triangle Up351.6930.0500.614
MSFT50Triple Bottom141.8840.0400.546
MSFT50Falling Wedge421.7780.0410.524
PFE20Double Bottom201.9400.0330.285
PG30Falling Wedge522.3850.0100.673
PG40Double Bottom172.8630.0050.805
PG40Falling Wedge522.2190.0150.711
PG50Double Bottom173.0070.0041.391
PG50Falling Wedge523.4810.0011.017
TRV40Double Bottom151.8980.0390.779
TRV50Double Bottom152.3750.0161.321
T40Falling Wedge433.4100.0010.534
T50Falling Wedge433.0670.0020.579
UTX30Symmetric Triangle Up341.7810.0420.616
UTX40Double Bottom202.3840.0141.112
UTX40Symmetric Triangle Up341.7280.0460.709
UTX50Double Bottom203.0830.0031.734
UTX50Falling Wedge401.9350.0301.249
WMT40Double Bottom262.2160.0180.987
WMT50Double Bottom261.9520.0310.965
XOM50Double Bottom182.2020.0201.766
Table 11

Inclusive of transaction costs (0.5%), statistically significant patterns observed during bear markets for dow components

BAC50Rising Wedge10-2.2260.025-2.918
BA30Rising Wedge8-2.1220.033-4.789
BA40Rising Wedge8-2.7330.013-5.539
BA50Rising Wedge8-3.0430.008-6.328
GE50Down Price Channnel7-2.4340.023-1.374
HPQ50Rising Wedge8-1.9040.047-1.030
INTC30Rising Wedge9-2.0490.035-1.399
INTC40Rising Wedge9-2.3730.021-2.052
JPM50Rising Wedge8-1.8610.050-2.091
MRK40Rising Wedge8-2.0400.038-2.546
MRK50Rising Wedge8-1.9570.043-2.788
MSFT30Rising Wedge7-2.1610.034-1.310
MSFT40Rising Wedge7-3.6530.004-1.927
MSFT50Rising Wedge7-3.4980.005-1.917
PFE30Rising Wedge9-2.1570.030-0.794
PFE40Rising Wedge9-2.2620.025-0.835
PFE50Rising Wedge9-2.3620.021-0.880
TRV40Rising Wedge7-2.4060.024-2.493
T40Rising Wedge8-2.3330.024-1.503
T50Rising Wedge8-4.4180.001-2.188
XOM20Rising Wedge9-2.2940.024-1.130
XOM30Rising Wedge9-2.2270.026-1.454
XOM50Rising Wedge9-2.3310.022-2.679
Table 12

Inclusive of transaction costs (0.5%), statistically significant patterns observed during bull markets for indices

IWB10Cup and Handle72.9020.0110.441
IWB20Cup and Handle72.4190.0231.180
IWB30Symmetric Triangle Up531.6980.0480.542
IWB50Symmetric Triangle Up532.2260.0150.949
IWB50Falling Wedge621.7420.0430.879
IWC30Double Bottom101.8770.0451.090
IWD20Cup and Handle92.1070.0320.756
IWD30Cup and Handle94.5540.0011.383
IWD40Cup and Handle96.2390.0002.026
IWD50Cup and Handle97.2910.0002.797
IWD50Triple Bottom73.0150.0101.066
IWD50Falling Wedge691.6770.0490.732
IWF40Triple Bottom221.7360.0480.693
IWF50Triple Bottom214.3330.0001.429
IWM40Falling Wedge762.4840.0081.116
IWM50Falling Wedge762.0920.0201.033
IWN20Cup and Handle113.5540.0021.650
IWN30Cup and Handle112.1520.0271.904
IWN30Triple Bottom181.8580.0400.923
IWN40Cup and Handle111.8930.0432.334
IWN40Triple Bottom182.3030.0171.261
IWN50Cup and Handle112.4490.0162.664
IWN50Triple Bottom182.6860.0081.531
IWO40Cup and Handle52.5580.0253.240
IWO40Symmetric Triangle Up462.4670.0091.396
IWO40Falling Wedge731.9010.0311.200
IWO50Cup and Handle52.1290.0432.776
IWO50Symmetric Triangle Up462.1500.0181.484
IWO50Falling Wedge732.5000.0071.477
IWR30Symmetric Triangle Up542.2030.0160.901
IWR40Symmetric Triangle Up544.5230.0001.732
IWR50Symmetric Triangle Up543.6420.0001.624
SPY20Symmetric Triangle Up362.7070.0050.743
SPY30Symmetric Triangle Up361.7510.0440.947
SPY40Symmetric Triangle Up363.3930.0011.966
SPY50Symmetric Triangle Up363.2620.0012.110
SPY50Falling Wedge391.9910.0271.538
XLG30Symmetric Triangle Up312.9010.0031.463
XLG40Ascending triangle52.6080.0241.293
XLG40Symmetric Triangle Up311.8960.0341.175
XLG50Symmetric Triangle Up312.0250.0261.382
Table 13

Inclusive of transaction costs (0.5%), statistically significant patterns observed during bear markets for indices

IWD40Rising Wedge10-2.0810.032-3.057
IWD50Rising Wedge10-2.0360.035-3.394
IWM50Rising Wedge12-2.1350.027-3.601
XLG30Symmetric Triangle Up152.0180.0311.463

Adaptive Market Hypothesis proposed by Lo (2004) helps understand the results observed here: it is possible that certain technical patterns are more aggressively traded by market participants leading to a greater degree of predictability for those patterns. No technical pattern is consistently profitable across all securities examined in this work, this could point to disappearing opportunities for earning easy profits from following one pattern due to increasingcompetition in the niche. Neely et al. (2009) report similar conclusions in foreign-exchange markets where they observe that filter rule based moving-average strategies have largely lost their profitability by 1990. Todea et al. (2009) report that profitability of a moving-average based strategy in six Asian markets from 1997 to 2008 is episodic. Hsu et al. (2010) report that technical patterns (moving averages, filter rules) loose much of their predictive power as market matures.


This work presents an empirical assessment of accuracy of a set of technical patterns as future price change predictors. It considers a set of fourteen patterns for the Dow Jones Index components and a set of ten indices, looking at closing prices for the last 25 years for Dow Jones components (and S&P 500 index) and 15 years for remaining indices. Technical pattern occurrences ranging from 20 trading days (one month) to 40 trading days (2 months) are analyzed. Period under consideration is partitioned into bear or bull markets depending upon the market (S&P 500) trend during the period in order to examine the possibility that certain patterns are more reliable predictors in a particular market environment. A locally-weighted scatterplot (LOESS) based rule is employed to validate a pattern once it has been identified by the neural network. Holding periods ranging from 10 to 50 trading days after a pattern is observed and validated are used. Data analyzed in the study does not support the proposition of sustained profitability following technical trading rules for a cross section of stocks comprising the Dow Jones Index and the set of indices. There are a few instances where the rules generate statistically and economically significant profits that are in accord with the predictions of the rule. However these comprise a clear minority, being outnumbered by the cases where such rules do not generate economically or statistically significant profits. Some patterns, like cup-and-handle pattern, are more reliable predictors of future price moves for indices than they are for Dow Jones components. Bullish patterns are more reliable predictors in bullish market environments, with falling wedge being the most frequently observed pattern. Likewise, bearish patterns (like rising wedge) are more reliable predictors in bearish market environments. This observation suggests that a portion of a technical pattern’s predictability can be attributed to the market environment. Transaction cost of 0.5% reduces the number of statistically significant patterns observed, but the foregoing conclusions stand. The results support Adaptive Market Hypothesis (Lo, 2004): some technical patterns are more effective predictors of future price movements in certain market environments and for certain assets.

Role played by volume as a confirming signal for pattern identification has not been examined in this work and is a topic for future study. Technical analysts employ additional tests to validate classification of a technical pattern; including those tests will enhance the recognition algorithm. The algorithm outlined is able to identify the patterns, as confirmed by the plots of identified patterns; but any claim to accuracy must be qualified with the details of pattern definition employed. Technical analysis literature abounds in elaborate identification rules for the patterns – like confirming signals – and rules for when to unwind the trade. Adding these elaborate definitions to the algorithm may yield cases where such rules generate reliably significant profits. This study outlines an algorithm that can be effectively used in such an effort.



Allen F. , Karjalainen R. , (1999) . Using genetic algorithms to find technical trading rules, Journal of Financial Economics 51: , 245–271.


Beymer D. , Poggio T. , (1996) . Image representations for visual learning, Science 272: (5270), 1905–1909.


Bollerslev T. , (1987) . A conditionally heteroskedastic time series model for speculative prices and rates of return, Review of Economics and Statistics 69: (3), 542–547.


Brock W.A. , Lakonishok J. , LeBaron B. , (1992) . Simple technical trading rules and the stochastic properties of stock returns, Journal of Finance 47: (5), 1731–1764.


Bulkowski T.N. , (2005) , Encyclopedia of Chart Patterns, 2nd Ed. New York: John Wiley and Sons.


Chavarnakul T. , Enke D. , (2008) . Intelligent technical analysis based equivolume charting for stock trading using neural networks, Expert Systems with Applications 34: (2), 1004–1017.


Chenoweth T. , Lee S.S. , Obradovic Z. , (1996) . Embedding technical analysis into neural network based trading systems, Applied Artificial Intelligence Journal 10: (6), 523–541.


Enke D. , Thawornwong S. , (2005) . The use of data mining and neural networks for forecasting stock market returns, Expert Systems with Applications 29: (4), 927–940.


Fritsch S. , Guenther F. , Suling M. , (2012) . Neuralnet: Training of Neural Networks. R package version 1.32,, 2012.


Hong W.C. , Dong Y. , Chen L.Y. , Wei S.Y. , (2010) . SVR with hybrid chaotic genetic algorithms for tourism demand forecasting, Applied Soft Computing, 11: (2), 1881–1890.


Hsu P.H. , Hsu Y.C. , Kuan C.M. , (2010) . Testing the predictive ability of technical analysis using a new stepwise test without data snooping bias, Journal of Empirical Finance 17: (3), 471–484.


Huang C.F. , (2012) . A hybrid stock selection model using genetic algorithms and support vector regression, Applied Soft Computing 12: (2), 807–818.


Investopedia, (2016) . Head And Shoulders Pattern, viewed 10 January 2016,


Kazema A. , Sharifia E. , Hussain F.K. , Saberi M. , Hussain O.K. , (2013) . Support vector regression with chaos-based firey algorithm for stock market price forecasting, Applied Soft Computing 13: (2), 947–958.


Leigh W. , Hightower R. , Modani N. , (2005) . Forecasting New York the stock exchange composite index with past price and interest rate on condition of volume spike, Expert Systems with Applications 28: (1), 1–8.


Levich R. , Thomas L. , (1993) . The significance of technical trading-rule profits in the foreign exchange market: A bootstrap approach, Journal of International Money and Finance 12: (5), 451–474.


Li S.T. , Kuo S.C. , (2008) . Knowledge discovery in financial investment for forecasting and trading strategy through wavelet-based SOM networks, Expert Systems with Applications 34: (2), 935–951.


Lo A.W. , Mamaysky H. , Wang J. , (2000) . Foundations of technical analysis: Computational algorithms, statistical inference, and empirical implementation, Journal of Finance 55: (4), 1705–1765.


Lo A.W. , (2004) . The adaptive market hypothesis: Market efficiency from an evolutionary perspective, Journal of Portfolio Management, 30: (5), 15–29.


Lo A.W. , Mamaysky H. , Wang J. , (2004) . Asset prices and trading volume under fixed transactions costs, Journal of Political Economy 112: (5), 1054–1090.


Logue D. , Sweeney R. , Willett T. , (1978) . The speculative behaviour of foreign exchange rates during the current float, Journal of Business Research 6: (2), 159–174.


Neely C.J. , Weller P.A. , Dittmar R. , (1997) . Is technical analysis in the foreign exchange market Profitable? A genetic programming approach, Journal of Financial and Quantitative Analysis 32: (4), 405–426.


Neely C.J. , Weller P.A. , Ulrich J.M. , (2009) . The adaptive markets hypothesis: Evidence from the foreign exchange market, Journal of Financial and Quantitative Analysis 44: (2), 467–488.


Olson D. , (2004) . Have trading rule profits in the currency markets declined over time? Journal of Banking and Finance 28: (1), 85–105.


Osler C.L. , Chang P.H.K. , (1995) . Head and shoulders: Not just a flaky pattern, Staff Report No. 4, Federal Reserve Bank of New York, pp. 1–65.


Savin G. , Weller P.A. , Zvingelis J. , (2007) . The predictive power of “head-and-shoulders” price patterns in the U.S. stock market, Journal of Financial Econometrics 5: (2), 243–265.


Specht D.F. , (1990) . Probabilistic neural networks, Neural Networks 3: (1), 109–118.


Stephan S. , (2006) . The interaction between technical currency trading and exchange rate fluctuations, Finance Research Letters 3: (3), 212–233.


Stephan S. , (2008) . Components of the profitability of technical currency trading, Applied Financial Economics 18: (11), 917–930.


Stephan S. , (2009) . Aggregate Trading Behour of Technical Models and the Yen/Dollar Exchange Rate 1976-2007, WIFO Working Paper No. 324. Available at SSRN:


Sweeney R.J. , (1986) . Beating the foreign exchange market, Journal of Finance 41: (1), 163–182.


Todea A. , Ulici M. , Silaghi S. , (2009) . Adaptive markets hypothesis: Evidence from Asia-Pacific financial markets, The Review of Finance and Banking 1: (1), 7–13.


Wang F.K. , Du T. , (2014) . Implementing support vector regression with differential evolution to forecast motherboard shipments, Expert Systems with Applications 41: (8), 3850–3855.


Wang X. , Pardalos P.M. , (2014) . A survey of support vector machines with uncertainties, Annals of Data Science 1: (3), 293–309.


Wikipedia, 2016. Head and shoulders (chart pattern), viewed 10 January 2016, (chart_pattern).