As of 12/05/2024
  Indus: 44,766 -248.33 -0.6%  
  Trans: 16,976 -190.93 -1.1%  
  Utils: 1,047 +2.22 +0.2%  
  Nasdaq: 19,700 -34.86 -0.2%  
  S&P 500: 6,075 -11.38 -0.2%  
YTD
 +18.8%  
 +6.8%  
 +18.8%  
 +31.2%  
 +27.4%  
  Targets    Overview: 12/02/2024  
  Down arrow44,000 or 46,000 by 12/15/2024
  Down arrow17,025 or 18,000 by 12/15/2024
  Down arrow1,025 or 1,100 by 12/15/2024
  Up arrow20,000 or 18,500 by 12/15/2024
  Up arrow6,200 or 5,900 by 12/15/2024
As of 12/05/2024
  Indus: 44,766 -248.33 -0.6%  
  Trans: 16,976 -190.93 -1.1%  
  Utils: 1,047 +2.22 +0.2%  
  Nasdaq: 19,700 -34.86 -0.2%  
  S&P 500: 6,075 -11.38 -0.2%  
YTD
 +18.8%  
 +6.8%  
 +18.8%  
 +31.2%  
 +27.4%  
  Targets    Overview: 12/02/2024  
  Down arrow44,000 or 46,000 by 12/15/2024
  Down arrow17,025 or 18,000 by 12/15/2024
  Down arrow1,025 or 1,100 by 12/15/2024
  Up arrow20,000 or 18,500 by 12/15/2024
  Up arrow6,200 or 5,900 by 12/15/2024

Bulkowski on Pattern Pairs: Inverted Roofs

Initial release: 12/15/2021.

The idea behind pattern pairs is to pick a chart pattern type (like broadening bottoms with upward breakouts) to buy and another to sell (like double tops). You buy the upward breakout from the broadening bottom, hold for a few years, and sell when a double top appears and breaks out downward. Along the way, you give price a chance to rise far enough to overcome those trades which are stopped out for a loss. This is a trend-following strategy.

Trading Inverted Roofs: Summary

Picture of the pattern pairs.

The figure illustrates the idea for trading pattern pairs, where price is the red line and the boxes are chart patterns. This articles assumes you buy an upward breakout from either an inverted roof or a busted one (price breaks out downward, drops no more than 10%, reverses, and closes above the top of the pattern. Buy as price rises above the top of the pattern).

On the sale side, you can sell the first bearish chart pattern which comes along or wait for your favorite bearish chart pattern to appear and sell then.

Here's a list of the top five performing sell signals, based on annualized gain (annualized because the hold time is often years, in parenthesis).

Sell a...

The following list shows the expected performance of chart pattern pairs, ranked by their expectancy. Expectancy is a way of gauging winning and losing trades and how much money you might make trading a pattern pair. I put the expected profit per trade, per share, in parenthesis.

To improve performance, try these tips.

Top of page

Trading Inverted Roofs: Entry and Exit Conditions

The databases I built over several decades doesn't identify every chart pattern. There may be plenty of double tops over the years, for example, that I didn't catalog on the way to the one I did catalog. So buying an upward breakout from a inverted roof and selling at the double top I cataloged would be different than choosing to sell a different double top. However, the following analysis does give a real-world flavor for how well you might do trading chart patterns if you follow the pattern pair strategy.

Here's what I used in my analysis.

I used the following 43 chart patterns in the analysis, but some only applied if they were busted.

Top of page

Trading Inverted Roofs: Stops

I used a stop loss order set a penny below the bottom of the chart pattern. Price on the way down may have gapped below the stop price (for the sale price), so I used the lower of the stop price or the opening price on the day of sale).

For trailing stops, I removed the stop loss order and used a trailing stop set at 10%, 15%, 20%, or 25% below a peak, never lowering the stop value, but raising it if a higher peak came along during the trade.

In Table 1, I calculated the percentage net gain (the average of gains and losses) when using various trailing stop loss amounts (10%, 15%, 20%, and 25%) for all tested chart patterns according to the busted/non-busted buy/sell configuration. In parenthesis is the size of the average loss so I could detail how losses change with various stop loss orders.

