簡単な背景:
QCustomPlotバージョン 1.3 ベータ版を使用して、株式のローソク足チャートをプロットしようとしています。ライブラリのコードをスキップしたところ、時系列では type-def が使用されていることがわかりました (qcustomplot.h:line 3140)。
typedef QMap<double, QCPFinancialData> QCPFinancialDataMap;
QCPFinancialDataの場所(qcustomplot.h:line 3124)
class QCP_LIB_DECL QCPFinancialData
{
public:
QCPFinancialData();
QCPFinancialData(double key, double open, double high, double low, double close);
double key, open, high, low, close;
};
したがって、OHLC データは明らかにそこにあり、クラスは QMap で使用されるキーを使用して時系列エントリのインデックスを作成します。
したがって、明らかなキーは日付と時刻になります (私は End-Of-Day チャートをプロットしているので、各エントリは単に日付であり、時間が使用されていません)。私の解析コードでは、私は使用しました
boost::gregorian::date
非常に多くの利点があります(文字列からの変換、経過した日時の計算など)。
質問は、単純に boost::gregorian::date を UNIX タイムスタンプに変換し、そのタイムスタンプを double として記録する必要があるかどうかです。github でtime_t型に変換する小さなテンプレート関数を見つけましたが、この場合 double は問題にならないと思いますか、それとも潜在的なバグですか? 私の知る限り、Unix のタイムスタンプは 1970 年 1 月 1 日からの秒数を示します。
QCustomPlot の例では、タイムスタンプではなく、時系列シーケンスの開始 (開始日など) からのアキュムレータ/カウンターを使用しています。