I am having trouble setting the date properly. Basically I have timestamp, open, close, high, low, volume stored line by line in a text file (downloaded using Yahoo API). My program then reads each line and converts it to a QStringList. It then puts each item in the list into the appropriate QVector<double> (dates[], open[], close[], high[], low[], volume[]) converting each item to a double. Here is where the problem is. It appears that the precision is lost during the conversion. The dates always show as periods back in 1970 when the actually timestamp is in fact a date from a few days ago.
Code:
#include "dialog.h" #include "ui_dialog.h" #include<QFile> #include<QTextStream> #include<string> #include<iostream> using namespace std; ui(new Ui::Dialog) { ui->setupUi(this); QStringList lines; QString line; QVector<double> dates; QVector<double> high; QVector<double> low; QVector<double> open; QVector<double> close; QVector<double> volume; { while (!in.atEnd()) { line = in.readLine(); lines = line.split(","); dates.append(lines[0].toDouble()); close.append(lines[1].toDouble()); high.append(lines[2].toDouble()); low.append(lines[3].toDouble()); open.append(lines[4].toDouble()); volume.append(lines[5].toInt()); } file.close(); } else{ } ui->plot->addGraph(); ui->plot->graph(0)->setData(dates, high); ui->plot->xAxis->setTickLabelType(QCPAxis::ltDateTime); ui->plot->xAxis->setDateTimeFormat("MM/dd/yyyy"); QPen pen; ui->plot->graph(0)->setPen(pen); ui->plot->graph(0)->setLineStyle(QCPGraph::lsLine); ui->plot->xAxis->setRange(dates[0], dates[dates.length()-1]); ui->plot->yAxis->setRange(*std::min_element(high.begin(), high.end()),*std::max_element(high.begin(),high.end())); } Dialog::~Dialog() { delete ui; }
YHOO.cvs
Code:
20140227,30.1000,30.1600,28.4100,29.7000,2351300 20140228,28.3000,32.0000,27.0000,29.2000,3781000 20140303,28.1900,28.9100,26.8900,27.3000,1664900 20140304,30.0400,30.3800,28.6300,28.8500,2341700 20140305,28.5500,29.5000,28.4900,29.2400,7314100 20140306,27.1700,29.0100,27.1500,28.7600,3007300 20140307,27.2000,28.3200,26.7100,27.8400,2961800 20140310,28.2400,28.5000,27.3500,27.7200,1622100 20140311,27.5300,28.7400,27.1800,28.4400,1745200 20140312,28.5400,28.7400,27.3500,27.4700,2206300