From ffeb6944d0e1a4bcf7126335ae6f01d655474ea7 Mon Sep 17 00:00:00 2001 From: Ichinga Samuel Date: Fri, 27 Feb 2026 04:19:44 +0100 Subject: [PATCH] v4.1.0 --- README.md | 56 ++++++++++++++++----- src/aiomql/contrib/traders/scalp_trader.py | 1 + src/aiomql/contrib/traders/simple_trader.py | 1 + 3 files changed, 46 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index fc8beb0..b61120f 100644 --- a/README.md +++ b/README.md @@ -255,18 +255,50 @@ Bot.process_pool(processes={run_forex: {}, run_crypto: {}}, num_workers=2) ``` src/aiomql/ -├── core/ # MetaTrader interface, Config, constants, models, DB, State, errors -│ └── sync/ # Synchronous MetaTrader wrapper -├── lib/ # High-level components (Bot, Strategy, Order, Symbol, Candle, …) -│ └── sync/ # Synchronous mirrors (Strategy, Symbol, Trader, …) -├── contrib/ # Community extensions -│ ├── strategies/ # Chaos (random buy/sell demo) -│ ├── symbols/ # ForexSymbol (pip calculations) -│ ├── trackers/ # Position & open-positions trackers -│ ├── traders/ # SimpleTrader, ScalpTrader -│ └── utils/ # StrategyTracker (Tracker) -├── ta_libs/ # Technical analysis (pandas-ta classic) -└── utils/ # Decorators, price helpers, process pool +├── core/ # Low-level infrastructure +│ ├── _core.py # MT5 function definitions & async wrappers +│ ├── meta_trader.py # MetaTrader singleton (init, login, symbol/order calls) +│ ├── config.py # Singleton Config (JSON + programmatic settings) +│ ├── constants.py # Enums (TimeFrame, OrderType, TradeAction, …) +│ ├── models.py # Data models (SymbolInfo, AccountInfo, TradeRequest, …) +│ ├── base.py # _Base metaclass (attribute helpers, MT5 access) +│ ├── db.py # SQLite trade-results database +│ ├── store.py # In-memory shared state store +│ ├── state.py # State management +│ ├── task_queue.py # Async task queue for scheduled work +│ ├── errors.py # Error definitions +│ ├── exceptions.py # Custom exceptions (OrderError, LoginError, …) +│ └── sync/ # Synchronous MetaTrader wrapper +│ +├── lib/ # High-level trading components +│ ├── bot.py # Bot orchestrator (strategy runner, process pool) +│ ├── executor.py # Thread/task executor for strategies +│ ├── strategy.py # Strategy base class (trade loop, sessions) +│ ├── symbol.py # Symbol (market data, ticks, rates) +│ ├── order.py # Order (check, send, margin, profit) +│ ├── trader.py # Trader (place_trade, SL/TP management) +│ ├── account.py # Account singleton +│ ├── candle.py # Candles collection (DataFrame + TA) +│ ├── ticks.py # Tick & Ticks (tick data collections) +│ ├── positions.py # Position querying & management +│ ├── history.py # Trade & order history +│ ├── ram.py # RAM (Risk Assessment & Money) manager +│ ├── sessions.py # Session & Sessions (time-window trading) +│ ├── terminal.py # Terminal info wrapper +│ ├── result.py # Trade result recording (CSV/JSON) +│ ├── result_db.py # Trade result recording (SQLite) +│ ├── trade_records.py# Trade records management +│ └── sync/ # Synchronous mirrors of lib modules +│ +├── contrib/ # Community extensions +│ ├── strategies/ # Chaos (random buy/sell demo) +│ ├── symbols/ # ForexSymbol (pip & volume calculations) +│ ├── trackers/ # Position & open-positions trackers +│ ├── traders/ # SimpleTrader, ScalpTrader +│ └── utils/ # StrategyTracker (Tracker) +│ +├── ta_libs/ # Technical analysis (pandas-ta classic) +└── utils/ # Decorators, price helpers, process pool ``` --- diff --git a/src/aiomql/contrib/traders/scalp_trader.py b/src/aiomql/contrib/traders/scalp_trader.py index dc99c64..c0490aa 100644 --- a/src/aiomql/contrib/traders/scalp_trader.py +++ b/src/aiomql/contrib/traders/scalp_trader.py @@ -40,5 +40,6 @@ class ScalpTrader(Trader): res = await self.send_order() if res is not None: await self.record_trade(result=res, parameters=self.parameters) + self.reset_order() except Exception as err: logger.error(f"{err} in {self.__class__.__name__}.place_trade for {self.symbol.name}") diff --git a/src/aiomql/contrib/traders/simple_trader.py b/src/aiomql/contrib/traders/simple_trader.py index a514533..1726673 100644 --- a/src/aiomql/contrib/traders/simple_trader.py +++ b/src/aiomql/contrib/traders/simple_trader.py @@ -36,5 +36,6 @@ class SimpleTrader(Trader): return self.order.comment = self.parameters.get("name", self.__class__.__name__) await self.send_order() + self.reset_order() except Exception as err: logger.error(f"{err} in {self.__class__.__name__}.place_trade for {self.symbol.name}")