For example, if I tested non-busted inverted roofs and sold various non-busted patterns (ascending triangles, broadening tops, head-and-shoulders tops, and so on), I made an average of 13% ("Stop Loss Only" column) after having a stop loss order in place. Losses averaged 10%. Replacing the stop loss with a 10% trailing stop cut the gain to 4% but also trimmed the average loss to 6%. Using a 25% trailing stop allowed me to keep more money, 17%, but losses climbed to 13%. If I didn't use any type of stop, the gain averaged 99% with losses averaging 31%.

The results show that trades which do not use a stop make the most money but losses are huge. For columns with stops, busted patterns outperformed non-busted ones.

Table 1: Various Trailing Stop Settings: Net Profit and (Average Loss)
Data 10%  15%  20%  25%  Stop Loss 
Only
 No Stop
Non-busted buys, non-busted sales 4% (-6%)  7% (-9%)  14% (-12%)  17% (-13%)  13% (-10%)  99% (-31%) 
Busted buys, non-busted sales 6% (-6%)  10% (-8%)  21% (-12%)  22% (-11%)  29% (-9%)  68% (-34%) 
Non-busted buys, busted sales 5% (-6%)  8% (-9%)  16% (-12%)  16% (-12%)  10% (-9%)  79% (-26%) 
Busted buys, busted sales 7% (-6%)  12% (-8%)  23% (-12%)  23% (-11%)  32% (-8%)  68% (-28%) 

Top of page

Trading Inverted Roofs: Busted Patterns

Table 2 shows what I found when comparing the performance of non-busted patterns (both buy and sell) with busted and non-busted chart patterns. In 22 or 31 contests (up to 31 different chart pattern types, depending on which apply), I compared the three combinations of busted and non-busted buy and sell signals to non-busted buy and sell signals. The table below shows the percentage of time the busted combination beat the non-busted combination in the contests.

For example, I found that busted patterns won up to 81% of the time or 25 of 31 contests when trading (buying and selling) using a busted buy but non-busted sale pattern (compared to non-busted for both).

According to the contest results, trading busted chart patterns can improve results.

Table 2: Busted or Non-Busted Contest Winners
 Sell Non-Busted PatternSell Busted Pattern
Buy non-busted patternN/A (benchmark)50%
Buy busted pattern81%68%

Top of page

Trading Inverted Roofs: Non-busted Buy, Non-Busted Sale

Picture of a busted pattern pair.

Table 3 shows statistics I collected for inverted roofs using the trading rules described above and shown in the figure. A stop loss order was used and priced a penny below the bottom of the chart pattern (after buying).

For example, if you were to buy the upward breakout from a inverted roof chart pattern and hold it until you encountered a broadening bottom (the first chart pattern listed in the table), but one with a downward breakout, you'd net an average of 11% on the 49 (6 winners, 43 losers) trades. That's an average of 158% on your winners, 10% average loss on your losers. You'd find that only 12% of the trades made money but you'd gain an average of 7% per year (ranking 35th where 1 is best). If you removed the stop loss order and just held on until the broadening bottom with a downward breakout appeared, you'd make an average of 78% per trade.

The expectancy averages a loss of $5.64 per share per trade which ranks 58th where 1 is the best value. It suggests you'll have a hard time making money by trading this pair.

Notes: The rank is based on the net gain for all four performance tables (tables 3 to 6) shown below. Trades with sample counts below 30 are not ranked.

