As of 03/27/2024
  Indus: 39,760 +477.75 +1.2%  
  Trans: 16,029 +177.70 +1.1%  
  Utils: 875 +23.30 +2.7%  
  Nasdaq: 16,400 +83.82 +0.5%  
  S&P 500: 5,248 +44.91 +0.9%  
YTD
 +5.5%  
 +0.8%  
-0.8%  
 +9.2%  
 +10.0%  
  Targets    Overview: 03/13/2024  
  Up arrow40,000 or 38,500 by 04/01/2024
  Up arrow16,300 or 15,350 by 04/01/2024
  Up arrow885 or 830 by 04/01/2024
  Up arrow16,600 or 15,200 by 04/01/2024
  Up arrow5,350 or 5,100 by 04/01/2024
As of 03/27/2024
  Indus: 39,760 +477.75 +1.2%  
  Trans: 16,029 +177.70 +1.1%  
  Utils: 875 +23.30 +2.7%  
  Nasdaq: 16,400 +83.82 +0.5%  
  S&P 500: 5,248 +44.91 +0.9%  
YTD
 +5.5%  
 +0.8%  
-0.8%  
 +9.2%  
 +10.0%  
  Targets    Overview: 03/13/2024  
  Up arrow40,000 or 38,500 by 04/01/2024
  Up arrow16,300 or 15,350 by 04/01/2024
  Up arrow885 or 830 by 04/01/2024
  Up arrow16,600 or 15,200 by 04/01/2024
  Up arrow5,350 or 5,100 by 04/01/2024

Bulkowski on Pattern Pairs: Diamond Bottoms

Initial release: 12/3/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 Diamond Bottoms: 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 a diamond bottom or a busted one (price breaks out downward, drops no more than 10%, reverses, and closes above the top of the diamond). Buy as price rises above the top of the diamond.

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.

According to the contest results, avoid trading using busted chart patterns.

To improve performance, try these tips.

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. Buying busted patterns do better after a short-term duration from the trend start.

Top of page

Trading Diamond Bottoms: 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 diamond bottom 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 Diamond Bottoms: 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 diamond bottoms and sold various non-busted patterns (ascending triangles, broadening tops, head-and-shoulders tops, and so on), I made an average of 40% ("Stop Loss Only" column) after having a stop loss order in place. Losses averaged 8%. Replacing the stop loss with a 10% trailing stop cut the gain to 10% but also trimmed the average loss to 4%. Using a 25% trailing stop allowed me to keep more money, 20%, but losses climbed to 11%. If I didn't use any type of stop, the gain averaged 115% with losses averaging 29%.

The results show that:

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 10% (-4%)  12% (-7%)  16% (-9%)  20% (-11%)  40% (-8%)  115% (-29%) 
Busted buys, non-busted sales 4% (-5%)  2% (-9%)  10% (-10%)  9% (-12%)  3% (-11%)  94% (-24%) 
Non-busted buys, busted sales 8% (-4%)  11% (-7%)  14% (-9%)  18% (-11%)  33% (-8%)  107% (-25%) 
Busted buys, busted sales 3% (-5%)  3% (-8%)  13% (-9%)  15% (-11%)  16% (-10%)  106% (-21%) 

Top of page

Trading Diamond Bottoms: Busted Patterns

According to the contest results, avoid trading using busted chart 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 19, 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 just 45% of the time or 10 of 22 contests when buying using a non-busted pattern and selling a busted pattern (compared to non-busted for both).

Table 2: Busted or Non-Busted Contest Winners
 Sell Non-Busted PatternSell Busted Pattern
Buy non-busted patternN/A (benchmark)45%
Buy busted pattern0%11%

Top of page

Trading Diamond Bottoms: Non-busted Buy, Non-Busted Sale

Picture of a busted pattern pair.

Table 3 shows statistics I collected for diamond bottoms 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 diamond bottom 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 38% on the 102 (23 winners, 79 losers) trades. That's an average of 198% on your winners, 8% average loss on your losers. You'd find that only 23% of the trades made money but you'd gain an average of 24% per year (ranking 17th 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 108% per trade.

