Средният насочен индекс (ADX) е технически индикатор, използван за измерване на силата на тенденция на финансов пазар. Това е индикатор, следващ тенденцията, който може да се използва за идентифициране дали даден пазар е в тенденция или варира, както и силата на тенденцията.
За да изчислите ADX с помощта на JavaScript, ще трябва да изпълните следните стъпки:
- Първо ще трябва да изчислите стойностите +DI и -DI, като използвате следните формули:
+DI = 100 * (PDI / TR) -DI = 100 * (MDI / TR)
Където PDI е индикаторът за положителна посока, MDI е индикаторът за отрицателна посока, а TR е истинският диапазон.
2. След това ще трябва да изчислите стойността на ADX, като използвате следната формула:
ADX = 100 * (Абсолютна стойност (+DI — -DI) / (+DI + -DI))
3. След това ще трябва да изгладите стойността на ADX, като използвате пълзяща средна. Броят на периодите, използвани за подвижната средна, ще зависи от вашата търговска стратегия и времевата рамка, която използвате.
4. И накрая, можете да начертаете ADX стойността на диаграма, за да ви помогне да визуализирате силата на тренда.
// Calculate the +DI and -DI values function plusDI(high, low, close, period) { let sumPositiveDM = 0; let sumTrueRange = 0; for (let i = 1; i < period; i++) { let positiveDM = high[i] - high[i - 1]; if (positiveDM < 0) { positiveDM = 0; } sumPositiveDM += positiveDM; let trueRange = Math.max(high[i] - low[i], Math.abs(high[i] - close[i - 1]), Math.abs(low[i] - close[i - 1])); sumTrueRange += trueRange; } return (100 * (sumPositiveDM / sumTrueRange)); } function minusDI(high, low, close, period) { let sumNegativeDM = 0; let sumTrueRange = 0; for (let i = 1; i < period; i++) { let negativeDM = low[i - 1] - low[i]; if (negativeDM < 0) { negativeDM = 0; } sumNegativeDM += negativeDM; let trueRange = Math.max(high[i] - low[i], Math.abs(high[i] - close[i - 1]), Math.abs(low[i] - close[i - 1])); sumTrueRange += trueRange; } return (100 * (sumNegativeDM / sumTrueRange)); } // Calculate the ADX value function ADX(high, low, close, period) { let plusDI = plusDI(high, low, close, period); let minusDI = minusDI(high, low, close, period); let ADX = (100 * (Math.abs(plusDI - minusDI) / (plusDI + minusDI))); return ADX; } // Example usage let high = [50, 52, 53, 54, 55, 54, 53, 52, 51, 50]; let low = [48, 49, 50, 51, 52, 51, 50, 49, 48, 47]; let close = [49, 51, 52, 53, 54, 53, 52, 51, 50, 49]; let period = 14; let ADXValue = ADX(high, low, close, period); console.log(ADXValue); // Outputs: 39.39393939393939
Този пример изчислява +DI и -DI стойностите с помощта на предоставените по-рано формули и след това изчислява ADX стойността с помощта на формулата за ADX. Той също така включва пример за това как да използвате функцията с примерни данни.
Обърнете внимание, че този пример изчислява ADX, като използва период от 14, което е обичаен избор за ADX. Можете да коригирате периода, за да отговаря на вашите нужди и търговска стратегия. Може също да искате да изгладите стойността на ADX, като използвате подвижна средна, както беше споменато по-рано.
Струва си да се отбележи, че ADX е само един от многото технически индикатори, които търговците използват, за да помогнат при вземането на търговски решения. Важно е да използвате комбинация от индикатори и техники за анализ, които да ви помогнат да правите информирани и печеливши сделки.