Table 3: Statistics for Inverted Roofs
Sell PatternAverage
Win
Average
Loss
NetAnnualized
Net
RankNo Stop
Net
Win/Loss
Samples
Win
Loss
Average
Expectancy
Expectancy
Rank
Broadening bottom158%-10%11%7%3578%6/4312%-$5.6458
Broadening top38%-10%-3%-3%5581%15/9214%-$1.1951
Broadening formation, right-angled and ascending79%-10%7%5%4177%9/3919%-$0.7050
Broadening formation, right-angled and descending52%-10%8%7%3491%10/2429%$3.4218
Broadening wedge, ascending49%-9%3%3%46117%8/2822%-$0.7049
Broadening wedge, descending119%-9%17%65%5/2020%
Bump-and-run reversal top152%-12%28%24%478%32/9825%$0.1345
Diamond bottom117%-9%21%107%4/1324%
Diamond top207%-9%42%34%1152%12/3924%$4.9910
Adam & Adam double top184%-10%29%15%9174%61/24920%$8.355
Adam & Eve double top250%-10%46%24%3142%26/9621%$12.431
Eve & Adam double top190%-10%17%10%25150%21/13713%$4.6613
Eve & Eve double top129%-9%19%11%22100%31/12620%$1.7733
Falling wedge37%-10%-5%3%3/2511%
Head-and-shoulders top119%-9%18%11%17107%110/40221%$1.5736
Sell PatternAverage
Win
Average
Loss
NetAnnualized
Net
RankNo Stop
Net
Win/Loss
Samples
Win
Loss
Average
Expectancy
Expectancy
Rank
Head-and-shoulders, complex top194%-9%36%22%573%13/4522%$2.3130
Rectangle top113%-9%8%8%2879%11/6814%-$0.2146
Rising wedge91%-9%10%6%3790%28/12019%$1.2337
Rounding top101%-9%11%6%3878%13/5619%$0.2343
Ascending scallop39%-13%0%56%7/2125%
Descending scallop58%-12%-3%-4%5682%28/19413%-$1.7354
Scallop, inverted and ascending101%-10%8%91%4/2116%
Scallop, descending and inverted111%-10%2%1%5252%16/14610%-$1.8855
Triangle, ascending85%-9%8%5%4263%14/6418%$0.8738
Triangle, descending63%-12%2%2%4830%10/4319%-$2.7856
Triangle, symmetrical106%-9%10%7%3361%33/16317%$2.3529
Triple top128%-9%16%11%21104%71/30819%$3.1822
Rectangle bottom57%-12%8%4%4431%14/3429%$4.7911
3 falling peaks67%-11%1%1%5397%68/38215%-$0.6048
Roof43%-11%5%105%8/2029%
Roof, inverted55%-10%-3%-2%54150%4/3211%-$1.5852
Sell PatternAverage
Win
Average
Loss
NetAnnualized
Net
RankNo Stop
Net
Win/Loss
Samples
Win
Loss
Average
Expectancy
Expectancy
Rank

Top of page

Trading Inverted Roofs: Busted Buy, Non-Busted Sale

Picture of a busted pattern pair.

The figure shows the setup for this scenario. When price busts the bearish chart pattern (busts a downward breakout from a inverted roof in a bull market), buy. Sell after a downward breakout from the target chart pattern.

Table 4 shows the performance of busted inverted roofs for the entry and sales after downward breakouts from various bearish chart patterns. A stop loss order was used and priced a penny below the bottom of the pattern (after buying).

A busted inverted roof has a downward breakout but price drops no more than 10% before reversing and moving above the top of the pattern. Buy when price moves at least a penny above the top of the busted pattern. Sell after price drops at least a penny below the target chart pattern.

For example, buying a inverted roof with a busted downward breakout in a bull market (the entry price is really the higher of a penny above the top of the pattern or the opening price) and selling after the downward breakout from a broadening top shows winners averaging gains of 136%. Losses average 8%, for a net of 25%. Only 43 trades occurred with a win/loss ratio of 23%. This scenario ranks the annualized net gain as 14th among the four tables. If you traded this as a buy-and-hold position, meaning no stops were used, the net gain climbed to 49%. Expectancy was a gain of $2.99 per share, ranking 25th where 1 is best.

Trades with sample counts below 30 are not ranked.

