DALE !!! TRADING TRENDS WITH BOLLINGER BANDS Z (BBZ) !! Author: Jacinta Chan, TASC March 2006 !! Coded by: Richard Denning 01/06/2006 ! BOLLINGER BAND CODE ! Set parameters: Define L 40. Define Factor1 0.9. ! Standard Deviation is the square root of variance over length L: Variance is Variance([close]-SMA,L). StdDev is Sqrt(Variance). ! Middle Band SMA is simpleavg([close],L). ! Upper Band BBUpper is SMA + Factor1 * StdDev. ! Lower Band BBLower is SMA - Factor1 * StdDev. !! Plot the above three bands as single line indicators on chart. ! Z-SCORE CODE Z is ([close] - SMA) / StdDev. ! TRADING SYSTEM RULES USING BOLLINGER BANDS ! Long position entry (LE1) and exit (LX1) rules: LE1 if [close] > BBUpper and valrule([close] < BBUpper,1) and DF. LX1 if [close] < BBUpper. ! Short position entry (SE1) and exit (SX1) rules: SE1 if [close] < BBLower and valrule([close] > BBLower,1) and DF. SX1 if [close] > BBLower. ! TRADING SYSTEM RULES USING Z-SCORE ! Long position entry (LE2) and exit (LX2) rules: LE2 if Z > Factor1 and valrule(Z < Factor1,1) and DF. LX2 if Z < Factor1. ! Short position entry (SE2) and exit (SX2) rules: SE2 if Z < -Factor1 and valrule(Z > -Factor1,1) and DF. SX2 if Z > -Factor1. ! MARKET TIMING RULES FOR TRADING NASDAQ 100 SMA20 is expavg([close],20). SMA100 is expavg([close],100). SMA200 is expavg([close],200). LEn100 if TickerRule("NDX",Z > 1) and TickerRule("NDX",slope2(SMA,5)>0). LXn100 if TickerRule("NDX",Z < 0.1) or TickerRule("NDX",slope2(SMA,5)<0). SEn100 if TickerRule("NDX",Z < -0.1) and TickerRule("NDX",slope2(SMA,5)<0) and TickerRule("NDX",[close] -0.1) or TickerRule("NDX",slope2(SMA,5)>0) or TickerRule("NDX",[close]>SMA100). ! TRADING RULES INCLUDING MARKET TIMING FILTERS LE3 if LE2 and LEn100. LX3 if LX2. SE3 if SE2 and SEn100. SX3 if SX2 or SXn100. !DATA FILTER FOR TRADING STOCKS DF if [close] > 5 and HasDataFor(L+10) > L. !AIQ LONG TERM RELATIVE STRENGTH length is 236. Q3 is length/4. Q2 is (length - Q3) / 3. Q1 is (length - Q2 - Q3) / 2. Q0 is length - Q1 - Q2 - Q3. ROCq3 is (val([close],Q2,(Q1+Q0)) - val([open],Q3,(Q2+Q1+Q0))) / val([open],Q3,(Q2+Q1+Q0)) * 100. ROCq2 is (val([close],Q1,Q0) - val([open],Q2,(Q1+Q0))) / val([open],Q2,(Q1+Q0)) * 100. ROCq1 is (val([close],Q0,0) - val([open],Q1,Q0)) / val([open],Q1,Q0) * 100. ROCq0 is ([close] - val([open],Q0,0)) / val([open],Q0,0) * 100. RS_AIQ is ROCq0 * 0.38 + ROCq1 * 0.21 + ROCq2 * 0.21 + ROCq3 * 0.21. !AIQ SHORT TERM RELATIVE STRENGTH lengths is 120. Q3s is lengths/4. Q2s is (lengths - Q3s) / 3. Q1s is (lengths - Q2s - Q3s) / 2. Q0s is lengths - Q1s - Q2s - Q3s. ROCq3s is (val([close],Q2s,(Q1s+Q0s)) - val([open],Q3s,(Q2s+Q1s+Q0s))) / val([open],Q3s,(Q2s+Q1s+Q0s)) * 100. ROCq2s is (val([close],Q1s,Q0s) - val([open],Q2s,(Q1s+Q0s))) / val([open],Q2s,(Q1s+Q0s)) * 100. ROCq1s is (val([close],Q0s,0) - val([open],Q1s,Q0)) / val([open],Q1s,Q0s) * 100. ROCq0s is ([close] - val([open],Q0s,0)) / val([open],Q0s,0) * 100. RS_AIQs is ROCq0s * 0.40 + ROCq1s * 0.20 + ROCq2s * 0.20 + ROCq3s * 0.20. Rule Library CCodeViewLE1 CReportView Symbol<BBLowerOBBUpperOSMAOStdDevOZOCloseOVolumeO Volume ESAUALTRuA}AA>>aH? םAfGwYGBEAS!HA'A$Ao>=@{"A-G1d?\A"FFORCLRDAGKA%HAsm>?ףLAIDHPCARABvsBZB4? ?ףBFqAFQLGCBB B7ǔ>U?B4FerFSUNW@@@ԣ@f >I&@{@-IJHXLNX_>ALAEA`?@ffACH6sGYHOOBO%B"BsL@?_?&BG(HLE2 Symbol<BBLowerOBBUpperOSMAOStdDevOZOCloseOVolumeO Volume ESAUALTRuA}AA>>aH? םAfGwYGBEAS!HA'A$Ao>=@{"A-G1d?\A"FFORCLRDAGKA%HAsm>?ףLAIDHPCARABvsBZB4? ?ףBFqAFQLGCBB B7ǔ>U?B4FerFSUNW@@@ԣ@f >I&@{@-IJHXLNX_>ALAEA`?@ffACH6sGYHOOBO%B"BsL@?_?&BG(HSE1 Symbol<BBLowerOBBUpperOSMAOStdDevOZOCloseOVolumeO Volume ESAUCTAS-%BJ +B&(B;?` ߿#BlXFv FSPLSXAКAA=> ׳AG@'GXRAY_XB$aB\B ?˚ףWBEUESE2 Symbol<BBLowerOBBUpperOSMAOStdDevOZOCloseOVolumeO Volume ESAUCTAS-%BJ +B&(B;?` ߿#BlXFv FSPLSXAКAA=> ׳AG@'GXRAY_XB$aB\B ?˚ףWBEUESummary CCrossTabRptSymbol< LE1 - 17B LE2 - 17BSE1 - 3=SE2 - 3=ALTRBEASBRCMEBAYERTSESRXGNTXISILLRCXMRVLNVLSORCLPCARQLGCSUNWXLNXYHOOCTASSPLSXRAYnas100CBackTestPropertyLE1LX1`P:0 BBZ Sys1 LE1NDXPnas100 SE1SX1"PPp0 BBZ Sys1 SE1SPXPnas100 LE2LX2PP BBZ Sys1 LE2NDXPnas100 00:00