Code covered by the BSD License
-
Technical Analysis Tool
GUI for viewing simple technical analysis indicators for a time series.
-
axislocations_set(obj)
tatool helper function to set axes locations to their expected locations
-
axislocations_store(obj)
tatool helper function to store current axes locations and so that
-
bollingerul(data,period,nstd)
Function to calculate the upper and lower bollinger bands for a vector
-
cci(data,period)
Function to calculate the Commodity Channel Index of a data set
-
dema(data,period)
Function to calculate the double exponential moving average of a data set
-
dpo(data,period)
Function to calculate the detrended price oscillator of a data set.
-
ema(data,period)
Function to calculate the exponential moving average of a data set
-
etb(data,period,percent)
Function to calculate the envelopes(trading bands) for a data series
-
getclassfromworkspace(classna...
tatool helper function for getting the name of all variables of a
-
getvarfromworkspace(WS,varnam...
TATOOL helper function to get a variable with the given name from the
-
lri(data,period)
Function to calculate the linear regression indicator of a data set.
-
macd(data,p1,p2,p3)
-
momentum(data,period)
Function to calculate the Momentum of a data set
-
roc(data,period,format)
Function to calculate the Rate-of-Change of a data set
-
rsi(data,period)
Function to calculate the Relative Strength Index of a data set
-
sma(data,period)
Function to calculate the simple moving average of a data set
-
tatool(flag)
This is the entry point function to create a tatool, technical analysis
-
wildersmoothing(data,period)
Function to perform Wilder Smoothing on a data set
-
wma(data,period)
Function to calculate the weighted moving average of a data set
-
ALLFUNCTIONS.m
-
ReadMe.m
-
View all files
from
Technical Analysis Tool
by Phil Goddard
GUI for viewing various simple technical analysis indicators of a time series
|
| lri(data,period)
|
function out = lri(data,period)
% Function to calculate the linear regression indicator of a data set.
% (The end point of the regression not the slope)
% 'data' is the vector to operate on. The first element is assumed to be
% the oldest data.
% 'period' is the number of periods over which to calculate the indicator
%
% Example:
% out = lri(data,period)
%
% Error check
if nargin ~= 2
error([mfilename,' requires 2 inputs.']);
end
[m,n]=size(data);
if ~(m==1 || n==1)
error(['The data input to ',mfilename,' must be a vector.']);
end
if (numel(period) ~= 1) || (mod(period,1)~=0)
error('The period must be a scalar integer.');
end
if length(data) < period
error('The length of the data must be at least the specified ''period''.');
end
% ensure data is a column
if n~=1
data = data(:);
end
% preallocate the output
ld = length(data);
out = nan*ones(ld,1);
pinvX = pinv([(1:period)' ones(period,1)]);
% can't avoid a loop
for idx = period:ld
% solve y = mx+b
%mb = polyfit([1:period]',data(idx-period+1:idx),1);
%out(idx) = polyval(mb,period);
% The following is about 100 times faster than the above
out(idx) = [period 1]*pinvX*data(idx-period+1:idx);
end
|
|
Contact us