The expectancy averages $1.72 per share per trade which ranks 43rd where 1 is the best value.

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 Diamond Bottoms
Sell PatternAverage
Win
Average
Loss
NetAnnualized
Net
RankNo Stop
Net
Win/Loss
Samples
Win
Loss
Average
Expectancy
Expectancy
Rank
Broadening bottom198%-8%38%24%17108%23/7923%$1.7243
Broadening top246%-9%61%38%4148%53/14227%$5.559
Broadening formation, right-angled and ascending122%-9%19%11%4165%21/8021%$0.4749
Broadening formation, right-angled and descending101%-8%18%15%33101%14/4424%$3.5827
Broadening wedge, ascending82%-9%22%20%27162%22/4334%$3.1631
Broadening wedge, descending256%-10%29%20%2681%8/4615%$1.5745
Bump-and-run reversal top160%-9%40%30%10136%54/13129%$3.5628
Diamond bottom250%-11%70%144%9/2031%
Diamond top214%-7%54%33%7146%24/6328%$4.6315
Adam & Adam double top228%-8%42%21%22165%85/31321%$6.028
Adam & Eve double top258%-8%51%25%16134%41/14222%$4.9513
Eve & Adam double top424%-8%90%37%5199%50/16923%$6.066
Eve & Eve double top242%-8%55%31%9139%59/17425%$4.9414
Falling wedge216%-9%16%13%3746%7/5511%-$2.3456
Head-and-shoulders top206%-8%43%24%18118%166/53124%$4.5017
Sell PatternAverage
Win
Average
Loss
NetAnnualized
Net
RankNo Stop
Net
Win/Loss
Samples
Win
Loss
Average
Expectancy
Expectancy
Rank
Head-and-shoulders, complex top119%-9%28%18%3064%41/10229%$2.3938
Rectangle top95%-9%23%17%3174%29/6631%$2.5436
Rising wedge171%-9%27%21%2184%44/17720%$1.1548
Rounding top222%-9%51%22%2099%31/8826%$5.2411
Ascending scallop56%-9%6%4%5034%12/3924%$4.4818
Descending scallop130%-9%25%14%3676%80/25024%$4.1519
Scallop, inverted and ascending406%-8%86%304%5/1723%
Scallop, descending and inverted157%-10%31%21%2485%50/15824%$3.7324
Triangle, ascending71%-9%11%7%4667%31/9325%$2.8334
Triangle, descending207%-9%48%27%14108%35/9826%$1.5646
Triangle, symmetrical174%-9%31%19%28102%75/27122%$3.5430
Triple top215%-9%47%27%15138%127/38625%$3.8423
Rectangle bottom82%-8%5%5%4842%15/8415%-$0.5453
3 falling peaks220%-8%44%23%19103%139/46823%$6.733
Roof193%-7%51%133%7/1729%
Roof, inverted89%-8%18%17%3269%14/3926%$1.8142
Sell PatternAverage
Win
Average
Loss
NetAnnualized
Net
RankNo Stop
Net
Win/Loss
Samples
Win
Loss
Average
Expectancy
Expectancy
Rank

Top of page

Trading Diamond Bottoms: 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 diamond bottom in a bull market), buy. Sell after a downward breakout from the target chart pattern.

Table 4 shows the performance of busted diamond bottoms 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 diamond (after buying).

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

For example, buying a diamond bottom with a busted downward breakout in a bull market (the entry price is really the higher of a penny above the top of the diamond or the opening price) and selling after the downward breakout from a broadening top shows winners averaging gains of 63%. Losses average 10%, for a net loss of 1%. Only 31 trades occurred with a win/loss ratio of 13%. This scenario ranks the annualized net gain as 53rd among the four tables. If you traded this as a buy-and-hold position, meaning no stops were used, the net gain climbed to 30%. Expectancy was $2.13 per share, ranking 39th 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 bottomNone-12%-12%30%0/150%
Broadening top63%-10%-1%-1%5385%4/2713%$2.1339
Broadening formation, right-angled and ascending91%-10%-3%59%1/156%
Broadening formation, right-angled and descending90%-14%-3%124%1/811%
Broadening wedge, ascending160%-12%1%63%1/137%
Broadening wedge, descending8%-5%0%13%2/340%
Bump-and-run reversal top33%-10%-3%117%3/1616%
Diamond bottomNone-16%-16%28%0/30%
Diamond top46%-13%3%87%3/827%
Adam & Adam double top175%-11%17%12%39122%9/5115%$3.7225
Adam & Eve double top130%-8%19%95%4/1620%
Eve & Adam double top427%-12%39%32%8194%5/3812%$5.2810
Eve & Eve double top78%-10%1%1%5165%4/2813%$2.5337
Falling wedgeNone-10%-10%-11%0/30%
Head-and-shoulders top73%-12%4%4%4994%17/6920%$4.1520
Sell PatternAverage
Win
Average
Loss
NetAnnualized
Net
RankNo Stop
Net
Win/Loss
Samples
Win
Loss
Average
Expectancy
Expectancy
Rank
Head-and-shoulders, complex top35%-9%-3%51%3/2013%
Rectangle top96%-12%11%94%3/1121%
Rising wedge20%-11%-9%105%1/195%
Rounding top70%-8%16%70%4/931%
Ascending scallopNone-12%-12%155%0/80%
Descending scallop55%-11%-3%75%3/2212%
Scallop, inverted and ascending94%-10%25%210%1/233%
Scallop, descending and invertedNone-10%-10%95%0/170%
Triangle, ascending143%-9%8%69%1/811%
Triangle, descending7%-14%-10%46%3/1418%
Triangle, symmetrical50%-11%-7%-10%5554%3/456%-$1.1354
Triple top52%-11%0%0%5284%13/6018%$0.2352
Rectangle bottom13%-14%-7%50%2/625%
3 falling peaks39%-13%-8%-15%56139%4/3810%-$1.1655
Roof159%-10%18%188%1/517%
Roof, invertedNone-12%-12%69%0/30%
Sell PatternAverage
Win
Average
Loss
NetAnnualized
Net
RankNo Stop
Net
Win/Loss
Samples
Win
Loss
Average
Expectancy
Expectancy
Rank

