fixed libs
This commit is contained in:
parent
528be93804
commit
5cd24ade09
6 changed files with 29 additions and 420 deletions
|
|
@ -1537,31 +1537,6 @@ export function twiggsMoneyFlow(ohlcv: OHLCVData[]): number[] {
|
|||
return twiggsMoneyFlowValues;
|
||||
}
|
||||
|
||||
/**
|
||||
* Ulcer Index
|
||||
* Measures downside risk
|
||||
*/
|
||||
export function ulcerIndex(prices: number[], period: number = 14): number[] {
|
||||
const ulcerIndexValues: number[] = [];
|
||||
|
||||
for (let i = period; i < prices.length; i++) {
|
||||
let sumOfSquaredPercentDrawdowns = 0;
|
||||
for (let j = i - period + 1; j <= i; j++) {
|
||||
let highestPrice = prices[i - period];
|
||||
for (let k = i - period + 1; k <= j; k++) {
|
||||
if (prices[k] > highestPrice) {
|
||||
highestPrice = prices[k];
|
||||
}
|
||||
}
|
||||
const percentDrawdown = (prices[j] - highestPrice) / highestPrice * 100;
|
||||
sumOfSquaredPercentDrawdowns += Math.pow(percentDrawdown, 2);
|
||||
}
|
||||
const ulcerIndexValue = Math.sqrt(sumOfSquaredPercentDrawdowns / period);
|
||||
ulcerIndexValues.push(ulcerIndexValue);
|
||||
}
|
||||
|
||||
return ulcerIndexValues;
|
||||
}
|
||||
|
||||
/**
|
||||
* Relative Strength
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue