glgene 616 posts msg #97646 - Ignore glgene |
11/28/2010 1:12:48 AM
Read an article in the Dec. 2010 issue of 'Technical Analysis of Stocks & Commodities.' Article is titled, "Less Stress With the JM Internal Band." JM is simply the initials of a person the band was named after.
Talks about creating a 15-day SMA of a stock, offset by 2% upward and 2% downward bands from the 15-day MA. You go long when the close breaks above the upper band, and go short when it breaks below the lower band. You can then use a break above (below) the 15-day SMA as a sell (buy) stop..... or use any other exit strategy you normally employ.
Looked up the subject of 'Bands' in the SF Manual, but none exist (other than Bollinger). Is there a more complete, updated SF Manual available?
Question: Can anybody here show me the script to build 2% upper and 2% lower bands on the 15-day MA of a stock, say, SPY?
Much appreciated!
Gene
|
glgene 616 posts msg #97648 - Ignore glgene |
11/28/2010 8:06:54 AM
Let's try this for my initial attempt, using the 2% 'Band' rule mentioned above. That would be GO LONG when the Close goes above its MA(15) at 102.00% (far right-hand column), and GO SHORT when Close goes below MA(15) at 98.00%.
No stop loss here (yet). ???
Question: How do I modify the script so the Upper and Lower 2% bands are drawn overlapping the Price and MA(15) charts ???
Fetcher [
symlist(spy,qqqq,iwm,vti)
set {m, ma(15)}
set{u,m*1.02}
set{l,m*.98}
add column separator
add column u{Up2%Band}
add column ma(15){ma(15)}
add column l{dn2%Band}
add column separator
set{d,close/m}
set{d1,d*100}
add column d1{Close-vs.-ma15[%]}
draw ma(15)
draw u
draw m
draw l
draw d1
]
|
Kevin_in_GA 4,599 posts msg #97649 - Ignore Kevin_in_GA |
11/28/2010 8:37:25 AM
|
Kevin_in_GA 4,599 posts msg #97650 - Ignore Kevin_in_GA |
11/28/2010 8:41:53 AM
The above filter is based on momentum, rather than mean reversion. Just make sure that you are careful, and recognize that statistically over short time frames (like 15 days) mean reversion is quite common.
I would probably use Bollinger Bands instead of this system, and play mean reversion when the price is greater than 2 SD from the MA.
|
glgene 616 posts msg #97651 - Ignore glgene |
11/28/2010 10:01:49 AM
Thanks, Kevin, for BOTH replies, and so quickly. Yes, I agree, that using an MA(15) could cause a lot of trades.
I will add your remarks to my "What I learned" memory bank. My bank needs a lot of filling!
Your most recent comment....."play mean reversion when the price is greater than 2 SD from the MA." I'll have to work on that one. But first, I've got to study page 98 in the SF Manual on Standard Deviation. There are no examples there that reference the number of standard deviations.
Your comment (without scripting) tells me to look at somethng like the following:
Close > than 2 standard deviations above ma(15)
Is that acceptable SF scripting language?
Gene
|
Kevin_in_GA 4,599 posts msg #97657 - Ignore Kevin_in_GA modified |
11/28/2010 11:33:28 AM
Not really. Because of the way Bollinger Bands are calculated, you only need to say
Here I have also added a line creating a user variable called trigger - since the majority of stocks usually stay inside their BB, the trigger variable being greater than 0.5 (meaning that the stock is either ABOVE the upper BB or BELOW the lower BB) filters these down to only those that are tradable for today.
I also use the S&P500 as the market since these are all highly liquid stocks that are unlikely to crash and burn. Only 9 hits for today.
You can remove that line and get a larger set if desired. If so, I would put some additional constraints on price (above $1) and volume traded (average volume(50) above 250000, for example).
This gives you 97 matches.
Remember that these values (15, 2) are arbitrary ... you really need to back-test or optimize against a large set of variables to find a set that is consistently profitable and robust.
|
glgene 616 posts msg #97661 - Ignore glgene |
11/28/2010 4:40:33 PM
Kevin,
Your generosity of time and talent here are much appreciated. I will go over your scripts in detail to fully understand them. If (if?)I have any questions, I'll come back.
Thanks!
Gene
|