BetaTrader
A HFT Eco-System
Loading...
Searching...
No Matches
MarketHistoryRepository.h
Go to the documentation of this file.
1#pragma once
2
3#include "common/Instrument.h"
5#include <string>
6#include <vector>
7
8namespace data {
9
10 struct Candle {
11 std::string symbol;
12 int64_t timestamp; // Unix timestamp for the start of the bucket
13 double open;
14 double high;
15 double low;
16 double close;
17 uint64_t volume;
18 };
19
25 public:
26 explicit MarketHistoryRepository(DatabaseWorker* dbWorker);
27 virtual ~MarketHistoryRepository() = default;
28
29 virtual void initDatabase();
30
31 // interval is in minutes (e.g. 1, 5, 60)
32 virtual void addCandle(int interval, const Candle& candle);
33
34 virtual std::vector<Candle> getHistory(const std::string& symbol, int interval, int limit = 100);
35
36 private:
38 };
39
40} // namespace data
Asynchronous database worker abstraction.
Executes database tasks asynchronously.
Definition DatabaseWorker.h:22
Persists OHLC candle data to the database.
Definition MarketHistoryRepository.h:24
virtual void addCandle(int interval, const Candle &candle)
Definition MarketHistoryRepository.cpp:22
DatabaseWorker * mDb
Definition MarketHistoryRepository.h:37
virtual void initDatabase()
Definition MarketHistoryRepository.cpp:11
virtual ~MarketHistoryRepository()=default
virtual std::vector< Candle > getHistory(const std::string &symbol, int interval, int limit=100)
Definition MarketHistoryRepository.cpp:41
Repository for managing sequence numbers.
Definition Constant.h:13
Definition MarketHistoryRepository.h:10
double open
Definition MarketHistoryRepository.h:13
double close
Definition MarketHistoryRepository.h:16
std::string symbol
Definition MarketHistoryRepository.h:11
uint64_t volume
Definition MarketHistoryRepository.h:17
double low
Definition MarketHistoryRepository.h:15
double high
Definition MarketHistoryRepository.h:14
int64_t timestamp
Definition MarketHistoryRepository.h:12