6#include <grpcpp/grpcpp.h>
7#include "analysis.grpc.pb.h"
38 MarketData fetchPrices(
const std::string& pair,
const std::string& timeframe, int64_t start_ts, int64_t end_ts);
39 void saveResult(
const std::string& task_id,
const std::string& result_data);
53 std::vector<std::string>
parsePayload(
const std::string& payload);
59 void calculateEMA(
const std::vector<double>& source,
int period,
int start_idx, std::vector<double>& ema_out);
60 void calculateRSI(
const std::vector<double>& prices,
int period, std::vector<double>& rsi_out);
69 grpc::Status
StartAnalysis(grpc::ServerContext* context,
const analyzer::AnalysisRequest* request, analyzer::AnalysisResponse* response)
override;
Implementation of the gRPC Analysis Service.
Definition tradebench_core.h:67
grpc::Status StartAnalysis(grpc::ServerContext *context, const analyzer::AnalysisRequest *request, analyzer::AnalysisResponse *response) override
Handles incoming gRPC requests for backtesting.
Definition grpc_service.cpp:18
Engine responsible for executing trading strategies.
Definition tradebench_core.h:47
void finalizeMetrics(BacktestResult &res, double last_price, double initial, double current, double amount, bool in_pos, int wins)
Calculates final profit and win rate metrics for the backtest.
Definition engine.cpp:32
std::string optimizeParameters(const MarketData &market_data)
Finds the best strategy and parameters using an evolutionary Genetic Algorithm.
Definition engine.cpp:448
std::vector< std::string > parsePayload(const std::string &payload)
Parses the strategy payload string into separate tokens.
Definition engine.cpp:12
void calculateRSI(const std::vector< double > &prices, int period, std::vector< double > &rsi_out)
Calculates the Relative Strength Index (RSI).
Definition engine.cpp:66
BacktestResult runMovingAverageCross(const MarketData &market_data, int fast_window, int slow_window, bool use_ema)
Executes the Moving Average Crossover strategy (SMA or EMA).
Definition engine.cpp:132
BacktestResult runBollingerBands(const MarketData &market_data, int period, double std_dev_multiplier)
Executes the Bollinger Bands strategy.
Definition engine.cpp:370
BacktestResult runSimulation(const MarketData &market_data, const std::string &strategy_payload)
Routes the simulation request to the appropriate mathematical strategy.
Definition engine.cpp:99
BacktestResult runMACD(const MarketData &market_data, int fast_period, int slow_period, int signal_period)
Executes the MACD strategy.
Definition engine.cpp:286
BacktestResult runRSI(const MarketData &market_data, int period, double overbought, double oversold)
Executes the Relative Strength Index (RSI) strategy.
Definition engine.cpp:220
void calculateEMA(const std::vector< double > &source, int period, int start_idx, std::vector< double > &ema_out)
Calculates the Exponential Moving Average (EMA).
Definition engine.cpp:47
Handles all interactions with the PostgreSQL database.
Definition tradebench_core.h:34
bool checkConnection() const
Definition database.cpp:6
MarketData fetchPrices(const std::string &pair, const std::string &timeframe, int64_t start_ts, int64_t end_ts)
Definition database.cpp:16
DataRepository(const std::string &conn_str)
Definition database.cpp:4
void saveResult(const std::string &task_id, const std::string &result_data)
Definition database.cpp:40
std::string m_conn_str
Definition tradebench_core.h:41
Structure to hold the advanced result of a backtest simulation.
Definition tradebench_core.h:20
double profit
Definition tradebench_core.h:21
double win_rate
Definition tradebench_core.h:23
std::vector< int > buy_signals
Definition tradebench_core.h:26
std::vector< double > equity_curve
Definition tradebench_core.h:25
double max_drawdown
Definition tradebench_core.h:24
int trades_count
Definition tradebench_core.h:22
std::vector< long long > timestamps
Definition tradebench_core.h:28
std::vector< int > sell_signals
Definition tradebench_core.h:27
Structure to hold market data including timestamps.
Definition tradebench_core.h:12
std::vector< double > prices
Definition tradebench_core.h:14
std::vector< long long > timestamps
Definition tradebench_core.h:13