Convert return series to price series

ret2tick accepts Data as a matrix, timetable, or table.


[TickSeries,TickTimes] = ret2tick(Data)
[TickSeries,TickTimes] = ret2tick(___,Name,Value)



[TickSeries,TickTimes] = ret2tick(Data) computes prices from the start prices of NASSET assets and NUMOBS return observations.


[TickSeries,TickTimes] = ret2tick(___,Name,Value) adds optional name-value pair arguments.


collapse all

Compute the price increase of two stocks over a year's time based on three incremental return observations.

RetSeries = [0.10 0.12
             0.05 0.04
            -0.05 0.05];

RetIntervals = [182 

StartTime = datetime('18-Dec-2000','Locale','en_US');

[TickSeries,TickTimes] = ret2tick(RetSeries,'ReturnIntervals',RetIntervals,... 
TickSeries = 4×2

    1.0000    1.0000
    1.1000    1.1200
    1.1550    1.1648
    1.0973    1.2230

TickTimes = 4x1 datetime array

Use timetable input to convert a price series to a return series, given periodic returns of two stocks observed in the first, second, third, and fourth quarters.

RetSeries = [0.10 0.12
             0.05 0.04
            -0.05 0.05];

RetTimes = datetime({'6/18/2001','9/17/2001','12/18/2001'},'InputFormat','MM/dd/uuuu','Locale','en_US');
RetSeries = array2timetable(RetSeries,'RowTimes',RetTimes);
StartTime = datetime('12/18/2000','InputFormat','MM/dd/uuuu','Locale','en_US');

[TickSeries,TickTimes] = ret2tick(RetSeries,'StartTime',StartTime)
TickSeries=4×3 timetable
       Time        RetSeries1    RetSeries2
    ___________    __________    __________

    18-Dec-2000           1             1  
    18-Jun-2001         1.1          1.12  
    17-Sep-2001       1.155        1.1648  
    18-Dec-2001      1.0973         1.223  

TickTimes = 4x1 datetime array

Input Arguments

collapse all

Data for asset returns, specified as a matrix, table, or timetable of NUMOBS-by-NASSETS asset returns. The returns are not normalized by the time increments between successive price observations.

Data Types: double | table | timetable

Name-Value Pair Arguments

Specify optional comma-separated pairs of Name,Value arguments. Name is the argument name and Value is the corresponding value. Name must appear inside quotes. You can specify several name and value pair arguments in any order as Name1,Value1,...,NameN,ValueN.

Example: [TickSeries,TickTimes] = ret2tick(RetSeries,'StartTime',StartTime)

Initial prices for each asset, specified as the comma-separated pair consisting of 'StartPrice' and a NASSETS-by-1 vector indicating initial prices for each asset, or a single scalar initial price applied to all assets.

Data Types: double

Return interval between prices, specified as the comma-separated pair consisting of 'ReturnIntervals' and a scalar return interval applied to all returns, or a vector of length NUMOBS return intervals between successive returns. ReturnIntervals is defined as:

ReturnIntervals(t) = TickTimes(t) - TickTimes(t-1).


If the type of Data is a timetable, ReturnIntervals is ignored.

Data Types: double

Starting time for first observation applied to the price series of all assets, specified as the comma-separated pair consisting of 'StartTime' and a scalar string, character vector, double, or datetime.


If ReturnIntervals is a duration or calendar duration value, the default for StartTime is datetime('today').

If Data is a timetable and StartTime is not specified, the resulting asset prices in the first period are not reported.

Data Types: double | string | char | datetime

Method to convert asset returns to prices, specified as the comma-separated pair consisting of 'Method' and a string or character vector indicating the method to convert asset prices to returns.

If the method is 'Simple', then simple periodic returns are used:

TTickSeries(t) = TickSeries(t-1)*(1 + ReturnSeries(t)).

If the method is 'Continuous', then continuous returns are used:

TickSeries(t) = TickSeries(t-1)*exp(ReturnSeries(t)).

Data Types: char | string

Output Arguments

collapse all

Time series array of asset prices, returned as NUMBOBS+1-by-NASSETS time series of asset prices of the same type (matrix, table, or timetable) as the input Data. The first row contains the oldest prices and the last row contains the most recent. Prices across a given row are assumed to occur at the same time for all columns, and each column is a price series of an individual asset.

Observation times associated with the prices in TickSeries, returned as a NUMBOBS+1 length column vector of monotonically increasing observation times associated with the prices in TickSeries. The initial time is StartTime. For matrix and table Data, sequential observations occur at increments specified in ReturnIntervals and for Data timetables, sequential observations are derived from times and dates in Data.

Extended Capabilities

Introduced before R2006a