Showing posts with label check format and input data type. Show all posts
Showing posts with label check format and input data type. Show all posts

Monday, October 14, 2019

Check format and input data type

How to check format and input data type!
How to check format and input data


 Passing in a single column loses the row and column names
> x = checkData(edhec[,1])
> class(x)
[1] "xts" "zoo"
> head(x)
           Convertible Arbitrage
1997-01-31                0.0119
1997-02-28                0.0123
1997-03-31                0.0078
1997-04-30                0.0086
1997-05-31                0.0156
1997-06-30                0.0212
Include the "drop" attribute to keep row and column names
> x = checkData(TATAMOTORS.NS[,1,drop=FALSE])
> class(x)
[1] "xts" "zoo"
> head(x)
           TATAMOTORS.NS.Open
2004-01-01            86.8566
2004-01-02            87.7668
2004-01-05            87.7668
2004-01-06            88.1501
2004-01-07            86.5021
2004-01-08            86.0421
x = checkData(TATAMOTORS.NS, method = "matrix")
> class(x)
[1] "matrix"
> head(x)
           TATAMOTORS.NS.Open TATAMOTORS.NS.High
2004-01-01            86.8566            87.7477
2004-01-02            87.7668            88.2171
2004-01-05            87.7668            89.1082
2004-01-06            88.1501            89.1082
2004-01-07            86.5021            87.1344
2004-01-08            86.0421            89.4819
           TATAMOTORS.NS.Low TATAMOTORS.NS.Close
2004-01-01           86.5212             87.0865
2004-01-02           87.0099             87.4602
2004-01-05           86.3487             87.1632
2004-01-06           85.9463             87.0865
2004-01-07           83.9534             85.5535
2004-01-08           86.0421             89.0603
           TATAMOTORS.NS.Volume TATAMOTORS.NS.Adjusted
2004-01-01             10841713               34.68618
2004-01-02              8896231               34.83502
2004-01-05             11173816               34.71672
2004-01-06             12316118               34.68618
2004-01-07             19653589               34.07559
2004-01-08             10254370               35.47233
> x = checkData(TATAMOTORS.NS[,1], method = "vector")
> class(x)
[1] "numeric"
> head(x)
[1] 86.8566 87.7668 87.7668 88.1501 86.5021 86.0421

TATAMOTORS.NS contains missing values. Some functions will not work if objects contain missing values in the middle of the series. Consider using na.omit(), na.approx(), na.fill(), etc to remove or replace them. 
> ret <- dailyReturn(Cl(TATAMOTORS.NS), type='log')
Warning message:
In to_period(xx, period = on.opts[[period]], ...) :
  missing values removed from data
> x = checkData(TATAMOTORS.NS)
> class(x)
[1] "xts" "zoo"
> head(x)
           TATAMOTORS.NS.Open TATAMOTORS.NS.High
2004-01-01            86.8566            87.7477
2004-01-02            87.7668            88.2171
2004-01-05            87.7668            89.1082
2004-01-06            88.1501            89.1082
2004-01-07            86.5021            87.1344
2004-01-08            86.0421            89.4819
           TATAMOTORS.NS.Low TATAMOTORS.NS.Close
2004-01-01           86.5212             87.0865
2004-01-02           87.0099             87.4602
2004-01-05           86.3487             87.1632
2004-01-06           85.9463             87.0865
2004-01-07           83.9534             85.5535
2004-01-08           86.0421             89.0603
           TATAMOTORS.NS.Volume TATAMOTORS.NS.Adjusted
2004-01-01             10841713               34.68618
2004-01-02              8896231               34.83502
2004-01-05             11173816               34.71672
2004-01-06             12316118               34.68618
2004-01-07             19653589               34.07559
2004-01-08             10254370               35.47233
> tail(x)
           TATAMOTORS.NS.Open TATAMOTORS.NS.High
2019-10-03             112.65             123.50
2019-10-04             122.80             123.80
2019-10-07             120.25             120.55
2019-10-09             118.50             121.70
2019-10-10             119.30             119.70
2019-10-11             118.05             122.20
           TATAMOTORS.NS.Low TATAMOTORS.NS.Close
2019-10-03            112.65              122.40
2019-10-04            118.80              119.65
2019-10-07            116.35              117.50
2019-10-09            115.45              120.90
2019-10-10            116.20              116.80
2019-10-11            117.25              121.30
           TATAMOTORS.NS.Volume TATAMOTORS.NS.Adjusted
2019-10-03             65103359                 122.40
2019-10-04             35712218                 119.65
2019-10-07             35471184                 117.50
2019-10-09             44666296                 120.90
2019-10-10             31229192                 116.80
2019-10-11             41027561                 121.30
getSymbols("TATAMOTORS.NS", from="2004-01-01", to=Sys.Date())
[1] "TATAMOTORS.NS"
ret <- dailyReturn(Cl(TATAMOTORS.NS), type='log')
VaR(ret, p=.95, method="gaussian")
    daily.returns
VaR   -0.04438307
> VaR(ret, p=.95, method="historical")
    daily.returns
VaR   -0.04098419
> VaR(ret, p=.95, method="modified")
    daily.returns
VaR   -0.04362868
> VaR(ret, p=.99)
    daily.returns
VaR   -0.09353277
> VaR(ret, p=.01)
    daily.returns
VaR   -0.09353277
> VaR(ret, clean="boudt")
    daily.returns
VaR   -0.04184113
> VaR(ret, clean="boudt", portfolio_method="component")
no weights passed in, assuming equal weighted portfolio
$MVaR
[1] 0.04184765

$contribution
daily.returns 
   0.04184765 

$pct_contrib_MVaR
daily.returns 
            1 

Black-Scholes formula-R

 Black-Scholes formula-R > BlackScholes <- function(TypeFlag = c("c", "p"), S, X, Time, r, b, sigma) { TypeFla...