The Sethi Extended Darvas Box Plotter is now in Beta-release. Please feel free to give either the Java or the non-Java (regular HTML) versions a go by clicking one of the following links: |
FREE Sethi Basic Darvas Box Plotter chart for variable symbol (AEG) and variable Time_Range (65 days): |
Sethi Extended Darvas Box Plotter chart for fixed symbol (AEG) but variable Time_Range (65 days): |
Please send any suggestions, bugs, or comments you might have to darvas at sethi.org. We'll review each comment personally and, if appropriate, respond asap.
The original, out-dated old, basic Sethi Family's Darvas Box Plotter will always remain up (and remain free... heck, we won't even require registration! :). The Sethi Extended Darvas Box Plotter (including the application, applet, and non-Java/regular HTML versions), however, will be part of the Sethi Investments Advisory Newsletter, which will also include the results of the stock scanner derived from these applications, either on a subscription or purchase basis.
— Dr. Sethi
Nota Bene: These are rough notes... I'll polish them later
However, a careful reading of his classic tome can lead to wildly differing interpretations on how to best implement his system. I'm not sure if Nicholas was purposefully ambiguous in detailing the exact method of computation but the end result has been nothing but confusion.
And so it comes as no surprise that our little Sethi Darvas Box plotter has gone through many iterations. In its current incarnation, I've made it as close to Darvas' original method as I could. Which isn't to say this is the canonical Darvas plotter; just my best guess on exactly how the Darvas boxes should be constructed.
That being said, what my program does is always look for a top first. Once a top is firmly in place (currently, a three-day period), only then does it look for a low. The only other note is that a breakout can occur to the upside or the downside. In either case, we always look for a new top first, and then the subsequent low.
In previous iterations, I did draw the boxes in dramatically different fashions. But, after a careful re-reading of Darvas' account, I thought I should stick with his original directive in the public version, which states that you find the top, make sure the top doesn't get violated for three days (including that day), and then look for a bottom (this is the source of many discrepancies in different versions; e.g., if you achieve a new low within that three-day buffer period, you might expect the low to be lower). As you investigate the Darvas method further, I'm sure you'll find a variety of approaches.
In its original incarnation, my program bowed to symmetry and would look for the bottom first on a downside breakout. In this version, however, I've setup the program to always find a top first and then look for a bottom. This version sticks to the original Darvas dictate (and thus ignores the promptings of symmetry) and always looks for the top of the box first (I suppose that might be called the "traditional" Darvas approach).
That is, the program, as it's currently configured, always looks for the box top first, even if the breakout is to the downside. If that top is penetrated before the bottom was firmly established, it looks to establish a new top again (this seems to be what Darvas meant, at least according to my interpretation of the appendix). It's trivial to set it to find the bottom first; in fact, I used it like that much earlier. But I remembered commenting out those lines because they seemed to give better results and were more in line with the Darvas method. So , the program, as it's currently configured, always looks for the box top first and then searches for the bottom. About the periods: it currently uses a period of 3 days for both the top and the bottom. And it does, indeed, use the highs and lows (in an earlier version, I used the closing prices but upon re-reading Darvas' classic tome, I thought the highs and lows should be given their fair due).
So, in summary: We store the top and then see if it remains unpenetrated for three days (including that day). If it does, then we look for a low, repeating this process in reverse (and wait for three days, including that day). If the top gets penetrated before the low is firmly established, we scrap the previous numbers and repeat the whole process from scratch. This will probably require a minimum of five days. Then, we wait for a bar to penetrate the high (a buy signal) or the low (a sell signal).
The placement of the stop loss (and, actually, the decision to buy or sell) really varies from implementation to implementation. I believe Darvas' original interpretation was to only buy when there was a pattern of boxes stacking on top of each other and to place the stop loss at the top of the previous box. My program uses the low that's not penetrated for three days (after the top has definitively been formed and remains unpenetrated (the high of the box is always drawn first; the bottom is set only once the top has been formed (and remains unpenetrated throughout the establishment of the bottom)).
In its strictest interpretation, I'd look for at least three boxes, with each subsequent box being higher than the one before and then place a buy order if it penetrates the latest box to the upside. In addition, I place the constraint that any penetration of the box is only to the upside (a penetration of the bottom, or to the downside, should automatically trigger a stop loss).
In summary: my personal requirements are much stricter than Darvas' original method. I require the breakouts to be to the upside and require at least three stacked boxes with upside breakouts. The sell signal would be whenever it broke through the bottom of the latest (or last) box.
Hope that helps,
Rick.
Ricky J. Sethi
November 10, 2003
P.s., here is some MetaStock code available on the internet (along with the appropriate URL's for them). Please note, I didn't write the MetaStock code but I'm posting it here (along with attributions to their original URLs) for those that are interested:
Darvas Box I (http://trader-online.tk/MSZ/e-w-Darvas_Box.html) LowL:=If(Low=LLV(Low,5),Low,If(Ref(Low,-1)=LLV(Low,5),Ref(Low,-1),
If(Ref(Low,-2)=LLV(Low,5),Ref(Low,-2),If(Ref(Low,-3)=LLV(Low,5),Ref(Low,-3),
If(Ref(Low,-4)=LLV(Low,5),Ref(Low,-4),0))))); |
Darvas Box II (http://trader-online.tk/MSZ/e-w-Darvas_Box_II.ht) Ht:=If(Cross(HHV(H,4)=Ref(H,-3),.9)=1,Ref(H,-3),PREV); |
Looking for the source code? I'm sorry to say that I've taken the source code down for now. I'm in talks about possibly commercializing the Sethi Darvas Box plotter as a Windows product (I should have a Beta version within a month or two). This site, however, will always remain up (and remain free... heck, I won't even require registration! :). If you're interested in the Windows version (or have suggestions), please feel free to drop me a line at rickys_at_sethi_dot_org.
In the interim, I'm compiling a wishlist that people have emailed me about (with apologies for missing out on any suggestions; please feel free to re-email them to me):
Also, quite a few people have been asking me to translate this into TradeStation or other proprietary formats. Unfortunately, being a small fish, I don't have access to any of those. If anyone would like to offer access to such resources, I'd be happy to look into it (although, again, it would probably have to wait till mid-March or, more likely, April to May).
Note: If the chart doesn't come up immediately, it just means that we've exceeded our daily historical quotes quota. Since this site seems to be getting very popular, I might temporarily take it down occasionally as I rely on the historical quotes for quite a bit of my personal investing computations. If anyone knows of a source for quotes data, I'll be happy to keep this free service up without any interruptions.