Table 4: Statistics for Busted Buys, Normal Sales
Sell PatternAverage
Win
Average
Loss
NetAnnualized
Net
RankNo Stop
Net
Win/Loss
Samples
Win
Loss
Average
Expectancy
Expectancy
Rank
Broadening bottom206%-10%30%76%5/2219%
Broadening top136%-8%25%12%1449%10/3323%$2.9925
Broadening formation, right-angled and ascending237%-9%77%105%7/1335%
Broadening formation, right-angled and descending106%-12%15%48%4/1422%
Broadening wedge, ascending101%-12%20%40%4/1029%
Broadening wedge, descending212%-5%43%53%2/722%
Bump-and-run reversal top162%-9%66%30%290%15/1944%$8.594
Diamond bottom284%-10%49%181%1/420%
Diamond top143%-8%33%50%6/1627%
Adam & Adam double top196%-9%31%13%13106%25/10419%$3.3320
Adam & Eve double top67%-9%22%8%2984%19/2840%$10.252
Eve & Adam double top122%-10%16%8%2773%10/4219%$3.3519
Eve & Eve double top134%-8%27%11%1864%13/3925%$7.716
Falling wedge160%-7%35%42%4/1225%
Head-and-shoulders top170%-9%39%14%1183%55/15227%$4.6712
Sell PatternAverage
Win
Average
Loss
NetAnnualized
Net
RankNo Stop
Net
Win/Loss
Samples
Win
Loss
Average
Expectancy
Expectancy
Rank
Head-and-shoulders, complex top103%-8%35%87%10/1638%
Rectangle top191%-11%12%19%3/2312%
Rising wedge135%-9%28%10%2459%19/5526%$2.8526
Rounding top161%-9%47%15%862%12/2433%$3.1223
Ascending scallop112%-9%18%21%2/722%
Descending scallop63%-8%9%6%3632%14/4524%-$1.6853
Scallop, inverted and ascending85%-10%3%43%2/1313%
Scallop, descending and inverted59%-9%2%1%5112%9/4517%$0.2841
Triangle, ascending97%-9%27%9%2658%11/2233%$1.6034
Triangle, descending55%-8%7%34%5/1624%
Triangle, symmetrical100%-9%30%11%1667%27/4936%$3.2621
Triple top121%-9%26%11%2382%45/11927%$3.5516
Rectangle bottom51%-11%-5%-3%2/1711%
3 falling peaks156%-9%41%18%767%53/12230%$4.4515
Roof152%-7%7%85%1/109%
Roof, inverted52%-7%4%50%3/1319%
Sell PatternAverage
Win
Average
Loss
NetAnnualized
Net
RankNo Stop
Net
Win/Loss
Samples
Win
Loss
Average
Expectancy
Expectancy
Rank

Top of page

Trading Inverted Roofs: Non-busted Buy, Busted Sale

Picture of a busted pattern pair.

The figure shows an example of how this trade unfolds.

A bullish chart pattern appears and you buy at the breakout. Continue holding until your selected chart pattern appears. The chart pattern is bullish because it has an upward breakout but then things go wrong. Price reverses. Sell when the stock dips below the bottom of the chart pattern (meaning it busts the upward breakout).

Table 5 shows the performance statistics for this setup (buying a normal inverted roof and selling only after a busted chart pattern appears). A stop loss order was used and priced a penny below the bottom of the chart pattern (after buying).

For example, buying a inverted roof with an upward breakout in a bull market and selling a busted broadening top shows winning trades making an average of 82%. Losing trades lost 11% giving a net gain of 7%. The annualized gain is 5% in this case, giving the setup a rank of 43 (where 1 is best). If you traded this without a stop, the net gain climbed to 73%. Of the stocks I looked at, I found 51 trades with 20% of them winning. Expectancy was a $0.24 per share, ranking 42nd where 1 is best.

Trades with sample counts below 30 are not ranked.

Table 5: Statistics for Normal Buy, Busted Sale
Sell PatternAverage
Win
Average
Loss
NetAnnualized
Net
RankNo Stop
Net
Win/Loss
Samples
Win
Loss
Average
Expectancy
Expectancy
Rank
Broadening bottom42%-11%4%42%7/1828%
Broadening top82%-11%7%5%4373%10/4120%$0.2442
Broadening formation, right-angled and ascending30%-9%1%174%3/925%
Broadening formation, right-angled and descending69%-8%2%1%5061%4/2613%$3.0424
Broadening wedge, ascending33%-9%2%47%3/827%
Broadening wedge, descending47%-7%3%83%5/2219%
Bump-and-run reversal bottomNone-8%-8%53%0/230%
Cup with handle29%-9%1%7%2/625%
Diamond bottom62%-9%6%45%4/1521%
Diamond top21%-11%-5%45%4/1818%
Adam & Adam double bottom93%-9%12%8%32120%22/8720%$2.6828
Adam & Eve double bottom89%-9%13%8%3083%13/4522%$6.698
Eve & Adam double bottom184%-10%23%13%12103%8/3817%$4.5914
Eve & Eve double bottom51%-9%-4%-4%5864%3/329%-$2.9757
Falling wedge46%-10%2%49%4/1521%
Head-and-shoulders bottom98%-8%15%8%3166%22/8121%$1.6035
Sell PatternAverage
Win
Average
Loss
NetAnnualized
Net
RankNo Stop
Net
Win/Loss
Samples
Win
Loss
Average
Expectancy
Expectancy
Rank
Head-and-shoulders complex bottom104%-9%25%43%3/730%
Rectangle top164%-8%26%11%19121%10/4020%$6.319
Rising wedge46%-6%6%35%4/1422%
Round bottom152%-9%55%54%2/340%
Rounding top122%-11%27%36%2/529%
Ascending scallop127%-10%30%115%8/1930%
Descending scallop61%-8%20%53%6/940%
Scallop, inverted and ascending91%-9%5%4%4545%8/5213%$0.4440
Scallop, descending and inverted86%-7%19%86%6/1529%
Triangle, ascending33%-9%2%2%4938%10/2727%$0.1944
Triangle, descending29%-10%-5%-4%5726%4/2613%-$0.5547
Triangle, symmetrical78%-9%11%6%39119%26/8723%$2.1331
Triple bottom79%-9%9%5%4076%26/10120%$0.4439
Rectangle bottom341%-11%40%65%3/1814%
3 rising valleys68%-9%5%3%4781%15/6818%$2.1232
Roof94%-11%5%53%2/1115%
Roof, inverted33%-6%3%76%2/722%
Sell PatternAverage
Win
Average
Loss
NetAnnualized
Net
RankNo Stop
Net
Win/Loss
Samples
Win
Loss
Average
Expectancy
Expectancy
Rank

