├── Monitoring-Server
├── Front-End
│ ├── src
│ │ ├── vite-env.d.ts
│ │ ├── assets
│ │ │ └── images
│ │ │ │ ├── logo.png
│ │ │ │ └── balance-bg.png
│ │ ├── App.tsx
│ │ ├── index.css
│ │ ├── components
│ │ │ ├── loader
│ │ │ │ ├── PageLoader.tsx
│ │ │ │ └── Splash.tsx
│ │ │ ├── base
│ │ │ │ ├── Image.tsx
│ │ │ │ ├── IconifyIcon.tsx
│ │ │ │ └── ReactEchart.tsx
│ │ │ ├── sections
│ │ │ │ └── dashboard
│ │ │ │ │ ├── top-cards
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── spent
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── activity
│ │ │ │ │ │ ├── index.tsx
│ │ │ │ │ │ └── ActivityChart.tsx
│ │ │ │ │ ├── earnings
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ └── Total_Trades
│ │ │ │ │ │ ├── index.tsx
│ │ │ │ │ │ └── ClientChart.tsx
│ │ │ │ │ ├── total-spent
│ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── earnings
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── EarningsChart.tsx
│ │ │ │ │ ├── spent-this-month
│ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── transaction-history
│ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── tasks
│ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── credit-balance
│ │ │ │ │ └── CreditBalanceChart.tsx
│ │ │ │ │ ├── balance
│ │ │ │ │ └── index.tsx
│ │ │ │ │ └── transactions
│ │ │ │ │ └── index.tsx
│ │ │ └── common
│ │ │ │ └── DataGridFooter.tsx
│ │ ├── theme
│ │ │ ├── styles
│ │ │ │ ├── echart.ts
│ │ │ │ ├── simplebar.ts
│ │ │ │ └── scrollbar.ts
│ │ │ ├── components
│ │ │ │ ├── layout
│ │ │ │ │ └── Stack.tsx
│ │ │ │ ├── buttons
│ │ │ │ │ ├── Toolbar.tsx
│ │ │ │ │ ├── ButtonBase.tsx
│ │ │ │ │ ├── IconButton.tsx
│ │ │ │ │ └── Button.tsx
│ │ │ │ ├── list
│ │ │ │ │ ├── List.tsx
│ │ │ │ │ ├── Collapse.tsx
│ │ │ │ │ ├── ListItemIcon.tsx
│ │ │ │ │ ├── ListItemText.tsx
│ │ │ │ │ ├── ListItemButton.tsx
│ │ │ │ │ └── MenuItem.tsx
│ │ │ │ ├── data-display
│ │ │ │ │ ├── Badge.tsx
│ │ │ │ │ └── Chip.tsx
│ │ │ │ ├── inputs
│ │ │ │ │ ├── FilledInput.tsx
│ │ │ │ │ ├── OutlinedInput.tsx
│ │ │ │ │ ├── FormControlLabel.tsx
│ │ │ │ │ ├── InputAdornment.tsx
│ │ │ │ │ ├── Select.tsx
│ │ │ │ │ ├── Checkbox.tsx
│ │ │ │ │ └── InputBase.tsx
│ │ │ │ ├── surfaces
│ │ │ │ │ └── Paper.tsx
│ │ │ │ ├── pagination
│ │ │ │ │ └── PaginationItem.tsx
│ │ │ │ ├── navigation
│ │ │ │ │ ├── Drawer.tsx
│ │ │ │ │ └── Link.tsx
│ │ │ │ ├── utils
│ │ │ │ │ └── CssBaseline.tsx
│ │ │ │ └── data-grid
│ │ │ │ │ └── DataGrid.tsx
│ │ │ ├── shadows.ts
│ │ │ ├── colors.ts
│ │ │ ├── typography.ts
│ │ │ └── palette.ts
│ │ ├── routes
│ │ │ ├── paths.ts
│ │ │ ├── sitemap.ts
│ │ │ └── router.tsx
│ │ ├── pages
│ │ │ ├── portfolio
│ │ │ │ └── Portfolio.tsx
│ │ │ └── dashboard
│ │ │ │ └── Dashbaord.tsx
│ │ ├── main.tsx
│ │ └── layouts
│ │ │ └── main-layout
│ │ │ ├── index.tsx
│ │ │ ├── sidebar
│ │ │ ├── index.tsx
│ │ │ ├── list-items
│ │ │ │ ├── ListItem.tsx
│ │ │ │ └── CollapseListItem.tsx
│ │ │ └── DrawerItems.tsx
│ │ │ └── topbar
│ │ │ └── index.tsx
│ ├── .prettierignore
│ ├── public
│ │ └── venus.ico
│ ├── tsconfig.node.json
│ ├── .gitignore
│ ├── index.html
│ ├── .prettierrc.cjs
│ ├── vite.config.ts
│ ├── tsconfig.json
│ ├── tsconfig.app.json
│ ├── .eslintrc.cjs
│ └── package.json
└── app.py
├── Computing-Server
├── include
│ ├── Utilities
│ │ ├── OHLCV.hpp
│ │ ├── Logger.hpp
│ │ ├── Utilities.hpp
│ │ ├── Bar.hpp
│ │ ├── SignalResult.hpp
│ │ ├── ReplayMemory.hpp
│ │ ├── Trade.hpp
│ │ ├── Quote.hpp
│ │ └── ModelTransfer.hpp
│ ├── Velocity-Bot
│ │ └── bot.hpp
│ ├── AlgoEngine-Core
│ │ ├── algorithm
│ │ │ ├── OBV.hpp
│ │ │ ├── VWAP.hpp
│ │ │ ├── MA.hpp
│ │ │ ├── EMA.hpp
│ │ │ ├── MFI.hpp
│ │ │ ├── RSI.hpp
│ │ │ ├── FibonacciRetracement.hpp
│ │ │ ├── ADX.hpp
│ │ │ ├── ATR.hpp
│ │ │ ├── SMA.hpp
│ │ │ ├── PERatio.hpp
│ │ │ ├── DividendYield.hpp
│ │ │ ├── APO.hpp
│ │ │ ├── CCI.hpp
│ │ │ ├── BollingerBands.hpp
│ │ │ └── StochasticOscillator.hpp
│ │ ├── Reinforcement_models
│ │ │ ├── QNetwork.hpp
│ │ │ ├── Deep_Q-Learning.hpp
│ │ │ ├── Agent_QNetwork.hpp
│ │ │ └── Agent_Deep_Q-Learning.hpp
│ │ ├── statistical_models
│ │ │ ├── BayesianSVM.hpp
│ │ │ ├── BayesianAnomalyDetection.hpp
│ │ │ ├── BayesianMomentumTrading.hpp
│ │ │ ├── BayesianDecisionTreeTrading.hpp
│ │ │ ├── BayesianGARCHTrading.hpp
│ │ │ ├── BayesianTrendDetection.hpp
│ │ │ ├── BayesianCorrelationEstimation.hpp
│ │ │ ├── BayesianCausalInferenceTrading.hpp
│ │ │ ├── BayesianModelAveragingTrading.hpp
│ │ │ ├── BayesianStochasticVolatility.hpp
│ │ │ └── BayesianKernelRegression.hpp
│ │ ├── time_series_models
│ │ │ ├── VAR.hpp
│ │ │ ├── GARCH.hpp
│ │ │ ├── ARIMA.hpp
│ │ │ └── SARIMA.hpp
│ │ └── indicator
│ │ │ └── Indicator.hpp
│ ├── Data-Fetcher-Core
│ │ ├── DataFetcher-Sub.hpp
│ │ ├── WebSocket.hpp
│ │ └── DataFetcher.hpp
│ ├── Risk-Analysis-Core
│ │ ├── VaRCalculator.hpp
│ │ ├── CorrelationAnalyzer.hpp
│ │ ├── PortfolioManager.hpp
│ │ └── RiskAdjustedMetrics.hpp
│ ├── Orderbook
│ │ ├── transactions.hpp
│ │ ├── order_.hpp
│ │ └── order_book.hpp
│ ├── IO-Broker-Core
│ │ └── RedisDBManager.hpp
│ └── Order-Manager-Core
│ │ └── order_manager.hpp
└── src
│ ├── Velocity-Bot
│ └── test
│ │ └── multi-provider.cpp
│ ├── Orderbook
│ ├── transactions.cpp
│ └── order_.cpp
│ ├── Utilities
│ ├── Logger.cpp
│ └── Utilities.cpp
│ ├── AlgoEngine-Core
│ ├── Reinforcement_models
│ │ └── QNetwork.cpp
│ ├── indicators
│ │ ├── PERatio.cpp
│ │ ├── DividendYield.cpp
│ │ ├── MA.cpp
│ │ ├── OBV.cpp
│ │ ├── VWAP.cpp
│ │ ├── EMA.cpp
│ │ ├── FibonacciRetracement.cpp
│ │ ├── ATR.cpp
│ │ ├── SMA.cpp
│ │ ├── RSI.cpp
│ │ ├── BollingerBands.cpp
│ │ └── APO.cpp
│ ├── time_series_models
│ │ ├── VAR.cpp
│ │ ├── GARCH.cpp
│ │ ├── ARIMA.cpp
│ │ └── SARIMA.cpp
│ └── statistical models
│ │ ├── BayesianGARCHTrading.cpp
│ │ ├── BayesianMomentumTrading.cpp
│ │ ├── BayesianTrendDetection.cpp
│ │ ├── BayesianSVM.cpp
│ │ ├── BayesianDecisionTreeTrading.cpp
│ │ ├── BayesianAnomalyDetection.cpp
│ │ ├── BayesianStochasticVolatility.cpp
│ │ ├── BayesianModelAveragingTrading.cpp
│ │ ├── BayesianCausalInferenceTrading.cpp
│ │ ├── BayesianCorrelationEstimation.cpp
│ │ └── BayesianKernelRegression.cpp
│ ├── Data-Fetcher-Core
│ └── DataFetcher-Sub.cpp
│ └── Risk-Analysis-Core
│ ├── VaRCalculator.cpp
│ └── CorrelationAnalyzer.cpp
├── DataBroker-Server
└── include
│ └── Utilities
│ ├── OHLCV.hpp
│ ├── Bar.hpp
│ ├── Trade.hpp
│ └── Quote.hpp
├── .gitignore
├── IO-Server
└── CMakeLists.txt
└── Order-Manager-Server
├── include
├── Executor-Manager-Core
│ ├── OrderDetails.hpp
│ └── executor_manager.hpp
├── Scheduler
│ └── scheduler.hpp
└── Queue
│ └── TSQueue.hpp
└── src
└── main.cpp
/Monitoring-Server/Front-End/src/vite-env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
--------------------------------------------------------------------------------
/Monitoring-Server/Front-End/.prettierignore:
--------------------------------------------------------------------------------
1 | .next/
2 | .vscode-test/
3 | out/
4 | dist/
5 | node_modules/
6 | public/
7 | build/
--------------------------------------------------------------------------------
/Monitoring-Server/Front-End/public/venus.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jitanshuraut/Velocity-Vortex/HEAD/Monitoring-Server/Front-End/public/venus.ico
--------------------------------------------------------------------------------
/Monitoring-Server/Front-End/src/assets/images/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jitanshuraut/Velocity-Vortex/HEAD/Monitoring-Server/Front-End/src/assets/images/logo.png
--------------------------------------------------------------------------------
/Monitoring-Server/Front-End/src/App.tsx:
--------------------------------------------------------------------------------
1 | import { Outlet } from 'react-router-dom';
2 |
3 | const App = () => {
4 | return ;
5 | };
6 |
7 | export default App;
8 |
--------------------------------------------------------------------------------
/Monitoring-Server/Front-End/src/assets/images/balance-bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jitanshuraut/Velocity-Vortex/HEAD/Monitoring-Server/Front-End/src/assets/images/balance-bg.png
--------------------------------------------------------------------------------
/Computing-Server/include/Utilities/OHLCV.hpp:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include
3 |
4 |
5 | struct OHLCV {
6 | double open;
7 | double high;
8 | double low;
9 | double close;
10 | double volume;
11 | std::string timestamp;
12 | };
--------------------------------------------------------------------------------
/Computing-Server/include/Velocity-Bot/bot.hpp:
--------------------------------------------------------------------------------
1 | #ifndef BOT_HPP
2 | #define BOT_HPP
3 |
4 | class Bot {
5 | public:
6 |
7 | virtual void initialize() = 0;
8 | virtual void run() = 0;
9 | virtual void stop() = 0;
10 |
11 | };
12 |
13 | #endif
14 |
--------------------------------------------------------------------------------
/Computing-Server/src/Velocity-Bot/test/multi-provider.cpp:
--------------------------------------------------------------------------------
1 | #include "Data-Fetcher-Core/DataFetcher-Sub.hpp"
2 |
3 | int main()
4 | {
5 |
6 | DataFetcherSub dataFetcher("tcp://localhost:5555");
7 | dataFetcher.subscribe("");
8 | dataFetcher.receive();
9 |
10 | return 0;
11 | }
12 |
--------------------------------------------------------------------------------
/Monitoring-Server/Front-End/src/index.css:
--------------------------------------------------------------------------------
1 | @import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');
2 |
--------------------------------------------------------------------------------
/Monitoring-Server/Front-End/tsconfig.node.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "composite": true,
4 | "skipLibCheck": true,
5 | "module": "ESNext",
6 | "moduleResolution": "bundler",
7 | "allowSyntheticDefaultImports": true,
8 | "strict": true
9 | },
10 | "include": ["vite.config.ts"]
11 | }
12 |
--------------------------------------------------------------------------------
/Computing-Server/src/Orderbook/transactions.cpp:
--------------------------------------------------------------------------------
1 | #include "Orderbook/transactions.hpp"
2 |
3 | Trade_::Trade_(const TradeInfo& bidTrade, const TradeInfo& askTrade)
4 | : bidTrade_{bidTrade}, askTrade_{askTrade} {}
5 |
6 | const TradeInfo& Trade_::GetBidTrade() const { return bidTrade_; }
7 | const TradeInfo& Trade_::GetAskTrade() const { return askTrade_; }
--------------------------------------------------------------------------------
/Monitoring-Server/Front-End/src/components/loader/PageLoader.tsx:
--------------------------------------------------------------------------------
1 | import Box from '@mui/material/Box';
2 | import LinearProgress from '@mui/material/LinearProgress';
3 |
4 | const PageLoader = () => {
5 | return (
6 |
7 |
8 |
9 | );
10 | };
11 |
12 | export default PageLoader;
13 |
--------------------------------------------------------------------------------
/Monitoring-Server/Front-End/src/theme/styles/echart.ts:
--------------------------------------------------------------------------------
1 | const echart = () => ({
2 | '.echarts-for-react': {
3 | overflow: 'hidden',
4 | '&:not(&.echart-map)': {
5 | '> div': {
6 | '&:first-of-type': {
7 | height: '100% !important',
8 | },
9 | },
10 | },
11 | },
12 | });
13 |
14 | export default echart;
15 |
--------------------------------------------------------------------------------
/Monitoring-Server/Front-End/src/theme/components/layout/Stack.tsx:
--------------------------------------------------------------------------------
1 | import { Theme } from '@mui/material';
2 | import { Components } from '@mui/material/styles/components';
3 |
4 | const Stack: Components>['MuiStack'] = {
5 | defaultProps: {
6 | useFlexGap: true,
7 | direction: 'row',
8 | },
9 | };
10 |
11 | export default Stack;
12 |
--------------------------------------------------------------------------------
/Monitoring-Server/Front-End/src/theme/shadows.ts:
--------------------------------------------------------------------------------
1 | declare module '@mui/material/styles' {
2 | interface Theme {
3 | customShadows: string[];
4 | }
5 | interface ThemeOptions {
6 | customShadows?: string[];
7 | }
8 | }
9 |
10 | const customShadows = ['0px 18px 40px 0px #7090B01F', '2px 2px 10px 0px rgba(10,10,10,0.2)'];
11 |
12 | export default customShadows;
13 |
--------------------------------------------------------------------------------
/Monitoring-Server/Front-End/src/theme/components/buttons/Toolbar.tsx:
--------------------------------------------------------------------------------
1 | import { Theme } from '@mui/material';
2 | import { Components } from '@mui/material/styles/components';
3 |
4 | const Toolbar: Components>['MuiToolbar'] = {
5 | styleOverrides: {
6 | root: {
7 | padding: '0 !important',
8 | },
9 | },
10 | };
11 |
12 | export default Toolbar;
--------------------------------------------------------------------------------
/Monitoring-Server/Front-End/src/theme/components/list/List.tsx:
--------------------------------------------------------------------------------
1 | import { Theme } from '@mui/material';
2 | import { Components } from '@mui/material/styles/components';
3 |
4 | const List: Components>['MuiList'] = {
5 | styleOverrides: {
6 | root: ({ theme }) => ({
7 | padding: theme.spacing(1),
8 | }),
9 | },
10 | };
11 |
12 | export default List;
--------------------------------------------------------------------------------
/Monitoring-Server/Front-End/src/routes/paths.ts:
--------------------------------------------------------------------------------
1 | export const rootPaths = {
2 | root: '/',
3 | pageRoot: 'pages',
4 | authRoot: 'auth',
5 | errorRoot: 'error',
6 | };
7 |
8 | export default {
9 | dashboard: `/${rootPaths.pageRoot}/`,
10 | logs: `/${rootPaths.pageRoot}/logs`,
11 | Portfolio: `/${rootPaths.pageRoot}/Portfolio`,
12 | 404: `/${rootPaths.errorRoot}/404`,
13 | };
14 |
--------------------------------------------------------------------------------
/Monitoring-Server/Front-End/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | pnpm-debug.log*
8 | lerna-debug.log*
9 |
10 | node_modules
11 | dist
12 | dist-ssr
13 | *.local
14 |
15 | # Editor directories and files
16 | .vscode/*
17 | !.vscode/extensions.json
18 | .idea
19 | .DS_Store
20 | *.suo
21 | *.ntvs*
22 | *.njsproj
23 | *.sln
24 | *.sw?
25 |
--------------------------------------------------------------------------------
/Monitoring-Server/Front-End/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | velocity-vortex
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Computing-Server/include/Utilities/Logger.hpp:
--------------------------------------------------------------------------------
1 | #ifndef LOGGER_HPP
2 | #define LOGGER_HPP
3 |
4 | #include "IO-Broker-Core/RedisDBManager.hpp"
5 | class Logger
6 | {
7 | public:
8 | Logger() = default;
9 | static void initialize();
10 | static std::shared_ptr &getInstance();
11 |
12 | private:
13 | static std::shared_ptr logger;
14 | };
15 |
16 | #endif
17 |
--------------------------------------------------------------------------------
/DataBroker-Server/include/Utilities/OHLCV.hpp:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include
4 |
5 | struct OHLCV {
6 | double open; // Opening price
7 | double high; // Highest price
8 | double low; // Lowest price
9 | double close; // Closing price
10 | double volume; // Trading volume
11 | std::string timestamp; // Timestamp of the data
12 | };
--------------------------------------------------------------------------------
/Monitoring-Server/Front-End/src/components/loader/Splash.tsx:
--------------------------------------------------------------------------------
1 | import Stack from '@mui/material/Stack';
2 | import CircularProgress from '@mui/material/CircularProgress';
3 |
4 | const Splash = () => {
5 | return (
6 |
7 |
8 |
9 | );
10 | };
11 |
12 | export default Splash;
13 |
--------------------------------------------------------------------------------
/Monitoring-Server/Front-End/src/components/base/Image.tsx:
--------------------------------------------------------------------------------
1 | import { Box, SxProps } from '@mui/material';
2 | import { ImgHTMLAttributes } from 'react';
3 |
4 | interface ImageProps extends ImgHTMLAttributes {
5 | sx?: SxProps;
6 | }
7 |
8 | const Image = ({ sx, ...rest }: ImageProps) => {
9 | return ;
10 | };
11 |
12 | export default Image;
13 |
--------------------------------------------------------------------------------
/Monitoring-Server/Front-End/src/theme/components/data-display/Badge.tsx:
--------------------------------------------------------------------------------
1 | import { Theme } from '@mui/material';
2 | import { Components } from '@mui/material/styles/components';
3 |
4 | const Badge: Components>['MuiBadge'] = {
5 | styleOverrides: {
6 | root: {},
7 | badge: {
8 | top: 4,
9 | right: 4,
10 | },
11 | },
12 | };
13 |
14 | export default Badge;
--------------------------------------------------------------------------------
/Computing-Server/include/AlgoEngine-Core/algorithm/OBV.hpp:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "../indicator/Indicator.hpp"
4 | #include
5 |
6 | class OBV : public Indicator
7 | {
8 | public:
9 | OBV(const std::string &indicatorName)
10 | : Indicator(indicatorName, 1) {}
11 |
12 | SignalResult calculateSignal() override;
13 | static std::vector calculate(const std::vector &data);
14 | };
--------------------------------------------------------------------------------
/Monitoring-Server/Front-End/src/components/base/IconifyIcon.tsx:
--------------------------------------------------------------------------------
1 | import { Box, BoxProps } from '@mui/material';
2 | import { Icon, IconProps } from '@iconify/react';
3 |
4 | interface IconifyProps extends BoxProps {
5 | icon: IconProps['icon'];
6 | }
7 |
8 | const IconifyIcon = ({ icon, ...rest }: IconifyProps) => {
9 | return ;
10 | };
11 |
12 | export default IconifyIcon;
13 |
--------------------------------------------------------------------------------
/Computing-Server/include/AlgoEngine-Core/algorithm/VWAP.hpp:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "../indicator/Indicator.hpp"
4 | #include
5 |
6 | class VWAP : public Indicator
7 | {
8 | public:
9 | VWAP(const std::string &indicatorName)
10 | : Indicator(indicatorName, 0) {}
11 |
12 | SignalResult calculateSignal() override;
13 | static std::vector calculate(const std::vector &data);
14 | };
--------------------------------------------------------------------------------
/Computing-Server/src/Utilities/Logger.cpp:
--------------------------------------------------------------------------------
1 | #include "Utilities/Logger.hpp"
2 |
3 | std::shared_ptr Logger::logger = nullptr;
4 |
5 | void Logger::initialize()
6 | {
7 | logger = std::make_shared();
8 | logger->connect();
9 | }
10 |
11 | std::shared_ptr& Logger::getInstance()
12 | {
13 | if (!logger)
14 | {
15 | initialize();
16 | }
17 | return logger;
18 | }
--------------------------------------------------------------------------------
/Computing-Server/include/AlgoEngine-Core/algorithm/MA.hpp:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "../indicator/Indicator.hpp"
4 | #include
5 |
6 | class MA : public Indicator
7 | {
8 | public:
9 | MA(const std::string &indicatorName, int period)
10 | : Indicator(indicatorName, period) {}
11 |
12 | SignalResult calculateSignal() override;
13 | static std::vector calculate(const std::vector &data, int period);
14 | };
--------------------------------------------------------------------------------
/Computing-Server/include/AlgoEngine-Core/algorithm/EMA.hpp:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "../indicator/Indicator.hpp"
4 | #include
5 |
6 | class EMA : public Indicator {
7 | public:
8 | EMA(const std::string& indicatorName, int period)
9 | : Indicator(indicatorName, period) {}
10 |
11 | SignalResult calculateSignal() override;
12 | static std::vector calculate(const std::vector& data, std::size_t period);
13 | };
--------------------------------------------------------------------------------
/Computing-Server/include/AlgoEngine-Core/algorithm/MFI.hpp:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "../indicator/Indicator.hpp"
4 | #include
5 |
6 | class MFI : public Indicator
7 | {
8 | public:
9 | MFI(const std::string &indicatorName, int period)
10 | : Indicator(indicatorName, period) {}
11 |
12 | SignalResult calculateSignal() override;
13 | static std::vector calculate(const std::vector &data, int period);
14 | };
--------------------------------------------------------------------------------
/Monitoring-Server/Front-End/src/pages/portfolio/Portfolio.tsx:
--------------------------------------------------------------------------------
1 | import Grid from '@mui/material/Grid';
2 | import TransactionHistory from 'components/sections/dashboard/transaction-history';
3 |
4 | const Portfolio = () => {
5 | return (
6 |
7 |
8 |
9 |
10 |
11 | );
12 | };
13 |
14 | export default Portfolio;
15 |
--------------------------------------------------------------------------------
/Computing-Server/include/AlgoEngine-Core/algorithm/RSI.hpp:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "../indicator/Indicator.hpp"
4 | #include
5 |
6 | class RSI : public Indicator {
7 | public:
8 | RSI(const std::string& indicatorName, int period)
9 | : Indicator(indicatorName, period) {}
10 |
11 | SignalResult calculateSignal() override;
12 | static std::vector calculate(const std::vector& historicalData, std::size_t period);
13 | };
--------------------------------------------------------------------------------
/Computing-Server/include/AlgoEngine-Core/algorithm/FibonacciRetracement.hpp:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "../indicator/Indicator.hpp"
4 | #include
5 |
6 | class FibonacciRetracement : public Indicator
7 | {
8 | public:
9 | FibonacciRetracement(const std::string &indicatorName)
10 | : Indicator(indicatorName, 0) {}
11 |
12 | SignalResult calculateSignal() override;
13 | static std::vector calculate(const std::vector &data);
14 | };
--------------------------------------------------------------------------------
/Computing-Server/include/AlgoEngine-Core/Reinforcement_models/QNetwork.hpp:
--------------------------------------------------------------------------------
1 | #ifndef QNETWORK_HPP
2 | #define QNETWORK_HPP
3 |
4 | #include
5 |
6 | const int STATE_SIZE = 300;
7 | const int NUM_ACTIONS = 3;
8 |
9 | class QNetwork : public torch::nn::Module
10 | {
11 | public:
12 | QNetwork();
13 | torch::Tensor forward(torch::Tensor x);
14 |
15 | private:
16 | torch::nn::Linear layer1{nullptr}, layer2{nullptr}, layer3{nullptr};
17 | };
18 |
19 | #endif
20 |
--------------------------------------------------------------------------------
/Computing-Server/include/Data-Fetcher-Core/DataFetcher-Sub.hpp:
--------------------------------------------------------------------------------
1 | #ifndef DATAFETCHER_SUB_HPP
2 | #define DATAFETCHER_SUB_HPP
3 |
4 | #include
5 | #include
6 | #include
7 |
8 | class DataFetcherSub
9 | {
10 | public:
11 | DataFetcherSub(const std::string &address);
12 | void subscribe(const std::string &topic);
13 | void receive();
14 |
15 | private:
16 | zmq::context_t context;
17 | zmq::socket_t subscriber;
18 | };
19 |
20 | #endif
21 |
--------------------------------------------------------------------------------
/Computing-Server/include/AlgoEngine-Core/algorithm/ADX.hpp:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "../indicator/Indicator.hpp"
4 | #include
5 | #include "Utilities/SignalResult.hpp"
6 |
7 | class ADX : public Indicator
8 | {
9 | public:
10 | ADX(const std::string &indicatorName, int period)
11 | : Indicator(indicatorName, period) {}
12 |
13 | SignalResult calculateSignal() override;
14 | static std::vector calculate(const std::vector &data, int period);
15 | };
--------------------------------------------------------------------------------
/Computing-Server/include/AlgoEngine-Core/algorithm/ATR.hpp:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "../indicator/Indicator.hpp"
4 | #include
5 |
6 | class ATR : public Indicator
7 | {
8 | public:
9 | ATR(const std::string &indicatorName, int period)
10 | : Indicator(indicatorName, period) {}
11 |
12 | SignalResult calculateSignal() override;
13 | std::vector calculate(const std::vector &ohlcvData, int period);
14 |
15 | private:
16 | double previousClose = 0.0;
17 | };
--------------------------------------------------------------------------------
/Monitoring-Server/Front-End/src/theme/components/buttons/ButtonBase.tsx:
--------------------------------------------------------------------------------
1 | import { Theme } from '@mui/material';
2 | import { Components } from '@mui/material/styles/components';
3 |
4 | const ButtonBase: Components>['MuiButtonBase'] = {
5 | defaultProps: {
6 | disableRipple: false,
7 | },
8 | styleOverrides: {
9 | root: {
10 | '&:hover': {
11 | backgroundColor: 'transparent',
12 | },
13 | },
14 | },
15 | };
16 |
17 | export default ButtonBase;
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Prerequisites
2 | *.d
3 |
4 | # Compiled Object files
5 | *.slo
6 | *.lo
7 | *.o
8 | *.obj
9 |
10 | # Precompiled Headers
11 | *.gch
12 | *.pch
13 |
14 | # Compiled Dynamic libraries
15 | *.so
16 | *.dylib
17 | *.dll
18 |
19 | # Fortran module files
20 | *.mod
21 | *.smod
22 |
23 | # Compiled Static libraries
24 | *.lai
25 | *.la
26 | *.a
27 | *.lib
28 |
29 | # Executables
30 | *.exe
31 | *.out
32 | *.app
33 |
34 | # Ignore build files
35 | **/build/
36 | **/node_modules/
37 | .vscode
38 | *.sh
39 |
--------------------------------------------------------------------------------
/Monitoring-Server/Front-End/src/theme/components/list/Collapse.tsx:
--------------------------------------------------------------------------------
1 | import { Theme } from '@mui/material';
2 | import { Components } from '@mui/material/styles/components';
3 |
4 | const Collapse: Components>['MuiCollapse'] = {
5 | styleOverrides: {
6 | root: ({ theme }) => ({
7 | padding: theme.spacing(0, 2),
8 |
9 | '& .MuiList-root': {
10 | padding: 0,
11 | margin: theme.spacing(1, 0),
12 | },
13 | }),
14 | },
15 | };
16 |
17 | export default Collapse;
--------------------------------------------------------------------------------
/Computing-Server/include/AlgoEngine-Core/statistical_models/BayesianSVM.hpp:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "../indicator/Indicator.hpp"
4 | #include
5 | #include "Utilities/SignalResult.hpp"
6 |
7 | class BayesianSVM : public Indicator
8 | {
9 | public:
10 | BayesianSVM(const std::string &indicatorName, int period)
11 | : Indicator(indicatorName, period) {}
12 |
13 | SignalResult calculateSignal() override;
14 | static std::vector applySVM(const std::vector &data, int period);
15 | };
16 |
--------------------------------------------------------------------------------
/Computing-Server/include/AlgoEngine-Core/algorithm/SMA.hpp:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "../indicator/Indicator.hpp"
4 | #include
5 |
6 | class SMA : public Indicator
7 | {
8 | public:
9 | SMA(const std::string &indicatorName, int period)
10 | : Indicator(indicatorName, period) {}
11 |
12 | SignalResult calculateSignal() override;
13 | static std::vector calculate(const std::vector &historicalData, int period);
14 |
15 | private:
16 | static const size_t PARALLEL_THRESHOLD = 1000;
17 | };
--------------------------------------------------------------------------------
/IO-Server/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.10)
2 | project(IOBroker)
3 |
4 | set(CMAKE_CXX_STANDARD 20)
5 | set(CMAKE_CXX_STANDARD_REQUIRED True)
6 |
7 | find_library(HIREDIS_LIB hiredis REQUIRED)
8 | find_library(SQLITE3_LIB sqlite3 REQUIRED)
9 | find_package(spdlog REQUIRED)
10 | find_package(fmt REQUIRED)
11 |
12 | add_executable(subscriber src/subscriber.cpp)
13 |
14 | target_link_libraries(subscriber ${HIREDIS_LIB} ${SQLITE3_LIB} spdlog::spdlog fmt::fmt)
15 |
16 | set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/..)
--------------------------------------------------------------------------------
/Computing-Server/include/AlgoEngine-Core/algorithm/PERatio.hpp:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "../indicator/Indicator.hpp"
4 | #include
5 |
6 | class PERatio : public Indicator
7 | {
8 | public:
9 | PERatio(const std::string &indicatorName, double earningsPerShare)
10 | : Indicator(indicatorName, 0), eps(earningsPerShare) {}
11 |
12 | SignalResult calculateSignal() override;
13 | static std::vector calculate(const std::vector &data, double earningsPerShare);
14 |
15 | private:
16 | double eps;
17 | };
--------------------------------------------------------------------------------
/Monitoring-Server/Front-End/src/theme/styles/simplebar.ts:
--------------------------------------------------------------------------------
1 | import { Theme } from '@mui/material';
2 |
3 | const simplebar = (theme: Theme) => ({
4 | '& .simplebar-track': {
5 | '&.simplebar-vertical': {
6 | '& .simplebar-scrollbar': {
7 | '&:before': {
8 | backgroundColor: theme.palette.grey[300],
9 | },
10 | '&.simplebar-visible': {
11 | '&:before': {
12 | opacity: 1,
13 | },
14 | },
15 | },
16 | },
17 | },
18 | });
19 |
20 | export default simplebar;
21 |
--------------------------------------------------------------------------------
/Monitoring-Server/Front-End/.prettierrc.cjs:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | printWidth: 100,
3 | singleQuote: true,
4 | trailingComma: 'all',
5 | overrides: [
6 | {
7 | files: ['docs/**/*.md', 'docs/src/pages/**/*.{js,tsx}', 'docs/data/**/*.{js,tsx}'],
8 | options: {
9 | printWidth: 85,
10 | },
11 | },
12 | {
13 | files: ['docs/pages/blog/**/*.md'],
14 | options: {
15 | printWidth: 82,
16 | },
17 | },
18 | ],
19 | };
--------------------------------------------------------------------------------
/Monitoring-Server/Front-End/src/theme/components/list/ListItemIcon.tsx:
--------------------------------------------------------------------------------
1 | import { Theme } from '@mui/material';
2 | import { Components } from '@mui/material/styles/components';
3 |
4 | const ListItemIcon: Components>['MuiListItemIcon'] = {
5 | styleOverrides: {
6 | root: ({ theme }) => ({
7 | minWidth: '0 !important',
8 | marginRight: theme.spacing(1.75),
9 | color: theme.palette.text.disabled,
10 | fontSize: theme.typography.h5.fontSize,
11 | }),
12 | },
13 | };
14 |
15 | export default ListItemIcon;
--------------------------------------------------------------------------------
/Order-Manager-Server/include/Executor-Manager-Core/OrderDetails.hpp:
--------------------------------------------------------------------------------
1 | #ifndef ORDER_DETAILS_HPP
2 | #define ORDER_DETAILS_HPP
3 |
4 | #include
5 | #include
6 |
7 | struct OrderDetails
8 | {
9 | std::string side;
10 | std::string type;
11 | std::string timeInForce;
12 | std::string symbol;
13 | std::string qty;
14 | std::optional limitPrice;
15 | std::optional stopPrice;
16 | std::optional trailPrice;
17 | std::optional trailPercent;
18 | };
19 |
20 | #endif
--------------------------------------------------------------------------------
/Computing-Server/include/AlgoEngine-Core/algorithm/DividendYield.hpp:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "../indicator/Indicator.hpp"
4 | #include
5 |
6 | class DividendYield : public Indicator
7 | {
8 | public:
9 | DividendYield(const std::string &indicatorName, double dividendPerShare)
10 | : Indicator(indicatorName, 0), dps(dividendPerShare) {}
11 |
12 | SignalResult calculateSignal() override;
13 | static std::vector calculate(const std::vector &data, double dividendPerShare);
14 |
15 | private:
16 | double dps;
17 | };
--------------------------------------------------------------------------------
/Computing-Server/include/AlgoEngine-Core/algorithm/APO.hpp:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "../indicator/Indicator.hpp"
4 | #include
5 |
6 | class APO : public Indicator
7 | {
8 | public:
9 | APO(const std::string &indicatorName, int shortPeriod, int longPeriod)
10 | : Indicator(indicatorName, shortPeriod), longPeriod(longPeriod) {}
11 |
12 | SignalResult calculateSignal() override;
13 | static std::vector calculate(const std::vector &ohlcvData, int shortPeriod, int longPeriod);
14 |
15 | private:
16 | int longPeriod;
17 | };
--------------------------------------------------------------------------------
/Computing-Server/include/Utilities/Utilities.hpp:
--------------------------------------------------------------------------------
1 | #ifndef UTILITIES_HPP
2 | #define UTILITIES_HPP
3 |
4 | #include
5 | #include
6 | #include
7 | #include
8 | #include
9 | #include
10 | #include
11 | #include
12 | #include
13 | #include "./OHLCV.hpp"
14 | #include "./Bar.hpp"
15 |
16 | OHLCV barToOHLCV(const Bar& bar);
17 |
18 | Bar ohlcvToBar(const OHLCV& ohlcv, const std::string& symbol);
19 |
20 | OHLCV buildAggregatedCandle(const std::vector& candles);
21 |
22 | #endif
23 |
--------------------------------------------------------------------------------
/Monitoring-Server/Front-End/src/theme/components/list/ListItemText.tsx:
--------------------------------------------------------------------------------
1 | import { Theme } from '@mui/material';
2 | import { Components } from '@mui/material/styles/components';
3 |
4 | const ListItemText: Components>['MuiListItemText'] = {
5 | styleOverrides: {
6 | root: {},
7 | primary: ({ theme }) => ({
8 | marginTop: theme.spacing(0.15),
9 | color: theme.palette.text.disabled,
10 | fontSize: theme.typography.body1.fontSize,
11 | fontWeight: 500,
12 | }),
13 | },
14 | };
15 |
16 | export default ListItemText;
--------------------------------------------------------------------------------
/Computing-Server/include/AlgoEngine-Core/statistical_models/BayesianAnomalyDetection.hpp:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "../indicator/Indicator.hpp"
4 | #include
5 | #include "Utilities/SignalResult.hpp"
6 |
7 | class BayesianAnomalyDetection : public Indicator
8 | {
9 | public:
10 | BayesianAnomalyDetection(const std::string &indicatorName, int period)
11 | : Indicator(indicatorName, period) {}
12 |
13 | SignalResult calculateSignal() override;
14 | static std::vector detectAnomalies(const std::vector &data, int period);
15 | };
16 |
--------------------------------------------------------------------------------
/Computing-Server/include/AlgoEngine-Core/statistical_models/BayesianMomentumTrading.hpp:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "../indicator/Indicator.hpp"
4 | #include
5 | #include "Utilities/SignalResult.hpp"
6 |
7 | class BayesianMomentumTrading : public Indicator
8 | {
9 | public:
10 | BayesianMomentumTrading(const std::string &indicatorName, int period)
11 | : Indicator(indicatorName, period) {}
12 |
13 | SignalResult calculateSignal() override;
14 | static std::vector calculateMomentum(const std::vector &data, int period);
15 | };
16 |
--------------------------------------------------------------------------------
/Monitoring-Server/Front-End/src/theme/components/inputs/FilledInput.tsx:
--------------------------------------------------------------------------------
1 | import { Theme } from '@mui/material';
2 | import { Components } from '@mui/material/styles/components';
3 |
4 | const FilledInput: Components>['MuiFilledInput'] = {
5 | styleOverrides: {
6 | root: ({ theme }) => ({
7 | borderRadius: theme.shape.borderRadius * 2,
8 | }),
9 | input: {
10 | padding: 0,
11 | },
12 | sizeSmall: ({ theme }) => ({
13 | paddingLeft: theme.spacing(1.25),
14 | }),
15 | },
16 | };
17 |
18 | export default FilledInput;
--------------------------------------------------------------------------------
/Monitoring-Server/Front-End/src/theme/components/inputs/OutlinedInput.tsx:
--------------------------------------------------------------------------------
1 | import { Theme } from '@mui/material';
2 | import { Components } from '@mui/material/styles/components';
3 |
4 | const OutlinedInput: Components>['MuiOutlinedInput'] = {
5 | styleOverrides: {
6 | root: ({ theme }) => ({
7 | borderRadius: theme.shape.borderRadius * 2,
8 | }),
9 | input: {
10 | padding: 0,
11 | },
12 | sizeSmall: ({ theme }) => ({
13 | paddingLeft: theme.spacing(1.25),
14 | }),
15 | },
16 | };
17 |
18 | export default OutlinedInput;
--------------------------------------------------------------------------------
/Computing-Server/include/AlgoEngine-Core/statistical_models/BayesianDecisionTreeTrading.hpp:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "../indicator/Indicator.hpp"
4 | #include
5 | #include "Utilities/SignalResult.hpp"
6 |
7 | class BayesianDecisionTreeTrading : public Indicator
8 | {
9 | public:
10 | BayesianDecisionTreeTrading(const std::string &indicatorName, int period)
11 | : Indicator(indicatorName, period) {}
12 |
13 | SignalResult calculateSignal() override;
14 | static std::vector evaluateDecisionTree(const std::vector &data, int period);
15 | };
16 |
--------------------------------------------------------------------------------
/Computing-Server/include/Risk-Analysis-Core/VaRCalculator.hpp:
--------------------------------------------------------------------------------
1 | #ifndef VARCALCULATOR_HPP
2 | #define VARCALCULATOR_HPP
3 |
4 | #include
5 |
6 | class VaRCalculator
7 | {
8 | private:
9 | std::vector historical_returns;
10 | double confidence_level;
11 | double var_value;
12 |
13 | public:
14 | VaRCalculator(double confidence_level, double var_val) : confidence_level(confidence_level), var_value(var_val) {};
15 | void calculate_var();
16 | double get_var();
17 | void set_historical_returns(const std::vector &returns);
18 | };
19 |
20 | #endif
--------------------------------------------------------------------------------
/Computing-Server/src/AlgoEngine-Core/Reinforcement_models/QNetwork.cpp:
--------------------------------------------------------------------------------
1 | #include "AlgoEngine-Core/Reinforcement_models/QNetwork.hpp"
2 |
3 | QNetwork::QNetwork()
4 | {
5 | layer1 = register_module("layer1", torch::nn::Linear(STATE_SIZE, 64));
6 | layer2 = register_module("layer2", torch::nn::Linear(64, 64));
7 | layer3 = register_module("layer3", torch::nn::Linear(64, NUM_ACTIONS));
8 | }
9 |
10 | torch::Tensor QNetwork::forward(torch::Tensor x)
11 | {
12 | x = torch::relu(layer1->forward(x));
13 | x = torch::relu(layer2->forward(x));
14 | return layer3->forward(x);
15 | }
16 |
--------------------------------------------------------------------------------
/Computing-Server/include/AlgoEngine-Core/algorithm/CCI.hpp:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "../indicator/Indicator.hpp"
4 | #include
5 |
6 | class CCI : public Indicator
7 | {
8 | public:
9 | CCI(const std::string &indicatorName, int period)
10 | : Indicator(indicatorName, period) {}
11 |
12 | SignalResult calculateSignal() override;
13 | std::vector calculate(const std::vector &data, int period);
14 |
15 | private:
16 | void calculateCCIRange(size_t start, size_t end, const std::vector &data, double constant, std::vector &cciValues);
17 | };
--------------------------------------------------------------------------------
/Computing-Server/include/AlgoEngine-Core/statistical_models/BayesianGARCHTrading.hpp:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "../indicator/Indicator.hpp"
4 | #include
5 | #include
6 | #include
7 | #include "Utilities/SignalResult.hpp"
8 |
9 | class BayesianGARCHTrading : public Indicator
10 | {
11 | public:
12 | BayesianGARCHTrading(const std::string &indicatorName, int period)
13 | : Indicator(indicatorName, period) {}
14 |
15 | SignalResult calculateSignal() override;
16 | static std::vector estimateGARCH(const std::vector &data, int period);
17 | };
18 |
--------------------------------------------------------------------------------
/Computing-Server/include/AlgoEngine-Core/statistical_models/BayesianTrendDetection.hpp:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "../indicator/Indicator.hpp"
4 | #include
5 | #include "Utilities/SignalResult.hpp"
6 | #include
7 | #include
8 |
9 | class BayesianTrendDetection : public Indicator
10 | {
11 | public:
12 | BayesianTrendDetection(const std::string &indicatorName, int period)
13 | : Indicator(indicatorName, period) {}
14 |
15 | SignalResult calculateSignal() override;
16 | static std::vector calculate(const std::vector &data, int period);
17 | };
18 |
--------------------------------------------------------------------------------
/Computing-Server/include/AlgoEngine-Core/statistical_models/BayesianCorrelationEstimation.hpp:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "../indicator/Indicator.hpp"
4 | #include
5 | #include "Utilities/SignalResult.hpp"
6 |
7 | class BayesianCorrelationEstimation : public Indicator
8 | {
9 | public:
10 | BayesianCorrelationEstimation(const std::string &indicatorName, int period)
11 | : Indicator(indicatorName, period) {}
12 |
13 | SignalResult calculateSignal() override;
14 | static std::vector calculate(const std::vector &data1, const std::vector &data2, int period);
15 | };
16 |
--------------------------------------------------------------------------------
/Computing-Server/include/AlgoEngine-Core/time_series_models/VAR.hpp:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "../indicator/Indicator.hpp"
4 | #include
5 | #include
6 | #include
7 | #include "Utilities/SignalResult.hpp"
8 |
9 | class VAR : public Indicator
10 | {
11 | private:
12 | int lagOrder;
13 |
14 | public:
15 | VAR(const std::string &indicatorName, int lagOrder)
16 | : Indicator(indicatorName, lagOrder), lagOrder(lagOrder) {}
17 |
18 | SignalResult calculateSignal() override;
19 | std::vector> fitVAR(const std::vector> &data);
20 | };
21 |
--------------------------------------------------------------------------------
/Computing-Server/include/AlgoEngine-Core/statistical_models/BayesianCausalInferenceTrading.hpp:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "../indicator/Indicator.hpp"
4 | #include
5 | #include