Skip to content

Commit

Permalink
Le grand blanc
Browse files Browse the repository at this point in the history
  • Loading branch information
TorsteinHonsi committed Mar 23, 2018
1 parent 80fb71a commit 88c0013
Show file tree
Hide file tree
Showing 155 changed files with 83,615 additions and 83,614 deletions.
2 changes: 0 additions & 2 deletions js/.eslintrc
Expand Up @@ -16,7 +16,6 @@
"consistent-return": 0,
"func-style": 0,
"guard-for-in": 0, /*@todo: Make the each function handle objects, then run a guarded for-in there.*/
"indent": ["error", "tab"],
"lines-around-comment": 0,
"max-len": [
"error", {
Expand All @@ -33,7 +32,6 @@
"no-multi-spaces": 0, /*Should be fixed*/
"no-nested-ternary": 0,
"no-shadow": 0, /*Same variable names in nested scopes. @todo: Fix this, it is useful*/
"no-trailing-spaces": 0,
"no-undefined": 0,
"no-underscore-dangle": 0, /*@todo: Check this*/
"object-curly-spacing": [2, "always"],
Expand Down
174 changes: 87 additions & 87 deletions js/indicators/accumulation-distribution.src.js
Expand Up @@ -6,108 +6,108 @@ var seriesType = H.seriesType;

// Utils:
function populateAverage(xVal, yVal, yValVolume, i) {
var high = yVal[i][1],
low = yVal[i][2],
close = yVal[i][3],
volume = yValVolume[i],
adY = close === high && close === low || high === low ?
0 :
((2 * close - low - high) / (high - low)) * volume,
adX = xVal[i];
return [adX, adY];
var high = yVal[i][1],
low = yVal[i][2],
close = yVal[i][3],
volume = yValVolume[i],
adY = close === high && close === low || high === low ?
0 :
((2 * close - low - high) / (high - low)) * volume,
adX = xVal[i];

return [adX, adY];
}

/**
* The AD series type.
*
* @constructor seriesTypes.ad
* @augments seriesTypes.sma
*/
seriesType('ad', 'sma',
/**
* Accumulation Distribution (AD). This series requires `linkedTo` option to
* be set.
*
* @extends {plotOptions.sma}
* @product highstock
* @sample {highstock} stock/indicators/accumulation-distribution
* Accumulation/Distribution indicator
* @since 6.0.0
* @optionparent plotOptions.ad
*/
{
params: {
/**
* The id of volume series which is mandatory.
* For example using OHLC data, volumeSeriesID='volume' means
* the indicator will be calculated using OHLC and volume values.
*
* @type {String}
* @since 6.0.0
* @product highstock
*/
volumeSeriesID: 'volume'
}
}, {
nameComponents: false,
nameBase: 'Accumulation/Distribution',
getValues: function (series, params) {
var period = params.period,
xVal = series.xData,
yVal = series.yData,
volumeSeriesID = params.volumeSeriesID,
volumeSeries = series.chart.get(volumeSeriesID),
yValVolume = volumeSeries && volumeSeries.yData,
yValLen = yVal ? yVal.length : 0,
AD = [],
xData = [],
yData = [],
len, i, ADPoint;
/**
* Accumulation Distribution (AD). This series requires `linkedTo` option to
* be set.
*
* @extends {plotOptions.sma}
* @product highstock
* @sample {highstock} stock/indicators/accumulation-distribution
* Accumulation/Distribution indicator
* @since 6.0.0
* @optionparent plotOptions.ad
*/
{
params: {
/**
* The id of volume series which is mandatory.
* For example using OHLC data, volumeSeriesID='volume' means
* the indicator will be calculated using OHLC and volume values.
*
* @type {String}
* @since 6.0.0
* @product highstock
*/
volumeSeriesID: 'volume'
}
}, {
nameComponents: false,
nameBase: 'Accumulation/Distribution',
getValues: function (series, params) {
var period = params.period,
xVal = series.xData,
yVal = series.yData,
volumeSeriesID = params.volumeSeriesID,
volumeSeries = series.chart.get(volumeSeriesID),
yValVolume = volumeSeries && volumeSeries.yData,
yValLen = yVal ? yVal.length : 0,
AD = [],
xData = [],
yData = [],
len, i, ADPoint;

if (xVal.length <= period && yValLen && yVal[0].length !== 4) {
return false;
}

if (!volumeSeries) {
return H.error(
'Series ' +
volumeSeriesID +
' not found! Check `volumeSeriesID`.',
true
);
}

if (xVal.length <= period && yValLen && yVal[0].length !== 4) {
return false;
}
// i = period <-- skip first N-points
// Calculate value one-by-one for each period in visible data
for (i = period; i < yValLen; i++) {

if (!volumeSeries) {
return H.error(
'Series ' +
volumeSeriesID +
' not found! Check `volumeSeriesID`.',
true
);
}

// i = period <-- skip first N-points
// Calculate value one-by-one for each period in visible data
for (i = period; i < yValLen; i++) {

len = AD.length;
ADPoint = populateAverage(xVal, yVal, yValVolume, i, period);

if (len > 0) {
ADPoint[1] += AD[len - 1][1];
ADPoint[1] = ADPoint[1];
}

AD.push(ADPoint);

xData.push(ADPoint[0]);
yData.push(ADPoint[1]);
}
len = AD.length;
ADPoint = populateAverage(xVal, yVal, yValVolume, i, period);

return {
values: AD,
xData: xData,
yData: yData
};
}
});
if (len > 0) {
ADPoint[1] += AD[len - 1][1];
ADPoint[1] = ADPoint[1];
}

AD.push(ADPoint);

xData.push(ADPoint[0]);
yData.push(ADPoint[1]);
}

return {
values: AD,
xData: xData,
yData: yData
};
}
});

/**
* A `AD` series. If the [type](#series.ad.type) option is not
* specified, it is inherited from [chart.type](#chart.type).
*
*
* @type {Object}
* @since 6.0.0
* @extends series,plotOptions.ad
Expand Down

0 comments on commit 88c0013

Please sign in to comment.