DALEñ !! COMBINING DMI & MA ! Author: Rombout Kerstens, TASC August 2009 ! Coded by: Richard Denning 6/9/09 ! www.TradersEdgeSystems.com ! INPUTS: dmiLen is 14. maLen is 30. mktLen is 250. ! ABBREVIATIONS: C is [close]. H is [high]. L is [low]. C1 is val([close],1). H1 is val([high],1). L1 is val([low],1). SPXc is tickerUDF("SPX",C). ! ENTRY & EXIT RULES-MA SYSTEM: BuyMA if C > simpleavg(C,maLen). SellMA if C < simpleavg(C,maLen). ! ENTRY & EXIT RULES-DMI SYSTEM: BuyDMI if PlusDMI > MinusDMI. SellDMI if PlusDMI < MinusDMI. ! ENTRY & EXIT RULES-COMBINED SYSTEM: Buy if BuyMA and BuyDMI. Sell if SellMA and SellDMI. ! ENTRY & EXIT RULES-MA CROSSOVER SYSTEM (IF STOPS ADDED): BuyMAx if BuyMA and valrule(C < simpleavg(C,maLen),1). SellMAx if SellMA and valrule(C > simpleavg(C,maLen),1). ! ENTRY & EXIT RULES-DMI CROSSOVER SYSTEM (IF STOPS ADDED): BuyDMIx if BuyDMI and valrule(PlusDMI < MinusDMI,1). SellDMIx if SellDMI and valrule(PlusDMI > MinusDMI,1). ! ENTRY & EXIT RULES-COMBINDED SYSTEM (FOR ALTERNATE EXITS): BuyLE if Buy. SellSE if Sell. ExitLX if SellMA or SellDMI. ExitSX if BuyMA or BuyDMI. !! ADD MARKET TRENDFOLLOWING FILTER: OKtoBuy if SPXc > simpleavg(SPXc,mktLen) and valrule(SPXc > simpleavg(SPXc,mktLen),1). OKtoSell if SPXc < simpleavg(SPXc,mktLen) and valrule(SPXc < simpleavg(SPXc,mktLen),1). BuyMkt if Buy and OKtoBuy. ! FINAL SYSTEM SellMkt if Sell and OKtoSell. ! CODE FOR DMI: TR is max(Max(H-L,abs(H-C1)),abs(C1-L)). emaLen is 2 * dmiLen - 1. rH is (H-H1). rL is (L1-L). DMplus is iff(rH > 0 and rH > rL, rH, 0). DMminus is iff(rL > 0 and rL >= rH, rL, 0). avgPlusDM is expAvg(DMplus,emaLen). avgMinusDM is expavg(DMminus,emaLen). ATR is expAvg(TR,emaLen). PlusDMI is (AvgPlusDM/ATR)*100. !PLOT AS INDICATOR (2lines) MinusDMI is AvgMinusDM/ATR*100. !PLOT AS INDICATOR (2 lines) !AIQ MID TERM RELATIVE STRENGTH: MTL is 60. Q3m is MTL / 4. Q2m is (MTL - Q3m) / 3. Q1m is (MTL - Q2m - Q3m) / 2. Q0m is MTL - Q1m - Q2m - Q3m. ROCq3m is (val([close],Q2m,(Q1m+Q0m)) - val([open],Q3m,(Q2m+Q1m+Q0m))) / val([open],Q3m,(Q2m+Q1m+Q0m)) * 100. ROCq2m is (val([close],Q1m,Q0m) - val([open],Q2m,(Q1m+Q0m))) / val([open],Q2m,(Q1m+Q0m)) * 100. ROCq1m is (val([close],Q0m,0) - val([open],Q1m,Q0m)) / val([open],Q1m,Q0m) * 100. ROCq0m is ([close] - val([open],Q0m,0)) / val([open],Q0m,0) * 100. RS_AIQmt is ROCq0m * 0.40 + ROCq1m * 0.20 + ROCq2m * 0.20 + ROCq3m * 0.20. !AIQ SHORT TERM RELATIVE STRENGTH: STL is 30. Q3s is STL / 4. !! Code error discovered 6/28/06 was LTL / 4 Q2s is (STL - Q3s) / 3. Q1s is (STL - Q2s - Q3s) / 2. Q0s is STL - 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,Q0s)) / val([open],Q1s,Q0s) * 100. ROCq0s is ([close] - val([open],Q0s,0)) / val([open],Q0s,0) * 100. RS_AIQst is ROCq0s * 0.40 + ROCq1s * 0.20 + ROCq2s * 0.20 + ROCq3s * 0.20.  Rule Libraryÿÿ CCodeViewBuyMAÿÿ CReportViewÐSymbolÀ<SellMA€ÐSymbolÀ<BuyDMI€ÐSymbolÀ<SellDMI€ÐSymbolÀ<Buy€ÐSymbolÀ<Sell€ÐSymbolÀ<BuyLE€ÐSymbolÀ<SellSE€ÐSymbolÀ<BuyMAx€ÐSymbolÀ<SellMAx€ÐSymbolÀ<BuyDMIx€ÐSymbolÀ<SellDMIx€ÐSymbolÀ<BuyMkt€ÐSymbolÀ<SellMkt€ÐSymbolÀ<nas100ÿÿÿÿÿÿ CBackTestPropertyBuyMASellMAPPŸ  MA_DMI BuyMASPXPCCnas100 …ã@è„ã@ÿÿÿÿ à@…ã@€SellMABuyMAPPŸ  MA_DMI SellMASPXPCCnas100 …ã@è„ã@ÿÿÿÿ à@…ã@€BuyDMISellDMIPPŸ  MA_DMI BuyDMISPXPCCnas100 …ã@è„ã@ÿÿÿÿ à@…ã@€SellDMIBuyDMIPPŸ MA_DMI SellDMISPXPCCnas100 …ã@è„ã@ÿÿÿÿ à@…ã@€BuySellPPŸ  MA_DMI BuySPXPCCnas100 …ã@è„ã@ÿÿÿÿ à@…ã@€SellBuyPPŸ  MA_DMI SellSPXPCCnas100 …ã@è„ã@ÿÿÿÿ à@…ã@€BuyLEExitLXPPŸ  MA_DMI BuyLESPXPCCnas100 …ã@è„ã@ÿÿÿÿ à@…ã@€SellSEExitSXPPŸ  MA_DMI SellSESPXPCCnas100 …ã@è„ã@ÿÿÿÿ à@…ã@€BuyMAxExitLXPPŸ  MA_DMI BuyMAxSPXPCCnas100 …ã@è„ã@ÿÿÿÿ à@…ã@€SellMAxExitSXPPŸ MA_DMI SellMAxSPXPCCnas100 …ã@è„ã@ÿÿÿÿ à@…ã@€BuyDMIxExitLXPPŸ MA_DMI BuyDMIxSPXPCCnas100 …ã@è„ã@ÿÿÿÿ à@…ã@€SellDMIxExitSXPPŸ MA_DMI SellDMIxSPXPCCnas100 …ã@è„ã@ÿÿÿÿ à@…ã@€BuyMktSellPPŸ  MA_DMI BuyMktSPXPCCnas100 …ã@è„ã@ÿÿÿÿ à@…ã@€SellMktBuyPPŸ MA_DMI SellMktSPXPCCnas100 …ã@è„ã@ÿÿÿÿ à@…ã@00:00