Top of page

Trading Inverted Roofs: Busted Buy, Busted Sale

Picture of a busted pattern pair.

Table 6 shows the last combination of trading statistics. It shows busted inverted roofs as the entry signal and various busted chart patterns as the exit signal. A stop loss order was used and priced a penny below the bottom of the chart pattern (after buying).

The associated figure shows the setup.

For example, buying a busted inverted roof and selling a busted Adam & Adam double bottom made 233% from the winners, lost 8% on the losers for a net gain of 52%. Annualized, it was 18%. The net gain placed the performance of this setup at 6, where 1 is best. Removing stops from the trades allowed them to make 104%. Only 48 trades were taken and 25% of them were winners. Expectancy was a gain of $9.39 per share, ranking 3rd among the four tables.

Trades with sample counts below 30 are not ranked.


Table 6: Statistics for Busted Buys and Sales
Sell PatternAverage
Win
Average
Loss
NetAnnualized
Net
RankNo Stop
Net
Win/Loss
Samples
Win
Loss
Average
Expectancy
Expectancy
Rank
Broadening bottom623%-7%63%85%1/811%
Broadening top85%-8%7%66%4/2215%
Broadening formation, right-angled and ascending113%-10%25%37%2/529%
Broadening formation, right-angled and descending32%-7%10%21%4/544%
Broadening wedge, ascendingNone-10%-10%23%0/60%
Broadening wedge, descending103%-7%21%80%2/625%
Bump-and-run reversal bottom157%-6%59%53%2/340%
Cup with handle163%-9%48%36%2/433%
Diamond bottom157%-9%47%59%2/433%
Diamond top69%-8%2%63%1/713%
Adam & Adam double bottom233%-8%52%18%6104%12/3625%$9.393
Adam & Eve double bottom292%-9%79%176%5/1229%
Eve & Adam double bottom210%-6%83%129%7/1041%
Eve & Eve double bottom197%-10%25%27%2/1017%
Falling wedge40%-12%3%19%2/529%
Head-and-shoulders complex bottom107%-9%49%63%2/250%
Sell PatternAverage
Win
Average
Loss
NetAnnualized
Net
RankNo Stop
Net
Win/Loss
Samples
Win
Loss
Average
Expectancy
Expectancy
Rank
Rectangle top86%-8%19%55%6/1529%
Rising wedge178%-7%55%52%2/433%
Round bottomNone-5%-5%151%0/20%
Rounding top260%-15%54%112%1/325%
Ascending scallop137%-6%52%59%4/640%
Descending scallopNone-6%-6%62%0/40%
Scallop, inverted and ascending28%-10%-5%20%2/1313%
Scallop, descending and inverted113%-8%4%31%1/910%
Triangle, ascending42%-10%3%37%3/925%
Triangle, descending144%-8%43%64%4/833%
Triangle, symmetrical150%-8%35%11%1553%13/3527%$2.8427
Triple bottom149%-8%40%14%1087%16/3631%$7.577
Rectangle bottom77%-7%7%-13%2/1017%
3 rising valleys118%-8%24%11%2069%11/3226%$3.4317
RoofNone-12%-12%23%0/30%
Roof, inverted86%-8%52%46%7/464%
Sell PatternAverage
Win
Average
Loss
NetAnnualized
Net
RankNo Stop
Net
Win/Loss
Samples
Win
Loss
Average
Expectancy
Expectancy
Rank

