DALE!CONSTRUCTING THE PUT/CALL RATIO INDICATOR (MODIFIED VERSION) !Author: Sylvain Vervoort, TASC November 2011 !Coded by: Richard Denning 9/11/2011 !NOTE: THIS VERSION USES EXPONENTIAL RATHER THAN THE AUTHOR'S WEIGHTED AVERAGING !INPUTS: !For pcriFAST Indicator: emaF is 2. emaFAST is 5. rsiFAST is 5. movFAST is 5. !For pcriSLOW Indicator: emaS is 3. movSLOW is 1. !For invFISH Indicator: emaIF is 2. rsiFISH is 8. movFISH is 3. !For invSVEstoch Indicator: stochLen is 30. smoLen is 5. emaSVE is 2. !FORMULAS COMMON TO ALL THREE INDICATORS: C is [close]. PCR is tickerUDF("PCratio",C). PCRA is iff(PCR > 0.9,0.9,iff(PCR < 0.45,0.45,PCR)). !FAST PCRI: EMApc is expavg(PCRA,emaFAST). EMA_EMApc is expavg(EMApc,emaFAST). TEMApc is 3*EMApc - 3*EMA_EMApc + expavg(EMA_EMApc,emaFAST). 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. rsiLen1 is 2 * rsiFAST - 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))). pcriFAST is expavg(rsiPC,movFAST). !PLOT AS CUSTOM INDICATOR sDevPcri is sqrt(variance(pcriFAST,200)). UPpcri is simpleavg(pcriFAST,200) + 1.3*sDevPcri. DNpcri is simpleavg(pcriFAST,200) - 1.3*sDevPcri. !SLOW PCRI: 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. pcriSLOW is expavg(rbPCslow,movSLOW). !PLOT AS CUSTOM INDICATOR !iFISH PCRI: 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. pcriFISH is expavg(rbPCslowF,movFISH). !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. rsiLen2 is 2 * rsiFISH - 1. AvgUpF is expAvg(iff(UpF>0,UpF,0),rsiLen2). AvgDpF is expAvg(iff(DpF>=0,DpF,0),rsiLen2). rsiF is 100-(100/(1+(AvgUpF/AvgDpF))). X is 0.1*(rsiF-50). invFISH is ((exp(2*x)-1)/(exp(2*x)+1)+1)*50. !PLOT AS CUSTOM INDICATOR !INVERSE FISHER TRANSFORM STOCHASTIC OSCILLATOR: ma31 is expavg(C,emaSVE). ma32 is expavg(ma21,emaSVE). ma33 is expavg(ma22,emaSVE). ma34 is expavg(ma23,emaSVE). ma35 is expavg(ma24,emaSVE). ma36 is expavg(ma25,emaSVE). ma37 is expavg(ma26,emaSVE). ma38 is expavg(ma27,emaSVE). ma39 is expavg(ma28,emaSVE). ma40 is expavg(ma29,emaSVE). RBW is (5*ma31 + 4*ma32 + 3*ma33 + 2*ma34 + ma35 + ma36 + ma37 + ma38 + ma39 + ma40)/20. RBWstoch is (sum(RBW - lowresult(RBW,stochLen),smoLen) / (sum(highresult(RBW,stochLen) - lowresult(RBW,stochLen),smoLen)+0.0001)*100). Y is 0.1*(RBWstoch-50). IFTstoch is ((exp(2*y)-1)/(exp(2*y)+1)+1)*50. !PLOT AS CUSTOM INDICATOR !REPORT TABS: FAST if 1. SLOW if 1. iFISH if 1. iSVE if 1. !TRADING SYSTEM CODE: BuyIstoch if IFTstoch > 30. ExitBuy if IFTstoch < 60. ShortIstoch if IFTstoch < 60 and C < simpleavg(C,165). ExitShort if IFTstoch > 30. Rule Library CCodeView BuyIstoch CReportViewSymbol< ShortIstochSymbol<FASTSymbol<PCROPCRAO pcriFASTOaAAPL(\?(\? BBADBE(\?(\? BBADP(\?(\? BBADSK(\?(\? BBALTR(\?(\? BBAMAT(\?(\? BBAMGN(\?(\? BBAMZN(\?(\? BBAPOL(\?(\? BBATVI(\?(\? BBBBBY(\?(\? BBBIDU(\?(\? BBBIIB(\?(\? BBBMC(\?(\? BBBRCM(\?(\? BBCA(\?(\? BBCELG(\?(\? BBCEPH(\?(\? BBCERN(\?(\? BBCHKP(\?(\? BBCHRW(\?(\? BBCMCSA(\?(\? BBCOST(\?(\? BBCSCO(\?(\? BBCTAS(\?(\? BBCTSH(\?(\? BBCTXS(\?(\? BBDELL(\?(\? BBDISH(\?(\? BBDTV(\?(\? BBEBAY(\?(\? BBERTS(\?(\? BBESRX(\?(\? BBEXPD(\?(\? BBEXPE(\?(\? BBFAST(\?(\? BBFISV(\?(\? BBFLEX(\?(\? BBFLIR(\?(\? BBFSLR(\?(\? BBFWLT(\?(\? BBGILD(\?(\? BBGOOG(\?(\? BBGRMN(\?(\? BBHOLX(\?(\? BBHSIC(\?(\? BBILMN(\?(\? BBINFY(\?(\? BBINTC(\?(\? BBINTU(\?(\? BBISRG(\?(\? BBJBHT(\?(\? BBJOYG(\?(\? BBKLAC(\?(\? BBLIFE(\?(\? BBLINTA(\?(\? BBLLTC(\?(\? BBLOGI(\?(\? BBLRCX(\?(\? BBMAT(\?(\? BBMCHP(\?(\? BBMRVL(\?(\? BBMSFT(\?(\? BBMXIM(\?(\? BBMYL(\?(\? BBNIHD(\?(\? BBNTAP(\?(\? BBNVDA(\?(\? BBORCL(\?(\? BBORLY(\?(\? BBPAYX(\?(\? BBPCAR(\?(\? BBPCLN(\?(\? BBPDCO(\?(\? BBQCOM(\?(\? BBQGEN(\?(\? BBRIMM(\?(\? BBROST(\?(\? BBSBUX(\?(\? BBSHLD(\?(\? BBSIAL(\?(\? BBSNDK(\?(\? BBSPLS(\?(\? BBSRCL(\?(\? BBSTX(\?(\? BBSYMC(\?(\? BBTEVA(\?(\? BBURBN(\?(\? BBVMED(\?(\? BBVOD(\?(\? BBVRSN(\?(\? BBVRTX(\?(\? BBWCRX(\?(\? BBWYNN(\?(\? BBXLNX(\?(\? BBXRAY(\?(\? BBYHOO(\?(\? BBSLOWSymbol<PCROPCRAO pcriSLOWOaAAPL(\?(\?QBADBE(\?(\?QBADP(\?(\?QBADSK(\?(\?QBALTR(\?(\?QBAMAT(\?(\?QBAMGN(\?(\?QBAMZN(\?(\?QBAPOL(\?(\?QBATVI(\?(\?QBBBBY(\?(\?QBBIDU(\?(\?QBBIIB(\?(\?QBBMC(\?(\?QBBRCM(\?(\?QBCA(\?(\?QBCELG(\?(\?QBCEPH(\?(\?QBCERN(\?(\?QBCHKP(\?(\?QBCHRW(\?(\?QBCMCSA(\?(\?QBCOST(\?(\?QBCSCO(\?(\?QBCTAS(\?(\?QBCTSH(\?(\?QBCTXS(\?(\?QBDELL(\?(\?QBDISH(\?(\?QBDTV(\?(\?QBEBAY(\?(\?QBERTS(\?(\?QBESRX(\?(\?QBEXPD(\?(\?QBEXPE(\?(\?QBFAST(\?(\?QBFISV(\?(\?QBFLEX(\?(\?QBFLIR(\?(\?QBFSLR(\?(\?QBFWLT(\?(\?QBGILD(\?(\?QBGOOG(\?(\?QBGRMN(\?(\?QBHOLX(\?(\?QBHSIC(\?(\?QBILMN(\?(\?QBINFY(\?(\?QBINTC(\?(\?QBINTU(\?(\?QBISRG(\?(\?QBJBHT(\?(\?QBJOYG(\?(\?QBKLAC(\?(\?QBLIFE(\?(\?QBLINTA(\?(\?QBLLTC(\?(\?QBLOGI(\?(\?QBLRCX(\?(\?QBMAT(\?(\?QBMCHP(\?(\?QBMRVL(\?(\?QBMSFT(\?(\?QBMXIM(\?(\?QBMYL(\?(\?QBNIHD(\?(\?QBNTAP(\?(\?QBNVDA(\?(\?QBORCL(\?(\?QBORLY(\?(\?QBPAYX(\?(\?QBPCAR(\?(\?QBPCLN(\?(\?QBPDCO(\?(\?QBQCOM(\?(\?QBQGEN(\?(\?QBRIMM(\?(\?QBROST(\?(\?QBSBUX(\?(\?QBSHLD(\?(\?QBSIAL(\?(\?QBSNDK(\?(\?QBSPLS(\?(\?QBSRCL(\?(\?QBSTX(\?(\?QBSYMC(\?(\?QBTEVA(\?(\?QBURBN(\?(\?QBVMED(\?(\?QBVOD(\?(\?QBVRSN(\?(\?QBVRTX(\?(\?QBWCRX(\?(\?QBWYNN(\?(\?QBXLNX(\?(\?QBXRAY(\?(\?QBYHOO(\?(\?QBiFISHSymbol<PCROPCRAO pcriFISHORSIfishOinvFISHOaAAPL(\?(\?ΐBAVBADBE(\?(\?ΐBAVBADP(\?(\?ΐBAVBADSK(\?(\?ΐBAVBALTR(\?(\?ΐBAVBAMAT(\?(\?ΐBAVBAMGN(\?(\?ΐBAVBAMZN(\?(\?ΐBAVBAPOL(\?(\?ΐBAVBATVI(\?(\?ΐBAVBBBBY(\?(\?ΐBAVBBIDU(\?(\?ΐBAVBBIIB(\?(\?ΐBAVBBMC(\?(\?ΐBAVBBRCM(\?(\?ΐBAVBCA(\?(\?ΐBAVBCELG(\?(\?ΐBAVBCEPH(\?(\?ΐBAVBCERN(\?(\?ΐBAVBCHKP(\?(\?ΐBAVBCHRW(\?(\?ΐBAVBCMCSA(\?(\?ΐBAVBCOST(\?(\?ΐBAVBCSCO(\?(\?ΐBAVBCTAS(\?(\?ΐBAVBCTSH(\?(\?ΐBAVBCTXS(\?(\?ΐBAVBDELL(\?(\?ΐBAVBDISH(\?(\?ΐBAVBDTV(\?(\?ΐBAVBEBAY(\?(\?ΐBAVBERTS(\?(\?ΐBAVBESRX(\?(\?ΐBAVBEXPD(\?(\?ΐBAVBEXPE(\?(\?ΐBAVBFAST(\?(\?ΐBAVBFISV(\?(\?ΐBAVBFLEX(\?(\?ΐBAVBFLIR(\?(\?ΐBAVBFSLR(\?(\?ΐBAVBFWLT(\?(\?ΐBAVBGILD(\?(\?ΐBAVBGOOG(\?(\?ΐBAVBGRMN(\?(\?ΐBAVBHOLX(\?(\?ΐBAVBHSIC(\?(\?ΐBAVBILMN(\?(\?ΐBAVBINFY(\?(\?ΐBAVBINTC(\?(\?ΐBAVBINTU(\?(\?ΐBAVBISRG(\?(\?ΐBAVBJBHT(\?(\?ΐBAVBJOYG(\?(\?ΐBAVBKLAC(\?(\?ΐBAVBLIFE(\?(\?ΐBAVBLINTA(\?(\?ΐBAVBLLTC(\?(\?ΐBAVBLOGI(\?(\?ΐBAVBLRCX(\?(\?ΐBAVBMAT(\?(\?ΐBAVBMCHP(\?(\?ΐBAVBMRVL(\?(\?ΐBAVBMSFT(\?(\?ΐBAVBMXIM(\?(\?ΐBAVBMYL(\?(\?ΐBAVBNIHD(\?(\?ΐBAVBNTAP(\?(\?ΐBAVBNVDA(\?(\?ΐBAVBORCL(\?(\?ΐBAVBORLY(\?(\?ΐBAVBPAYX(\?(\?ΐBAVBPCAR(\?(\?ΐBAVBPCLN(\?(\?ΐBAVBPDCO(\?(\?ΐBAVBQCOM(\?(\?ΐBAVBQGEN(\?(\?ΐBAVBRIMM(\?(\?ΐBAVBROST(\?(\?ΐBAVBSBUX(\?(\?ΐBAVBSHLD(\?(\?ΐBAVBSIAL(\?(\?ΐBAVBSNDK(\?(\?ΐBAVBSPLS(\?(\?ΐBAVBSRCL(\?(\?ΐBAVBSTX(\?(\?ΐBAVBSYMC(\?(\?ΐBAVBTEVA(\?(\?ΐBAVBURBN(\?(\?ΐBAVBVMED(\?(\?ΐBAVBVOD(\?(\?ΐBAVBVRSN(\?(\?ΐBAVBVRTX(\?(\?ΐBAVBWCRX(\?(\?ΐBAVBWYNN(\?(\?ΐBAVBXLNX(\?(\?ΐBAVBXRAY(\?(\?ΐBAVBYHOO(\?(\?ΐBAVBiSVESymbol<PCROPCRAO pcriFISHORSIfishOinvFISHO IFTstochOaAAPL(\?(\?ΐBAVB@ADBE(\?(\?ΐBAVB@ADP(\?(\?ΐBAVB@ADSK(\?(\?ΐBAVB& @ALTR(\?(\?ΐBAVB@AMAT(\?(\?ΐBAVBb$AAMGN(\?(\?ΐBAVB[˕AAMZN(\?(\?ΐBAVB\*BAPOL(\?(\?ΐBAVB.,@ATVI(\?(\?ΐBAVB5L7ABBBY(\?(\?ΐBAVBTABIDU(\?(\?ΐBAVB^?BIIB(\?(\?ΐBAVB@BMC(\?(\?ΐBAVB]@BRCM(\?(\?ΐBAVBAACA(\?(\?ΐBAVBvACELG(\?(\?ΐBAVB=#ACEPH(\?(\?ΐBAVBߐgACERN(\?(\?ΐBAVBtACHKP(\?(\?ΐBAVB@CHRW(\?(\?ΐBAVBb*@CMCSA(\?(\?ΐBAVB׎@COST(\?(\?ΐBAVBACSCO(\?(\?ΐBAVB4QACTAS(\?(\?ΐBAVBK)ACTSH(\?(\?ΐBAVB&?CTXS(\?(\?ΐBAVB4>DELL(\?(\?ΐBAVBADISH(\?(\?ΐBAVB@DTV(\?(\?ΐBAVB@EBAY(\?(\?ΐBAVB~@ERTS(\?(\?ΐBAVB,[AESRX(\?(\?ΐBAVB@EXPD(\?(\?ΐBAVB怕@EXPE(\?(\?ΐBAVB3VAFAST(\?(\?ΐBAVBR6AFISV(\?(\?ΐBAVBv`<@FLEX(\?(\?ΐBAVB""AFLIR(\?(\?ΐBAVB AFSLR(\?(\?ΐBAVBJ<FWLT(\?(\?ΐBAVB@GILD(\?(\?ΐBAVBV@GOOG(\?(\?ΐBAVB<GRMN(\?(\?ΐBAVB4KAHOLX(\?(\?ΐBAVB,@HSIC(\?(\?ΐBAVBI@ILMN(\?(\?ΐBAVBVd?INFY(\?(\?ΐBAVBLN?INTC(\?(\?ΐBAVBH@INTU(\?(\?ΐBAVBAISRG(\?(\?ΐBAVBb_BJBHT(\?(\?ΐBAVBrE@JOYG(\?(\?ΐBAVB?KLAC(\?(\?ΐBAVB][@LIFE(\?(\?ΐBAVBJT@LINTA(\?(\?ΐBAVB`:ALLTC(\?(\?ΐBAVBDALOGI(\?(\?ΐBAVB&WALRCX(\?(\?ΐBAVBd@MAT(\?(\?ΐBAVB@fAMCHP(\?(\?ΐBAVBAMRVL(\?(\?ΐBAVBw AMSFT(\?(\?ΐBAVB;AMXIM(\?(\?ΐBAVBCAMYL(\?(\?ΐBAVB@NIHD(\?(\?ΐBAVBr@NTAP(\?(\?ΐBAVBp`?NVDA(\?(\?ΐBAVB͕=AORCL(\?(\?ΐBAVB$@ORLY(\?(\?ΐBAVB>BPAYX(\?(\?ΐBAVB|@PCAR(\?(\?ΐBAVB@PCLN(\?(\?ΐBAVB[BPDCO(\?(\?ΐBAVBf@QCOM(\?(\?ΐBAVB@QGEN(\?(\?ΐBAVB@RIMM(\?(\?ΐBAVBK2BROST(\?(\?ΐBAVBDASBUX(\?(\?ΐBAVBގ?ASHLD(\?(\?ΐBAVB>SIAL(\?(\?ΐBAVB|@SNDK(\?(\?ΐBAVB@SPLS(\?(\?ΐBAVBASRCL(\?(\?ΐBAVBASTX(\?(\?ΐBAVBOL@SYMC(\?(\?ΐBAVBO@TEVA(\?(\?ΐBAVB@URBN(\?(\?ΐBAVBI>@VMED(\?(\?ΐBAVBLCAVOD(\?(\?ΐBAVB~ !AVRSN(\?(\?ΐBAVB]AVRTX(\?(\?ΐBAVB`)AWCRX(\?(\?ΐBAVBup@WYNN(\?(\?ΐBAVBX9AXLNX(\?(\?ΐBAVBR AXRAY(\?(\?ΐBAVB]@YHOO(\?(\?ΐBAVB1XAM NAS100 CBackTestProperty BuyIstochExitBuyPP0PC Ratio Mod2 BuyIstochSPXPCCNAS100 @@@@ ShortIstoch ExitShortPPPC Ratio Mod2 ShortIstochSPXPNAS100 @@@@00:00