Top of page

Trading Diamond Bottoms: 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 diamond bottom 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 diamond bottom with an upward breakout in a bull market and selling a busted broadening top shows winning trades making an average of 69%. Losing trades lost 8%, giving a net gain of 10%. The annualized gain is 9% in this case, giving the setup a rank of 44th (where 1 is best). If you traded this without a stop, the net gain climbed to 125%. Of the stocks I looked at, I found 78 trades with 23% of them winning. Expectancy was a $2.03 per share, ranking 40th 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 bottom81%-8%13%55%6/1924%
Broadening top69%-8%10%9%44125%18/6023%$2.0340
Broadening formation, right-angled and ascending73%-11%8%92%5/1822%
Broadening formation, right-angled and descending297%-7%52%43%1100%7/2919%$6.047
Broadening wedge, ascending576%-6%153%206%3/827%
Broadening wedge, descending152%-8%34%27%13106%10/2826%$2.9233
Bump-and-run reversal bottom404%-7%125%170%9/1932%
Cup with handle59%-8%1%24%2/1214%
Diamond bottom248%-8%63%94%8/2128%
Diamond top310%-8%72%29%11124%12/3625%$6.375
Adam & Adam double bottom269%-7%35%18%29133%21/11715%$4.9812
Adam & Eve double bottom372%-7%65%37%6106%10/4319%$6.852
Eve & Adam double bottom172%-8%23%12%3893%10/4917%$3.1232
Eve & Eve double bottom361%-10%70%28%12106%12/4421%$3.9122
Falling wedge317%-8%73%40%3130%8/2425%$3.5629
Head-and-shoulders bottom151%-8%20%12%40118%20/9617%$0.3751
Sell PatternAverage
Win
Average
Loss
NetAnnualized
Net
RankNo Stop
Net
Win/Loss
Samples
Win
Loss
Average
Expectancy
Expectancy
Rank
Head-and-shoulders complex bottom214%-7%60%90%6/1430%
Rectangle top262%-8%49%40%2176%11/4121%$4.5916
Rising wedge185%-8%37%21%2393%9/3023%$1.7044
Round bottom0%-15%-13%3%1/713%
Rounding top123%-14%28%77%4/931%
Ascending scallop275%-10%37%21%2591%8/4017%$1.9041
Descending scallop101%-8%29%66%8/1633%
Scallop, inverted and ascending95%-9%16%9%4385%19/6124%$4.0121
Scallop, descending and inverted86%-6%29%59%8/1338%
Triangle, ascending80%-8%-3%-2%5477%3/496%$0.4250
Triangle, descending93%-8%14%10%4251%8/2922%$1.5047
Triangle, symmetrical93%-8%12%7%4771%31/12520%$3.6826
Triple bottom185%-8%30%15%34131%33/13420%$2.7535
Rectangle bottom200%-9%10%112%2/209%
3 rising valleys126%-8%29%14%35116%33/8728%$9.191
Roof218%-8%43%221%2/722%
Roof, inverted113%-6%14%102%3/1517%
Sell PatternAverage
Win
Average
Loss
NetAnnualized
Net
RankNo Stop
Net
Win/Loss
Samples
Win
Loss
Average
Expectancy
Expectancy
Rank

Top of page

Trading Diamond Bottoms: Busted Buy, Busted Sale

Picture of a busted pattern pair.

