DALE !! WILSON RELATIVE PRICE CHANNEL (WRP Channel) !! Author: Leon Wilson, TASC July 2006 ! Coded by: Richard Denning 05/09/2006 ! DEFINE PARAMETERS Define P1 34. ! RSI periods Define S1 1. ! Smoothing Define V2 70. ! Upper RSI value Define V3 30. ! Lower RSI value Define V4 55. ! Upper RSI neutral value Define V5 45. ! Lower RSI neutral value ! WILDER RSI INDICATOR C is [close]. C1 is val([close],1). U is C - C1. D is C1 - C. L1 is 2 * P1 - 1. AvgU is ExpAvg(iff(U>0,U,0),L1). AvgD is ExpAvg(iff(D>=0,D,0),L1). RSIw is 100-(100/(1+(AvgU/AvgD))). ! AIQ RSI INDICATOR (WRP Channel uses RSIe) AvgUe is ExpAvg(iff(U>0,U,0),P1). AvgDe is ExpAvg(iff(D>=0,D,0),P1). RSIe is 100-(100/(1+(AvgUe/AvgDe))). ! SET RSI TYPE RSI is RSIe. ! WRP CHANNEL OB is expavg(RSI - V2,S1). OS is expavg(RSI - V3,S1). NZU is expavg(RSI - V4,S1). NZL is expavg(RSI - V5,S1). OverS is C - (C * (OS/100)). OverB is C - (C * (OB/100)). NeutU is C - (C * (NZU/100)). NeutL is C - (C * (NZL/100)). ! TRADING SYSTEM USING WRP Channels LE if C > NeutL and valrule(C < NeutL,1). LE1 if C > NeutL and valrule(C < NeutL,1) and countof([ADX]<15,10)>=1. LE2 if C > NeutL and valrule(C < NeutL,1) and countof([ADX]>24,10)>=1. LX if (C < OverB and valrule(C > OverB,1)) or (C < NeutU and valrule(C > NeutU,1)) or countof(C < NeutL,2). !AIQ RELATIVE STRENGTH 1 length is 60. !60 !80 !120 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.20. !AIQ RELATIVE STRENGTH 2 lengths is 30. !20 !30 !240 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ÿÿ CCodeViewLEÿÿ CReportViewÐSymbolÀ<LE1€ÐSymbolÀ<LE2€ÐSymbolÀ<ÜSPNASþÿÿÿÿÿCBackTestPropertyLELX2PP£Ü&WRP Channel LENDXPSPNAS ÜÛ€LE1LX2PP£Ü&WRP Channel LE1SPXPSPNAS ÜÛ€LE2LX2PP£Ü&WRP Channel LE2SPXPSPNAS ÜÛ00:00