DALE† !CONSTRUCTING THE PUT/CALL RATIO INDICATOR (MODIFIED VERSION) !Author: Sylvain Vervoort, TASC November 2011 !Coded by: Richard Denning 9/11/2011 emaFAST is 5. movSLOW is 1. movFISH is 3. C is [close]. PCR is tickerUDF("PCratio",C). PCRA is iff(PCR > 0.9,0.9,iff(PCR < 0.45,0.45,PCR)). EMApc is expavg(PCRA,emaFAST). EMA_EMApc is expavg(EMApc,emaFAST). TEMApc is 3*EMApc - 3*EMA_EMApc + expavg(EMA_EMApc,emaFAST). emaF is 2. ma1 is expavg(TEMApc,emaF). ma2 is expavg(ma1,emaF). ma3 is expavg(ma2,emaF). ma4 is expavg(ma3,emaF). ma5 is expavg(ma4,emaF). ma6 is expavg(ma5,emaF). ma7 is expavg(ma6,emaF). ma8 is expavg(ma7,emaF). ma9 is expavg(ma8,emaF). ma10 is expavg(ma9,emaF). rainbPC is (ma1 + ma2 + ma3 + ma4 + ma5 + ma6 + ma7 + ma8 + ma9 + ma10)/10. !RSI WILDER OF rainbPC: !To convert Wilder Averaging to Exponential Averaging use this formula: !ExponentialPeriods = 2 * WilderPeriod - 1. U is rainbPC - valresult(rainbPC,1). D is valresult(rainbPC,1) - rainbPC. W1 is 5. rsiLen1 is 2 * W1 - 1. AvgU is ExpAvg(iff(U>0,U,0),rsiLen1). AvgD is ExpAvg(iff(D>=0,D,0),rsiLen1). rsiPC is 100-(100/(1+(AvgU/AvgD))). !FAST PCRI: pcriFAST is (5*rsiPC + 4*valresult(rsiPC,1) + 3*valresult(rsiPC,2) + 2*valresult(rsiPC,3) + 1*valresult(rsiPC,4))/15. sDevPcri is sqrt(variance(pcriFAST,200)). UPpcri is simpleavg(pcriFAST,200) + 1.3*sDevPcri. DNpcri is simpleavg(pcriFAST,200) - 1.3*sDevPcri. !SLOW PCRI: emaS is 3. ma11 is expavg(PCRA*100,emaS). ma12 is expavg(ma11,emaS). ma13 is expavg(ma12,emaS). ma14 is expavg(ma13,emaS). ma15 is expavg(ma14,emaS). ma16 is expavg(ma15,emaS). ma17 is expavg(ma16,emaS). ma18 is expavg(ma17,emaS). ma19 is expavg(ma18,emaS). ma20 is expavg(ma19,emaS). rbPCslow is (ma11 + ma12 + ma13 + ma14 + ma15 + ma16 + ma17 + ma18 + ma19 + ma20)/10. pcriS2 is expavg(rbPCslow,2). pcriS3 is expavg(rbPCslow,3). pcriS4 is expavg(rbPCslow,4). pcriS5 is expavg(rbPCslow,5). pcriS6 is expavg(rbPCslow,6). pcriSLOW is iff(movSLOW=1,rbPCslow,iff(movSLOW=2,pcriS2,iff(movSLOW=3,pcriS3,iff(movSLOW=4,pcriS4,iff(movSLOW=5,pcriS5,iff(movSLOW=6,pcriS6,pcriS6)))))). !IFISH PCRI: emaIF is 2. ma21 is expavg(PCRA*100,emaIF). ma22 is expavg(ma21,emaIF). ma23 is expavg(ma22,emaIF). ma24 is expavg(ma23,emaIF). ma25 is expavg(ma24,emaIF). ma26 is expavg(ma25,emaIF). ma27 is expavg(ma26,emaIF). ma28 is expavg(ma27,emaIF). ma29 is expavg(ma28,emaIF). ma30 is expavg(ma29,emaIF). rbPCslowF is (ma21 + ma22 + ma23 + ma24 + ma25 + ma26 + ma27 + ma28 + ma29 + ma30)/10. pcriSF2 is expavg(rbPCslowF,2). pcriSF3 is expavg(rbPCslowF,3). pcriSF4 is expavg(rbPCslowF,4). pcriSF5 is expavg(rbPCslowF,5). pcriSF6 is expavg(rbPCslowF,6). pcriFISH is iff(movFISH=1,rbPCslowF,iff(movFISH=2,pcriSF2,iff(movFISH=3,pcriSF3,iff(movFISH=4,pcriSF4,iff(movFISH=5,pcriSF5,iff(movFISH=6,pcriSF6,pcriSF6)))))). !RSI WILDER OF pcriFISH: !To convert Wilder Averaging to Exponential Averaging use this formula: !ExponentialPeriods = 2 * WilderPeriod - 1. UpF is pcriFISH - valresult(pcriFISH,1). DpF is valresult(pcriFISH,1) - pcriFISH. W2 is 8. rsiLen2 is 2 * W2 - 1. AvgUpF is ExpAvg(iff(UpF>0,UpF,0),rsiLen2). AvgDpF is ExpAvg(iff(DpF>=0,DpF,0),rsiLen2). RSIfish is 100-(100/(1+(AvgUpF/AvgDpF))). X is 0.1*(RSIfish-50). invFISH is ((exp(2*x)-1)/(exp(2*x)+1)+1)*50. FAST if symbol() = "PCratio". SLOW if symbol() = "PCratio". iFISH if symbol() = "PCratio".  Rule Libraryÿÿ CCodeViewFASTÿÿ CReportViewÐSymbolÀ<¡PCRÀO¡PCRAÀO ¡pcriFASTÀOPCRATIOö(\?ö(\?†RBSLOW€ÐSymbolÀ<¡PCRÀO¡PCRAÀO ¡pcriSLOWÀOPCRATIOö(\?ö(\?•9”BiFISH€ÐSymbolÀ<¡PCRÀO¡PCRAÀO ¡pcriFISHÀO¡RSIfishÀO¡invFISHÀOPCRATIOö(\?ö(\?9;?,ïB"#n@M ÿÿÿÿ00:00