Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the data order for ta-lib calculations

Tags:

c#

financial

I have the following candles

+----------------+-------+----------+---------+----------+
|date            |curency|high_price|low_price|last_price|
+----------------+-------+----------+---------+----------+
|2014-01-16 16:07|2      |24.98     |23.9     |24.2      |
+----------------+-------+----------+---------+----------+
|2014-01-16 16:06|2      |24.98     |23.9     |24.12202  |
+----------------+-------+----------+---------+----------+
|2014-01-16 16:05|2      |24.98     |23.9     |24.12202  |
+----------------+-------+----------+---------+----------+
|2014-01-16 16:04|2      |24.98     |23.9     |24.21626  |
+----------------+-------+----------+---------+----------+
|2014-01-16 16:03|2      |24.98     |23.9     |24.11102  |
+----------------+-------+----------+---------+----------+
|2014-01-16 16:02|2      |24.98     |23.9     |24.21628  |
+----------------+-------+----------+---------+----------+
|2014-01-16 16:01|2      |24.98     |23.9     |24.2      |
+----------------+-------+----------+---------+----------+
|2014-01-16 16:00|2      |24.98     |23.9     |24.2      |
+----------------+-------+----------+---------+----------+

I use TA-lib to calculate Ema's as follows

public MovingAverage CalculateEMA(List<OHLC> candles, int periodsAverage)
{
    double[] closePrice = candles.Select(x => (double)x.last_price).ToArray();
    double[] output = new double[closePrice.Length];
    int begin;
    int length;

    TicTacTec.TA.Library.Core.RetCode retCode = Core.Ema(0, closePrice.Length - 1, closePrice, periodsAverage, out begin, out length, output);

    if (retCode == TicTacTec.TA.Library.Core.RetCode.Success)
        return new MovingAverage() { Begin = begin, Length = length, Output = output, Period = periodsAverage };

    return null;
}

Question is whats the correct candle order with the most recent entry as top or bottom? How does the library make the calculation ? should i reverse candles list before Calculating Ema? Also i have the same question for macd calculation

Thank you,

like image 519
adi sba Avatar asked Mar 20 '23 21:03

adi sba


1 Answers

Earliest date/time is the FIRST element in the array - element[0]. Chronological order = array order. Your most recent time (the last time) should be the LAST element in the array.
This logic works for all TA-Lib functions.

like image 95
Fred Quatro Avatar answered Apr 01 '23 08:04

Fred Quatro