Table 6 shows the last combination of trading statistics. It shows busted diamond bottoms as the entry signal and various busted chart patterns as the exit signal. Keep in mind that all but one of the trades were few. 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 diamond bottom and selling a busted triple bottom made 70% from the winners, lost 13% on the losers for a net gain of 11%. Annualized, it was 8%. The net gain placed the performance of this setup at 45th, where 1 is best. Removing stops from the trades allowed them to make 93%. Only 31 trades were taken and 29% of them were winners. Expectancy was a gain of $6.61 per share, ranking 4th 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 bottom2%-7%-5%17%1/325%
Broadening top48%-13%4%77%3/827%
Broadening formation, right-angled and ascending10%-11%-7%151%1/420%
Broadening formation, right-angled and descendingNone-11%-11%64%0/30%
Broadening wedge, descending18%-9%-4%118%1/420%
Bump-and-run reversal bottomNone-7%-7%74%0/20%
Cup with handleNone-5%-5%-5%0/10%
Diamond bottom252%-10%42%61%1/420%
Diamond topNone-11%-11%-4%0/30%
Adam & Adam double bottom113%-10%15%150%3/1220%
Adam & Eve double bottomNone-8%-8%77%0/70%
Eve & Adam double bottomNone-7%-7%146%0/70%
Eve & Eve double bottom52%-9%8%11%3/827%
Falling wedgeNone-11%-11%-43%0/20%
Head-and-shoulders bottomNone-8%-8%64%0/200%
Sell PatternAverage
Win
Average
Loss
NetAnnualized
Net
RankNo Stop
Net
Win/Loss
Samples
Win
Loss
Average
Expectancy
Expectancy
Rank
Head-and-shoulders complex bottom3%-10%-5%61%2/340%
Rectangle top3028%-14%746%777%1/325%
Rising wedge9%-15%-9%102%1/325%
Round bottomNone-6%-6%-16%0/20%
Rounding topNone-40%-40%47%0/10%
Ascending scallopNone-8%-8%76%0/80%
Descending scallopNone-14%-14%148%0/10%
Scallop, inverted and ascending91%-12%-2%168%1/109%
Triangle, ascending244%-9%27%75%1/614%
Triangle, descending46%-11%5%72%2/529%
Triangle, symmetrical46%-9%-1%133%3/1814%
Triple bottom70%-13%11%8%4593%9/2229%$6.614
Rectangle bottomNone-9%-9%-9%0/10%
3 rising valleys96%-13%11%159%2/722%
Roof, inverted18%-4%7%9%1/150%
Sell PatternAverage
Win
Average
Loss
NetAnnualized
Net
RankNo Stop
Net
Win/Loss
Samples
Win
Loss
Average
Expectancy
Expectancy
Rank

Top of page

Trading Diamond Bottoms: 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.

Table 7: Short (S) Medium (M) or Long (L) Trend Start and Performance
 Sell Non-Busted PatternSell Busted Pattern
Buy non-busted patternS51% M35% L1%S43% M28% L2%
Buy busted patternS-5% M8% **L89%S-2% M16% *L246%

Notes: * Only 12 samples used, ** 34 samples used.

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).

Buy non-busted diamond bottoms when the breakout price is below the 50-day SMA. Buy busted diamond bottoms if the buy 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% B46%A3% B39%
Buy busted patternA8% B1%A46% B4%

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.

Diamond bottoms worked best if the breakout price was below the 200-day SMA. The exception is when buying and selling busted patterns.

Table 9: Above (A) Below (B) 200-Day Simple Moving Average
 Sell Non-Busted PatternSell Busted Pattern
Buy non-busted patternA24% B52%A21% B42%
Buy busted patternA-2% B9%A18% B14%

Top of page

Selling First Bearish Chart Pattern

The prior discussion assumes you buy a diamond bottom (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 diamond bottom and sell the first non-busted chart pattern which comes along, you'd make 16% on average. Annualized, you'd make 43%. This compares to a 23% 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).

Selling the first bearish pattern works best for only non-busted patterns (non-busted buys and sales).

The bottom half of the table shows expectancy for the four combinations. The highest expectancy ($2.73) associates with buying and selling non-busted patterns.

Table 10: Selling the First Bearish Pattern (Annualized)
 Sell Non-Busted PatternSell Busted Pattern
Buy non-busted pattern16% (43% v 23%)-1% (-3% v 18%)
Buy busted pattern0% (-1% v 3%)-1% (-3% v 13%)
Expectancy (Below)
 Sell Non-Busted PatternSell Busted Pattern
Buy non-busted pattern$2.73$1.27
Buy busted pattern$0.62$1.13

-- 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 Donate Privacy/Disclaimer