{"repo":"javifalces/HFTFramework","free":true,"listed":false,"github":"https://github.com/javifalces/HFTFramework","clone":"git clone https://github.com/javifalces/HFTFramework.git","description":"HFTFramework utilized  for research on \" A reinforcement learning approach to improve the performance of the Avellaneda-Stoikov market-making algorithm \" ","language":"Jupyter Notebook","stars":304,"topics":["algorithmic","avellaneda","avellaneda-stoikov","deep-learning","hft","high-frequency-trading","market-maker","market-making","market-making-bot","reinforcement-learning","stoikov","trading","trading-bot","trading-strategies"],"license":"Apache-2.0","category":"hft_framework","readme_excerpt":"[![CodeFactor](https://www.codefactor.io/repository/github/javifalces/hftframework/badge)](https://www.codefactor.io/repository/github/javifalces/hftframework)<br>\n[![Java Unit Tests Workflow](https://github.com/javifalces/HFTFramework/actions/workflows/java_test.yml/badge.svg)](https://github.com/javifalces/HFTFramework/actions/workflows/java_test.yml)<br>\n[![Python Unit Tests Workflow](https://github.com/javifalces/HFTFramework/actions/workflows/python_test.yml/badge.svg)](https://github.com/javifalces/HFTFramework/actions/workflows/python_test.yml)\n\n# HFT Framework\n\nThis repository is home to a High-Frequency Trading (HFT) framework, developed using Java and Python, primarily for\n[research applications](#reference). The framework is engineered to interface with live markets through the use of\n[connectors](java/common/connectors), which can be integrated within the\nsame process or remotely via the ZeroMQ networking library.\n\nA significant feature of this framework is its ability to perform backtesting at the L2 tick data level,\nutilizing the same codebase as that used for live market interfacing.\nThis capability allows for a detailed and granular analysis of trading strategies,\nproviding valuable insights into their potential performance in live markets.\n\n**Feedback, suggestions, and modifications are welcomed and appreciated.**<br>\n<br>\n\n**Please note: This framework has not been validated in a live trading environment. Proceed with caution and assume all\nassociated risks.**\n<br>\n<br>\n<!-- TOC -->\n* [HFT Framework](#hft-framework)\n  * [How-to use](#how-to-use)\n    * [1. Create algorithm and backtest](#1-create-algorithm-and-backtest)\n      * [1.1 Java Algorithms](#11-java-algorithms)\n      * [1.2 Pure Python Strategies (python_algo)](#12-pure-python-strategies-python_algo)\n    * [2. Live trading](#2-live-trading)\n      * [Monitoring](java/docs/MONITORING_DOCUMENTATION.md)\n    * [Web Monitoring UI](#web-monitoring-ui)\n    * [3. Market Engine](#3-market-engine)\n      * [XChangeEngine](#xchangeengine)\n      * [MetatraderEngine](#metatraderengine)\n  * [Arquitecture](#arquitecture)\n    * [Backtest](#backtest)\n    * [Live Paper/Staging trading](#live-paperstaging-trading)\n    * [Live trading](#live-trading)\n  * [Environment settings](#environment-settings)\n      * [Optional](#optional)\n  * [I owe you one](#i-owe-you-one)\n  * [TODO](#todo)\n    * [Java documentation reference](#java-documentation-reference)\n    * [Monitoring](#monitoring)\n    * [Reference](#reference)\n<!-- TOC -->\n\n## How-to use\n\n![WebUi](fig/webBacktest.png?raw=true \"webUI\")\n[LLM Documentation](java/docs/Index.md)\n\n### 1. Create algorithm and backtest\n\n**There is a standalone project for creation a custom algorithm in this [github repository](https://github.com/javifalces/HFTFramework_privateAlgosExample)**\n\n* [ALGORITHM_DOCUMENTATION.md](java/docs/ALGORITHM_DOCUMENTATION.md)\n* [BACKTEST_DOCUMENTATION.md](java/docs/BACKTEST_DOCUMENTATION.md)\n* [MARKET_MAKING_ALGORITHMS_DOCUMENTATION.md](java/docs/MARKET_MAKING_ALGORITHMS_DOCUMENTATION.md)\n* [MONITORING_DOCUMENTATION.md](java/docs/MONITORING_DOCUMENTATION.md)\n\n#### 1.1 Java Algorithms\n\nIn this instance, we execute a backtest for the Java\nstrategies [ConstantSpread](java/trading_algorithms/src/main/java/com/lambda/investing/algorithmic_trading/market_making/constant_spread/ConstantSpreadAlgorithm.java)\nand [LinearConstantSpread](java/trading_algorithms/src/main/java/com/lambda/investing/algorithmic_trading/market_making/constant_spread/LinearConstantSpreadAlgorithm.java).\nThese instructions pertain to the execution of pre-existing algorithms.\n\nTo develop a new algorithm, one must create a new class that extends\nfrom [Algorithm.java](java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/Algorithm.java)\nand incorporate it into the trading algorithms provider method getAlgorithm\nin [TradingAlgorithmsProvider.java](java/trading_algorithms/src/main/java/com/lambda/investing/algorithmic_trading/provider/TradingAlgorithmsProvider.java)\n\n1. Execute the compilation and packaging process for the [Backtest](java/executables/Backtest) module, which will result\n   in the generation of a JAR file. The target location for this file is\n   java/executables/Backtest/target/Backtest.jar.If you want to include your own algorithms you can create your own\n   private_trading_algorithms module\n2. Establish a reference to the aforementioned path in the environment variable denoted as **LAMBDA_JAR_PATH**.\n3. Ensure the data folder is prepared and contains the necessary Parquet files for the backtest. An [example data](data)\n   set is provided for reference.\n4. Establish a reference to the data path in the environment variable denoted as **LAMBDA_DATA_PATH**.\n5. Initiate the backtest process. This can be achieved through one of the available options.\n    * **Java:** configuring json [ConstantSpread backtest](java/executables/Backtest/example_ConstantSpread.json)\n      ```java -jar Backtest.jar example_ConstantSpread.json```\n    * **Python:** like in the ConstantSpread\n      example [ConstantSpread](python/trading_algorithms/market_making/constant_spread.py)\n    ```\n   constant_spread = ConstantSpread(algorithm_info='test_main')\n   output_test = constant_spread.test(\n            instrument_pk='btcusdt_kraken',\n            start_date=datetime.datetime(year=2023, day=13, month=11, hour=9),\n            end_date=datetime.datetime(year=2023, day=13, month=11, hour=15),\n        )\n    ```\n\n#### 1.2 Pure Python Strategies (python_algo)\n\nThe framework supports **pure-Python trading strategies** that communicate with the Java framework via ZeroMQ. This allows you to write strategies entirely in Python while leveraging the Java backtesting and live trading infrastructure.\n\n**Architecture:**\n- **Java PUB** → **Python SUB**: Market data events (depth, trade, execution reports, candles)\n- **Java PULL** ← **Python PUSH**: Order/quote commands (asynchronous)\n- **Java REP** ↔ **Python REQ**: Synchronous requests (portfolio snapshot, etc.)\n\n**Transport Options:**\n- **TCP** (default): Works across hosts, `localhost:7700-7703`\n- **IPC**: Same-host only, lower latency via Unix domain sockets\n\n**Codec Options:**\n- **JSON** (default): Human-readable, always available\n- **MessagePack**: ~3× faster parsing, smaller frames\n\n**Quick Start:**\n\n```python\nfrom python_algo import PythonStrategy, ZmqTransport, DepthMsg, TradeMsg, ExecutionReportMsg, CandleMsg, OrderRequestCmd\n\nclass MyStrategy(PythonStrategy):\n    def on_depth(self, depth: DepthMsg) -> None:\n        if depth.spread < 0.01:\n            self.send_order(OrderRequestCmd(\n                instrument=depth.instrument,\n                verb=\"Buy\",\n                order_type=\"Limit\",\n                quantity=0.01,\n                price=depth.best_bid\n            ))\n    \n    def on_trade(self, trade: TradeMsg) -> None:\n        pass\n    \n    def on_execution_report(self, er: ExecutionReportMsg) -> None:\n        print(f\"Order {er.status}: {er.verb} {er.quantity} @ {er.price}\")\n    \n    def on_candle(self, candle: CandleMsg) -> None:\n        pass\n\n# TCP + JSON (default)\ntransport = ZmqTransport(md_sub_port=7700, cmd_push_port=7701, req_port=7703)\nstrategy = MyStrategy(transport, instruments=[\"btcusdt_binance\"])\nstrategy.run()\n```\n\n**Java Configuration (PythonAlgorithm):**\n\nTo run a Python strategy, configure the Java side to use `PythonAlgorithm`:\n\n```json\n{\n  \"algorithm\": {\n    \"algorithmName\": \"PythonAlgorithm\",\n    \"algorithmParameters\": {\n      \"python_transport_type\": \"tcp\",\n      \"python_md_pub_port\": \"7700\",\n      \"python_cmd_pull_port\": \"7701\",\n      \"python_rep_port\": \"7703\",\n      \"python_codec\": \"json\",\n      \"python_backtest_sync\": \"false\"\n    }\n  },\n  \"instruments\": [\"btcusdt_binance\"],\n  \"startDate\": \"2023-11-13 09:00:00\",\n  \"endDate\": \"2023-11-13 15:00:00\"\n}\n```\n\n**Parameters:**\n- `python_transport_type`: \"tcp\" (default) or \"ipc\"\n- `python_md_pub_port`: Port for market data (default: 7700)\n- `python_cmd_pull_port`: Port for commands (default: 7701)\n- `python_rep_port`: Port for synchronous requests (default: 7703)\n- `python_codec`: \"json\" (default) or \"msgpack\"\n- `python_backtest_sync`: Enable ACK handshake for debugger-friendly backtesting (default: false)\n- `python_host`: Bind address for TCP mode (default: \"*\")\n- `python_ipc_md_path`: IPC socket path for market data (default: \"/tmp/python_algo_md\")\n- `python_ipc_cmd_path`: IPC socket path for commands (default: \"/tmp/python_algo_cmd\")\n- `python_ipc_rep_path`: IPC socket path for requests (default: \"/tmp/python_algo_req\")\n\n**Synchronous Portfolio Snapshot:**\n\n```python\nclass MyStrategy(PythonStrategy):\n    def on_depth(self, depth: DepthMsg) -> None:\n        # Request current portfolio state\n        snapshot = self.get_portfolio_snapshot(timeout_ms=5000)\n        \n        if snapshot:\n            print(f\"Total P&L: {snapshot.total_pnl:.2f}\")\n            print(f\"Net Position: {snapshot.net_position:.4f}\")\n            \n            # Per-instrument breakdown\n            for instrument, pnl in snapshot.instrument_pnl_snapshots.items():\n                print(f\"{instrument}: {pnl}\")\n```\n\n**Examples:**\n\nThe [python/python_algo/examples](python/python_algo/examples) directory contains complete working examples:\n\n1. **[avellaneda_stoikov_strategy.py](python/python_algo/examples/avellaneda_stoikov_strategy.py)** - Market making with dynamic spreads\n   ```bash\n   # Run with backtest:\n   python python/python_algo/examples/run_alpha_as_backtest.py\n   \n   # Run with live ZeroMQ:\n   python python/python_algo/examples/run_alpha_as_zeromq.py\n   ```\n\n2. **[sma_candle_strategy.py](python/python_algo/examples/sma_candle_strategy.py)** - Simple Moving Average crossover on candles\n   ```bash\n   # Run with backtest:\n   python python/python_algo/examples/run_sma_backtest.py\n   \n   # Run with live ZeroMQ:\n   python python/python_algo/examples/run_sma_candle_zeromq.py\n   ```\n\n3. **[test_portfolio_snapshot.py](python/python_algo/","default_branch":"main","files":1843,"tree":[".github/workflows/java_test.yml",".github/workflows/python_test.yml",".github/workflows/sonar_build.yml",".github/workflows/version_release_deploy_nexus.yml",".gitignore","AGENTS.md","CITATION.cff","LICENSE","README.md","data/type=depth/instrument=btcusdt_binance/date=20201207/data.parquet","data/type=depth/instrument=btcusdt_binance/date=20201208/data.parquet","data/type=depth/instrument=btcusdt_binance/date=20201209/data.parquet","data/type=depth/instrument=btcusdt_binance/date=20220115/.data.parquet.crc","data/type=depth/instrument=btcusdt_binance/date=20220115/data.parquet","data/type=depth/instrument=btcusdt_kraken/date=20231113/data.parquet","data/type=depth/instrument=eurusd_darwinex/date=20220131/data.parquet","data/type=trade/instrument=btcusdt_binance/date=20201207/data.parquet","data/type=trade/instrument=btcusdt_binance/date=20201208/data.parquet","data/type=trade/instrument=btcusdt_binance/date=20201209/data.parquet","data/type=trade/instrument=btcusdt_binance/date=20220115/.data.parquet.crc","data/type=trade/instrument=btcusdt_binance/date=20220115/data.parquet","data/type=trade/instrument=btcusdt_kraken/date=20231113/data.parquet","docs/alpha_as.md","docs/java_projects.md","docs/json_config.md","docs/reinforcement_learning.md","docs/web-ui.md","fig/AlphaAS_functional.jpg","fig/BacktestArquitecture.jpg","fig/GymCommunication.jpg","fig/LiveArquitecture.jpg","fig/LivePaperArchitecture.jpg","fig/UI.jpg","fig/is_learning.png","fig/metatrader5.jpg","fig/monitoring/monitoring_application_logs.png","fig/monitoring/monitoring_jvm_performance.png","fig/monitoring/monitoring_latency_statistics.png","fig/webBacktest.png","java/.gitignore","java/AGENTS.md","java/algorithmic_trading_framework/pom.xml","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/Algorithm.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/AlgorithmConnectorConfiguration.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/AlgorithmNotifier.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/AlgorithmObserver.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/AlgorithmParameters.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/AlgorithmProvider.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/AlgorithmProviderImpl.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/AlgorithmState.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/CustomColumn.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/ExecutionReportManager.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/InstrumentManager.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/LogLevels.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/MultiAlgorithm.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/SingleInstrumentAlgorithm.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/candle_manager/CandleFromTickUpdater.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/candle_manager/CandleFromTickUpdaterInstrument.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/candle_manager/CandleListener.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/candle_manager/TimeCandleManager.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/data/CandleData.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/factor_investing/AbstractFactorInvestingAlgorithm.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/factor_investing/MarketFactorInvestingAlgorithm.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/factor_investing/SniperFactorInvestingAlgorithm.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/factor_investing/executors/AbstractExecutor.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/factor_investing/executors/Executor.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/factor_investing/executors/ExecutorStatistics.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/factor_investing/executors/ImplementationShortfallExecutor.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/factor_investing/executors/MarketExecutor.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/factor_investing/executors/POVExecutor.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/factor_investing/executors/SniperExecutor.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/factor_investing/executors/TWAPExecutor.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/factor_investing/executors/VWAPExecutor.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/gui/algorithm/AlgorithmGui.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/gui/algorithm/DepthTableModel.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/gui/algorithm/default_gui/DefaultAlgorithmGui.form","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/gui/algorithm/default_gui/DefaultAlgorithmGui.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/gui/main/MainMenuGUI.form","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/gui/main/MainMenuGUI.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/gui/timeseries/TickTimeSeries.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/hedging/HedgeManager.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/hedging/LinearRegressionHedgeManager.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/hedging/NoHedgeManager.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/hedging/synthetic_portfolio/AssetSyntheticPortfolio.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/hedging/synthetic_portfolio/DynamicSyntheticInstrument.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/hedging/synthetic_portfolio/SyntheticInstrument.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/observer/LiveTradeReport.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/observer/PrometheusAlgorithmObserver.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/observer/push/PushService.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/observer/push/pushbullet/PushbulletAlgorithmObserver.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/observer/push/pushbullet/PushbulletMessageListener.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/observer/push/pushbullet/PushbulletMessageReader.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/observer/web/AlgorithmWebServer.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/observer/web/WebAlgorithmObserver.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/observer/web/WebAppDemo.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/pnl_calculation/MultiAlgoPortfolioAggregator.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/pnl_calculation/PnlSnapshot.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/pnl_calculation/PnlSnapshotOrders.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/pnl_calculation/PortfolioManager.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/pnl_calculation/PortfolioSnapshot.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/provider/AlgorithmCreationUtils.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/provider/AlgorithmProvider.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/quoting/QuoteManager.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/quoting/QuoteSideManager.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/reinforcement_learning/IterationsPeriodTime.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/reinforcement_learning/MatrixRoundUtils.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/reinforcement_learning/MemoryReplayModel.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/reinforcement_learning/ReinforcementAlgoUtils.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/reinforcement_learning/ReinforcementLearningActionType.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/reinforcement_learning/ReinforcementLearningType.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/reinforcement_learning/ScoreEnum.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/reinforcement_learning/ScoreUtils.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/reinforcement_learning/SingleInstrumentRLAlgorithm.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/reinforcement_learning/SingleInstrumentRLReplier.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/reinforcement_learning/TrainNNUtils.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/reinforcement_learning/TrainType.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/reinforcement_learning/action/AbstractAction.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/reinforcement_learning/action/ActionColumn.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/reinforcement_learning/action/AvellanedaAction.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/reinforcement_learning/action/ConstantSpreadAction.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/reinforcement_learning/action/MeanReversionAction.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/reinforcement_learning/action/SpreadAction.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/reinforcement_learning/action/TrendFollowingAction.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/reinforcement_learning/q_learn/DeepQLearning.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/reinforcement_learning/q_learn/IExplorationPolicy.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/reinforcement_learning/q_learn/QLearning.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/reinforcement_learning/q_learn/exploration_policy/BoltzmannExploration.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/reinforcement_learning/q_learn/exploration_policy/EpsilonGreedyExploration.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/reinforcement_learning/q_learn/exploration_policy/RouletteWheelExploration.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/reinforcement_learning/q_learn/exploration_policy/TabuSearchExploration.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/reinforcement_learning/reinforce/Reinforce.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/reinforcement_learning/state/AbstractState.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/reinforcement_learning/state/DiscreteTAState.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/reinforcement_learning/state/DiscreteTAStateFX.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/reinforcement_learning/state/DumpCache.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/reinforcement_learning/state/MarketState.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/reinforcement_learning/state/MultiMarketDiscreteTAState.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/reinforcement_learning/state/MultiMarketDiscreteTAStateFX.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/reinforcement_learning/state/MultiMarketState.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/reinforcement_learning/state/PrivateState.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/reinforcement_learning/state/StateManager.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/time_service/BacktestTimeService.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/time_service/TimeService.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/time_service/TimeServiceIfc.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/utils/AlgorithmUtils.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/utils/AppUtils.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/utils/FileUtils.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/utils/TechnicalIndicatorsUtils.java","java/algorithmic_trading_framework/src/main/java/com/lambda/investing/algorithmic_trading/utils/TimeseriesUtils.java","java/algorithmic_trading_framework/src/main/resources/btceur_binance_regression.txt","java/algorithmic_trading_framework/src/main/resources/css/base.css","java/algorithmic_trading_framework/src/main/resources/css/dashboard.css","java/algorithmic_trading_framework/src/main/resources/css/index.css","java/algorithmic_trading_framework/src/main/resources/dashboard.html","java/algorithmic_trading_framework/src/main/resources/index.html","java/algorithmic_trading_framework/src/main/resources/js/dashboard.js","java/algorithmic_trading_framework/src/main/resources/js/index.js","java/algorithmic_trading_framework/src/main/resources/js/ui.js","java/algorithmic_trading_framework/src/main/resources/js/utils.js","java/algorithmic_trading_framework/src/main/resources/log4j.properties","java/algorithmic_trading_framework/src/test/java/com/lambda/investing/algorithmic_trading/PnlSnapshotTest.java","java/algorithmic_trading_framework/src/test/java/com/lambda/investing/algorithmic_trading/TimeseriesUtilsTest.java","java/algorithmic_trading_framework/src/test/java/com/lambda/investing/algorithmic_trading/data/CandleDataTest.java","java/algorithmic_trading_framework/src/test/java/com/lambda/investing/algorithmic_trading/factor_investing/executors/AbstractExecutorTest.java","java/algorithmic_trading_framework/src/test/java/com/lambda/investing/algorithmic_trading/factor_investing/executors/ExecutorStatisticsTest.java","java/algorithmic_trading_framework/src/test/java/com/lambda/investing/algorithmic_trading/factor_investing/executors/ExecutorTestUtils.java","java/algorithmic_trading_framework/src/test/java/com/lambda/investing/algorithmic_trading/factor_investing/executors/ImplementationShortfallExecutorTest.java","java/algorithmic_trading_framework/src/test/java/com/lambda/investing/algorithmic_trading/factor_investing/executors/POVExecutorTest.java","java/algorithmic_trading_framework/src/test/java/com/lambda/investing/algorithmic_trading/factor_investing/executors/TWAPExecutorTest.java","java/algorithmic_trading_framework/src/test/java/com/lambda/investing/algorithmic_trading/factor_investing/executors/VWAPExecutorTest.java","java/algorithmic_trading_framework/src/test/java/com/lambda/investing/algorithmic_trading/reinforcement_learning/action/AvellanedaActionTest.java","java/algorithmic_trading_framework/src/test/java/com/lambda/investing/algorithmic_trading/reinforcement_learning/action/ConstantSpreadActionTest.java","java/algorithmic_trading_framework/src/test/java/com/lambda/investing/algorithmic_trading/reinforcement_learning/action/MeanReversionActionTest.java","java/algorithmic_trading_framework/src/test/java/com/lambda/investing/algorithmic_trading/reinforcement_learning/q_learn/TestAction.java","java/algorithmic_trading_framework/src/test/java/com/lambda/investing/algorithmic_trading/reinforcement_learning/q_learn/TestState.java","java/algorithmic_trading_framework/src/test/java/com/lambda/investing/algorithmic_trading/reinforcement_learning/state/AbstractStateTest.java","java/algorithmic_trading_framework/src/test/resources/lambda_data/type=candle_midpricetime_MIN1/instrument=dogeeur_kraken/date=20250319/data.parquet","java/algorithmic_trading_framework/src/test/resources/log4j2.xml","java/backtest_engine/pom.xml","java/backtest_engine/src/main/java/com/lambda/investing/backtest_engine/AbstractBacktest.java","java/backtest_engine/src/main/java/com/lambda/investing/backtest_engine/BacktestConfiguration.java","java/backtest_engine/src/main/java/com/lambda/investing/backtest_engine/BacktestExternalConnection.java","java/backtest_engine/src/main/java/com/lambda/investing/backtest_engine/BacktestSource.java","java/backtest_engine/src/main/java/com/lambda/investing/backtest_engine/ordinary/OrdinaryBacktest.java","java/backtest_engine/src/main/java/com/lambda/investing/backtest_engine/ordinary/OrdinaryBacktestRLGym.java","java/backtest_engine/src/main/java/com/lambda/investing/backtest_engine/zero_mq/CSVZeroMqBacktest.java","java/backtest_engine/src/main/java/com/lambda/investing/live_trading_engine/LiveTrading.java","java/common/broker_connector_instances/metatrader_ea/.readme","java/common/broker_connector_instances/metatrader_ea/Include/Arrays/Array.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Arrays/ArrayChar.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Arrays/ArrayDouble.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Arrays/ArrayFloat.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Arrays/ArrayInt.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Arrays/ArrayLong.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Arrays/ArrayObj.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Arrays/ArrayShort.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Arrays/ArrayString.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Arrays/List.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Arrays/Tree.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Arrays/TreeNode.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Canvas/Canvas.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Canvas/Canvas3D.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Canvas/Charts/ChartCanvas.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Canvas/Charts/HistogramChart.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Canvas/Charts/LineChart.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Canvas/Charts/PieChart.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Canvas/DX/DXBox.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Canvas/DX/DXBuffers.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Canvas/DX/DXData.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Canvas/DX/DXDispatcher.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Canvas/DX/DXHandle.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Canvas/DX/DXInput.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Canvas/DX/DXMath.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Canvas/DX/DXMesh.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Canvas/DX/DXObject.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Canvas/DX/DXObjectBase.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Canvas/DX/DXShader.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Canvas/DX/DXSurface.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Canvas/DX/DXTexture.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Canvas/DX/DXUtils.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Canvas/DX/Shaders/DefaultShaderPixel.hlsl","java/common/broker_connector_instances/metatrader_ea/Include/Canvas/DX/Shaders/DefaultShaderVertex.hlsl","java/common/broker_connector_instances/metatrader_ea/Include/Canvas/FlameCanvas.mqh","java/common/broker_connector_instances/metatrader_ea/Include/ChartObjects/ChartObject.mqh","java/common/broker_connector_instances/metatrader_ea/Include/ChartObjects/ChartObjectPanel.mqh","java/common/broker_connector_instances/metatrader_ea/Include/ChartObjects/ChartObjectSubChart.mqh","java/common/broker_connector_instances/metatrader_ea/Include/ChartObjects/ChartObjectsArrows.mqh","java/common/broker_connector_instances/metatrader_ea/Include/ChartObjects/ChartObjectsBmpControls.mqh","java/common/broker_connector_instances/metatrader_ea/Include/ChartObjects/ChartObjectsChannels.mqh","java/common/broker_connector_instances/metatrader_ea/Include/ChartObjects/ChartObjectsElliott.mqh","java/common/broker_connector_instances/metatrader_ea/Include/ChartObjects/ChartObjectsFibo.mqh","java/common/broker_connector_instances/metatrader_ea/Include/ChartObjects/ChartObjectsGann.mqh","java/common/broker_connector_instances/metatrader_ea/Include/ChartObjects/ChartObjectsLines.mqh","java/common/broker_connector_instances/metatrader_ea/Include/ChartObjects/ChartObjectsShapes.mqh","java/common/broker_connector_instances/metatrader_ea/Include/ChartObjects/ChartObjectsTxtControls.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Charts/Chart.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Controls/BmpButton.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Controls/Button.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Controls/CheckBox.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Controls/CheckGroup.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Controls/ComboBox.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Controls/DateDropList.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Controls/DatePicker.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Controls/Defines.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Controls/Dialog.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Controls/Edit.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Controls/Label.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Controls/ListView.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Controls/Panel.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Controls/Picture.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Controls/RadioButton.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Controls/RadioGroup.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Controls/Rect.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Controls/Scrolls.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Controls/SpinEdit.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Controls/Wnd.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Controls/WndClient.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Controls/WndContainer.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Controls/WndObj.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Controls/res/CheckBoxOff.bmp","java/common/broker_connector_instances/metatrader_ea/Include/Controls/res/CheckBoxOn.bmp","java/common/broker_connector_instances/metatrader_ea/Include/Controls/res/Close.bmp","java/common/broker_connector_instances/metatrader_ea/Include/Controls/res/DateDropOff.bmp","java/common/broker_connector_instances/metatrader_ea/Include/Controls/res/DateDropOn.bmp","java/common/broker_connector_instances/metatrader_ea/Include/Controls/res/Down.bmp","java/common/broker_connector_instances/metatrader_ea/Include/Controls/res/DownTransp.bmp","java/common/broker_connector_instances/metatrader_ea/Include/Controls/res/DropOff.bmp","java/common/broker_connector_instances/metatrader_ea/Include/Controls/res/DropOn.bmp","java/common/broker_connector_instances/metatrader_ea/Include/Controls/res/Left.bmp","java/common/broker_connector_instances/metatrader_ea/Include/Controls/res/LeftTransp.bmp","java/common/broker_connector_instances/metatrader_ea/Include/Controls/res/RadioButtonOff.bmp","java/common/broker_connector_instances/metatrader_ea/Include/Controls/res/RadioButtonOn.bmp","java/common/broker_connector_instances/metatrader_ea/Include/Controls/res/Restore.bmp","java/common/broker_connector_instances/metatrader_ea/Include/Controls/res/Right.bmp","java/common/broker_connector_instances/metatrader_ea/Include/Controls/res/RightTransp.bmp","java/common/broker_connector_instances/metatrader_ea/Include/Controls/res/SpinDec.bmp","java/common/broker_connector_instances/metatrader_ea/Include/Controls/res/SpinInc.bmp","java/common/broker_connector_instances/metatrader_ea/Include/Controls/res/ThumbHor.bmp","java/common/broker_connector_instances/metatrader_ea/Include/Controls/res/ThumbVert.bmp","java/common/broker_connector_instances/metatrader_ea/Include/Controls/res/Turn.bmp","java/common/broker_connector_instances/metatrader_ea/Include/Controls/res/Up.bmp","java/common/broker_connector_instances/metatrader_ea/Include/Controls/res/UpTransp.bmp","java/common/broker_connector_instances/metatrader_ea/Include/Expert/Expert.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Expert/ExpertBase.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Expert/ExpertMoney.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Expert/ExpertSignal.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Expert/ExpertTrade.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Expert/ExpertTrailing.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Expert/Money/MoneyFixedLot.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Expert/Money/MoneyFixedMargin.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Expert/Money/MoneyFixedRisk.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Expert/Money/MoneyNone.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Expert/Money/MoneySizeOptimized.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Expert/Signal/SignalAC.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Expert/Signal/SignalAMA.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Expert/Signal/SignalAO.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Expert/Signal/SignalBearsPower.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Expert/Signal/SignalBullsPower.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Expert/Signal/SignalCCI.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Expert/Signal/SignalDEMA.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Expert/Signal/SignalDeMarker.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Expert/Signal/SignalEnvelopes.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Expert/Signal/SignalFrAMA.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Expert/Signal/SignalITF.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Expert/Signal/SignalMA.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Expert/Signal/SignalMACD.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Expert/Signal/SignalRSI.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Expert/Signal/SignalRVI.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Expert/Signal/SignalSAR.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Expert/Signal/SignalStoch.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Expert/Signal/SignalTEMA.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Expert/Signal/SignalTRIX.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Expert/Signal/SignalWPR.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Expert/Trailing/TrailingFixedPips.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Expert/Trailing/TrailingMA.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Expert/Trailing/TrailingNone.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Expert/Trailing/TrailingParabolicSAR.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Files/File.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Files/FileBMP.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Files/FileBin.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Files/FilePipe.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Files/FileTxt.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Generic/ArrayList.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Generic/HashMap.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Generic/HashSet.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Generic/Interfaces/ICollection.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Generic/Interfaces/IComparable.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Generic/Interfaces/IComparer.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Generic/Interfaces/IEqualityComparable.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Generic/Interfaces/IEqualityComparer.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Generic/Interfaces/IList.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Generic/Interfaces/IMap.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Generic/Interfaces/ISet.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Generic/Internal/ArrayFunction.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Generic/Internal/CompareFunction.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Generic/Internal/DefaultComparer.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Generic/Internal/DefaultEqualityComparer.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Generic/Internal/EqualFunction.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Generic/Internal/HashFunction.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Generic/Internal/Introsort.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Generic/Internal/PrimeGenerator.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Generic/LinkedList.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Generic/Queue.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Generic/RedBlackTree.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Generic/SortedMap.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Generic/SortedSet.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Generic/Stack.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Graphics/Axis.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Graphics/ColorGenerator.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Graphics/Curve.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Graphics/Graphic.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Indicators/BillWilliams.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Indicators/Custom.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Indicators/Indicator.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Indicators/Indicators.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Indicators/Oscilators.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Indicators/Series.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Indicators/TimeSeries.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Indicators/Trend.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Indicators/Volumes.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Math/Alglib/alglib.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Math/Alglib/alglibinternal.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Math/Alglib/alglibmisc.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Math/Alglib/ap.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Math/Alglib/arrayresize.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Math/Alglib/bitconvert.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Math/Alglib/complex.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Math/Alglib/dataanalysis.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Math/Alglib/delegatefunctions.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Math/Alglib/diffequations.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Math/Alglib/fasttransforms.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Math/Alglib/integration.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Math/Alglib/interpolation.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Math/Alglib/linalg.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Math/Alglib/matrix.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Math/Alglib/optimization.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Math/Alglib/solvers.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Math/Alglib/specialfunctions.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Math/Alglib/statistics.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Math/Fuzzy/dictionary.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Math/Fuzzy/fuzzyrule.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Math/Fuzzy/fuzzyterm.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Math/Fuzzy/fuzzyvariable.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Math/Fuzzy/genericfuzzysystem.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Math/Fuzzy/helper.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Math/Fuzzy/inferencemethod.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Math/Fuzzy/mamdanifuzzysystem.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Math/Fuzzy/membershipfunction.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Math/Fuzzy/ruleparser.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Math/Fuzzy/sugenofuzzysystem.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Math/Fuzzy/sugenovariable.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Math/Stat/Beta.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Math/Stat/Binomial.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Math/Stat/Cauchy.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Math/Stat/ChiSquare.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Math/Stat/Exponential.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Math/Stat/F.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Math/Stat/Gamma.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Math/Stat/Geometric.mqh","java/common/broker_connector_instances/metatrader_ea/Include/Math/Stat/Hypergeometric.mqh"],"storefront":"/r/javifalces","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/javifalces/HFTFramework/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}