[R-SIG-Finance] (TTR) chaikinVolatility problems

Joshua Ulrich josh.m.ulrich at gmail.com
Mon Sep 14 22:25:32 CEST 2009


Hi Mark,

The limitation is in the way the indicator is constructed.  It
measures the rate of change of the trading range.  It's failing
because, at least for the observations you've shown, the trading range
is *zero*.  Please report back if you still have issues if you apply
the indicator over values with non-zero differences.

HTH,
Josh
--
http://www.fosstrading.com



On Mon, Sep 14, 2009 at 3:11 PM, Mark Knecht <markknecht at gmail.com> wrote:
> Hi,
>   I'm wondering if there are any know limitations with the TTR
> chaikinVolatility function I should be aware of. I've got a small
> application I've been writing in R that uses it. I debugged the app
> using weekly data for the SPX, DJI, Nasdaq and Russell going back as
> far as TradeStation would give me data. Everything worked great.
> However when I switched to SPX daily data the indicator fails for the
> first 1/3 to 1/2 of the data. (Roughly 12400 days) Looking into the
> data output of the indicator I see this:
>
>  [4465]  0.00  0.00  0.00  0.00  0.00  0.00  0.00  0.00  0.00  0.00
> 0.00  0.00  0.00  0.00  0.00  0.00  0.00  0.00
>  [4483]  0.00  0.00  0.00  0.00  0.00  0.00  0.00  0.00  0.00  0.00
> 0.00  0.00  0.00  0.00  0.00  0.00  0.00  0.00
>  [4501]  0.00  0.00  0.00  0.00  0.00  0.00  0.00  0.00  0.00  0.00
> 0.00   Inf   Inf   Inf   Inf   Inf   Inf   Inf
>  [4519]   Inf   Inf   Inf   Inf   Inf   Inf  3.83  1.75  0.78  0.46
> 0.35  0.20  0.15  0.12  0.12  0.12  0.09  0.03
>  [4537]  0.01  0.05  0.03  0.02  0.00 -0.04 -0.03 -0.06 -0.07 -0.09
> -0.13 -0.12 -0.07 -0.02 -0.02 -0.01 -0.02  0.01
>  [4555] -0.01 -0.01 -0.01 -0.01  0.04  0.08  0.11  0.09  0.04  0.06
> 0.06  0.10  0.08  0.07  0.05  0.07  0.04 -0.03
>
>   After the indicator starts working it continues to work, but it's
> all 0.00 back to the beginning except for these few Inf's in the
> middle.
>
>   When I broke the code out to try to debug it before I wrote this
> email I got somewhat different results with NaN's:
>
>> head(TradeSystem, n=40)
>         Date Time  Open  High   Low Close  Vol OI FastAvg SlowAvg
> MyDate ChVol
> 1  01/04/1960 1300 59.91 59.91 59.91 59.91 3988  0       0       0
> 1960-01-04    NA
> 2  01/05/1960 1300 60.39 60.39 60.39 60.39 3712  0       0       0
> 1960-01-05    NA
> 3  01/06/1960 1300 60.13 60.13 60.13 60.13 3730  0       0       0
> 1960-01-06    NA
> 4  01/07/1960 1300 59.69 59.69 59.69 59.69 3311  0       0       0
> 1960-01-07    NA
> 5  01/08/1960 1300 59.50 59.50 59.50 59.50 3287  0       0       0
> 1960-01-08    NA
> 6  01/11/1960 1300 58.77 58.77 58.77 58.77 3466  0       0       0
> 1960-01-11    NA
> 7  01/12/1960 1300 58.41 58.41 58.41 58.41 3764  0       0       0
> 1960-01-12    NA
> 8  01/13/1960 1300 58.08 58.08 58.08 58.08 3468  0       0       0
> 1960-01-13    NA
> 9  01/14/1960 1300 58.40 58.40 58.40 58.40 3560  0       0       0
> 1960-01-14    NA
> 10 01/15/1960 1300 58.38 58.38 58.38 58.38 3422  0       0       0
> 1960-01-15    NA
> 11 01/18/1960 1300 57.89 57.89 57.89 57.89 3019  0       0       0
> 1960-01-18    NA
> 12 01/19/1960 1300 57.27 57.27 57.27 57.27 3096  0       0       0
> 1960-01-19    NA
> 13 01/20/1960 1300 57.07 57.07 57.07 57.07 2717  0       0       0
> 1960-01-20    NA
> 14 01/21/1960 1300 57.21 57.21 57.21 57.21 2697  0       0       0
> 1960-01-21    NA
> 15 01/22/1960 1300 57.38 57.38 57.38 57.38 2690  0       0       0
> 1960-01-22    NA
> 16 01/25/1960 1300 56.78 56.78 56.78 56.78 2793  0       0       0
> 1960-01-25    NA
> 17 01/26/1960 1300 56.86 56.86 56.86 56.86 3062  0       0       0
> 1960-01-26    NA
> 18 01/27/1960 1300 56.72 56.72 56.72 56.72 2463  0       0       0
> 1960-01-27    NA
> 19 01/28/1960 1300 56.13 56.13 56.13 56.13 2627  0       0       0
> 1960-01-28    NA
> 20 01/29/1960 1300 55.61 55.61 55.61 55.61 3061  0       0       0
> 1960-01-29    NA
> 21 02/01/1960 1300 55.96 55.96 55.96 55.96 2825  0       0       0
> 1960-02-01    NA
> 22 02/02/1960 1300 56.82 56.82 56.82 56.82 3077  0       0       0
> 1960-02-02    NA
> 23 02/03/1960 1300 56.32 56.32 56.32 56.32 3022  0       0       0
> 1960-02-03    NA
> 24 02/04/1960 1300 56.27 56.27 56.27 56.27 2617  0       0       0
> 1960-02-04    NA
> 25 02/05/1960 1300 55.98 55.98 55.98 55.98 2535  0       0       0
> 1960-02-05    NA
> 26 02/08/1960 1300 55.32 55.32 55.32 55.32 3348  0       0       0
> 1960-02-08   NaN
> 27 02/09/1960 1300 55.84 55.84 55.84 55.84 2859  0       0       0
> 1960-02-09   NaN
> 28 02/10/1960 1300 55.49 55.49 55.49 55.49 2441  0       0       0
> 1960-02-10   NaN
> 29 02/11/1960 1300 55.18 55.18 55.18 55.18 2606  0       0       0
> 1960-02-11   NaN
> 30 02/12/1960 1300 55.46 55.46 55.46 55.46 2229  0       0       0
> 1960-02-12   NaN
> 31 02/15/1960 1300 55.17 55.17 55.17 55.17 2772  0       0       0
> 1960-02-15   NaN
> 32 02/16/1960 1300 54.73 54.73 54.73 54.73 3278  0       0       0
> 1960-02-16   NaN
> 33 02/17/1960 1300 55.03 55.03 55.03 55.03 4208  0       0       0
> 1960-02-17   NaN
> 34 02/18/1960 1300 55.80 55.80 55.80 55.80 3798  0       0       0
> 1960-02-18   NaN
> 35 02/19/1960 1300 56.24 56.24 56.24 56.24 3234  0       0       0
> 1960-02-19   NaN
> 36 02/23/1960 1300 55.94 55.94 55.94 55.94 2960  0       0       0
> 1960-02-23   NaN
> 37 02/24/1960 1300 55.74 55.74 55.74 55.74 2744  0       0       0
> 1960-02-24   NaN
> 38 02/25/1960 1300 55.93 55.93 55.93 55.93 3601  0       0       0
> 1960-02-25   NaN
> 39 02/26/1960 1300 56.16 56.16 56.16 56.16 3384  0       0       0
> 1960-02-26   NaN
> 40 02/29/1960 1300 56.12 56.12 56.12 56.12 2994  0       0       0
> 1960-02-29   NaN
>>
>
>   The data came from TradeStation. It looks OK to me visually. The
> code stub I'm using follows. I could possibly post the data somewhere
> if necessary.
>
> Thanks,
> Mark
>
>
> require(chron)
> require(ggplot2)
> require(quantmod)
> require(reshape)
> require(TTR)
>
> AbsLookback = 13
>
> TradeSystem = read.csv("C:\\MiningData\\SPX_Daily.txt",header=TRUE)
> #TradeSystem = read.csv("C:\\MiningData\\SPX_Weekly.txt",header=TRUE)
> #TradeSystem = read.csv("C:\\MiningData\\INDU_Weekly.txt",header=TRUE)
> #TradeSystem = read.csv("C:\\MiningData\\NDX_Weekly.txt",header=TRUE)
> #TradeSystem = read.csv("C:\\MiningData\\RUT_Weekly.txt",header=TRUE)
>
> TradeSystem$MyDate = as.Date(TradeSystem$Date, "%m/%d/%Y")
>
> CVol = data.frame(chaikinVolatility(TradeSystem[,c("High","Low")],
> n=AbsLookback))
> names(CVol)[1]="ChVol"
>
> TradeSystem$ChVol = round(CVol$ChVol, 2)
>
> _______________________________________________
> R-SIG-Finance at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-sig-finance
> -- Subscriber-posting only.
> -- If you want to post, subscribe first.
>



More information about the R-SIG-Finance mailing list