Top of page

Trading Inverted Roofs: Performance Improvements

Here are a few ideas the data suggested which may improve performance of your pattern pairs trading.

Trend Start: Short, Medium, or Long

Find the trend start for your chart pattern. Often you can just look at a chart and see where the trend begins. If not, or you want to be sure, then the glossary describes how to find it.

Determine the length from the trend start to the pattern's start: short term (less than 3 months), medium term (3 to 6 months) or long term (more than 6 months).

Table 7 shows the results for the four combinations of busted/non-busted trades and the resulting performance.

Buying non-busted patterns with a short-term (up to 3 months) duration from the trend start to the pattern's start results in better performance. Busted patterns do best using a long-term (more than 6 months) duration from the trend start.

Table 7: Short (S) Medium (M) or Long (L) Trend Start and Performance
 Sell Non-Busted PatternSell Busted Pattern
Buy non-busted patternS18% M10% L7%S14% M4% L9%
Buy busted patternS13% M36% L48%S5% M39% L55%

Top of page

Moving Averages: 50- and 200-Day SMA

I checked two moving averages at buy time, 50- and 200-day simple moving averages (not as a crossover setup). I compared the breakout price to the value of the moving average. Table 8 shows the performance of buying or selling busted or non-busted patterns when the breakout price was above (A) or below (B) the 50-day simple moving average (SMA).

Oddly, trades involving selling non-busted patterns worked best if the breakout price was below the 50-day SMA. Busted sale patterns worked best if the breakout price was above the SMA.

Table 8: Above (A) Below (B) 50-Day Simple Moving Average
 Sell Non-Busted PatternSell Busted Pattern
Buy non-busted patternA12% B17%A11% B6%
Buy busted patternA26% B62%A33% B22%

Table 9 shows the results of using a longer moving average, the 200-day. Traders often use this as a proxy for the long-term trend.

Inverted roofs worked best (in 3 of 4 table cells) if the breakout price was below the 200-day SMA.

Table 9: Above (A) Below (B) 200-Day Simple Moving Average
 Sell Non-Busted PatternSell Busted Pattern
Buy non-busted patternA11% B30%A9% B16%
Buy busted patternA27% B53%A33% B23%

Top of page

Selling First Bearish Chart Pattern

The prior discussion assumes you buy an inverted roof (busted or non-busted) but sell a chart pattern of your choosing, such as a downward breakout from a head-and-shoulders top (you wait for one to appear). What if you sold the first bearish chart pattern which comes along? How would you do?

Table 10 shows the results sorted by the type of patterns involved (busted or non-busted). For example, if you buy a non-busted inverted roof and sell the first non-busted chart pattern which comes along, you'd make 9% on average. Annualized, you'd make 23%. This compares to a 9% annualized gain if you sell a designated pattern (like you waited for a double top before selling, which may or may not be the first bearish chart pattern to come along).

The results of this table mirror those for 50-day SMA. Selling the first non-busted pattern which appears works best. Busted patterns work best if you wait for a designated chart pattern to appear.

The bottom half of the table shows expectancy for the four combinations. Selling non-busted patterns gives the highest expectancy.

The results suggest that selling the first non-busted pattern which comes along will provide the best profit potential.

Table 10: Selling the First Bearish Pattern (Annualized)
 Sell Non-Busted PatternSell Busted Pattern
Buy non-busted pattern9% (23% v 9%)2% (5% v 6%)
Buy busted pattern20% (48% v 12%)5% (9% v 12%)
Expectancy (Below)
 Sell Non-Busted PatternSell Busted Pattern
Buy non-busted pattern$2.62$0.52
Buy busted pattern$2.05$0.75

-- Thomas Bulkowski

Top of page

See Also

 

Support this site! Clicking any of the books (below) takes you to Amazon.com If you buy ANYTHING while there, they pay for the referral.
Legal notice for paid links: "As an Amazon Associate I earn from qualifying purchases."

My Stock Market Books
My Novels

Copyright © 2005-2024 by Thomas N. Bulkowski. All rights reserved.
Disclaimer: You alone are responsible for your investment decisions. See Privacy/Disclaimer for more information.
Some pattern names are registered trademarks of their respective owners.
Home Advertise Contact Privacy/Disclaimer