mirror of
https://github.com/Ichinga-Samuel/aiomql.git
synced 2026-08-17 22:08:06 +00:00
v4.0.17 no-backtest
This commit is contained in:
+86
-361
@@ -1,386 +1,111 @@
|
||||
# Models
|
||||
# models
|
||||
|
||||
This module contains the models used in the aiomql package. These models are used to represent the data returned from
|
||||
the MetaTrader 5 terminal. They are all subclasses of the `Base` class.
|
||||
`aiomql.core.models` — Data models mirroring MetaTrader 5 structures.
|
||||
|
||||
## Table of Contents
|
||||
- [AccountInfo](#models.account_info)
|
||||
- [TerminalInfo](#models.terminal_info)
|
||||
- [SymbolInfo](#models.symbol.info)
|
||||
- [BookInfo](#models.book_info)
|
||||
- [TradeOrder](#models.trade_order)
|
||||
- [TradeRequest](#models_trade_request)
|
||||
- [OrderCheckResult](#models.order_check_result)
|
||||
- [OrderSendResult](#models.order_send_result)
|
||||
- [TradePosition](#models.trade_position)
|
||||
- [TradeDeal](#models.trade_deal)
|
||||
## Overview
|
||||
|
||||
Defines data-model classes that correspond to the named-tuple structures returned by the
|
||||
MetaTrader 5 terminal. All models inherit from [`Base`](base.md) and provide typed attributes,
|
||||
dictionary conversion, and string representations.
|
||||
|
||||
<a id="models.account_info"></a>
|
||||
### AccountInfo
|
||||
```python
|
||||
class AccountInfo(Base)
|
||||
```
|
||||
Account Information Class.
|
||||
#### Attributes:
|
||||
| Name | Type | Description | Default |
|
||||
|----------------------|----------------------|------------------------------------------|---------|
|
||||
| `login` | `int` | Account number | |
|
||||
| `password` | `str` | Account password | |
|
||||
| `server` | `str` | Trade server name | |
|
||||
| `trade_mode` | AccountTradeMode | Trade mode | |
|
||||
| `balance` | `float` | Account balance | |
|
||||
| `leverage` | `float` | Account leverage | |
|
||||
| `profit` | `float` | Account profit | |
|
||||
| `point` | `float` | Point size | |
|
||||
| `amount` | `float` | Account amount | 0 |
|
||||
| `equity` | `float` | Account equity | |
|
||||
| `credit` | `float` | Account credit | |
|
||||
| `margin` | `float` | Account margin | |
|
||||
| `margin_level` | `float` | Margin level | |
|
||||
| `margin_free` | `float` | Free margin | |
|
||||
| `margin_mode` | `AccountMarginMode` | Margin calculation mode | |
|
||||
| `margin_so_mode` | `AccountStopoutMode` | Stop out mode | |
|
||||
| `margin_so_call` | `float` | Margin call level | |
|
||||
| `margin_so_so` | `float` | Stop out level | |
|
||||
| `margin_initial` | `float` | Initial margin | |
|
||||
| `margin_maintenance` | `float` | Maintenance margin | |
|
||||
| `fifo_close` | `bool` | FIFO close flag | |
|
||||
| `limit_orders` | `float` | Limit orders | |
|
||||
| `currency` | `str` | Account currency | "USD" |
|
||||
| `trade_allowed` | `bool` | Trade allowed flag | True |
|
||||
| `trade_expert` | `bool` | Trade expert flag | True |
|
||||
| `currency_digits` | `int` | Number of digits after the decimal point | |
|
||||
| `assets` | `float` | Assets | |
|
||||
| `liabilities` | `float` | Liabilities | |
|
||||
| `commission_blocked` | `float` | Blocked commission | |
|
||||
| `name` | `str` | Account name | |
|
||||
| `company` | `str` | Company name | |
|
||||
## Classes
|
||||
|
||||
### `AccountInfo`
|
||||
|
||||
<a id="models.terminal_info"></a>
|
||||
### TerminalInfo
|
||||
```python
|
||||
class TerminalInfo(Base)
|
||||
```
|
||||
Terminal information class. Holds information about the terminal.
|
||||
> Trading account information.
|
||||
|
||||
#### Attributes:
|
||||
| Name | Type | Description | Default |
|
||||
|-------------------------|---------|----------------------------|---------|
|
||||
| `community_account` | `bool` | Community account flag | |
|
||||
| `community_connection` | `bool` | Community connection flag | |
|
||||
| `connected` | `bool` | Connection flag | |
|
||||
| `dlls_allowed` | `bool` | DLLs allowed flag | |
|
||||
| `trade_allowed` | `bool` | Trade allowed flag | |
|
||||
| `tradeapi_disabled` | `bool` | Trade API disabled flag | |
|
||||
| `email_enabled` | `bool` | Email enabled flag | |
|
||||
| `ftp_enabled` | `bool` | FTP enabled flag | |
|
||||
| `notifications_enabled` | `bool` | Notifications enabled flag | |
|
||||
| `mqid` | `bool` | MQID | |
|
||||
| `build` | `int` | Build number | |
|
||||
| `maxbars` | `int` | Maximum number of bars | |
|
||||
| `codepage` | `int` | Code page | |
|
||||
| `ping_last` | `int` | Last ping | |
|
||||
| `community_balance` | `float` | Community balance | |
|
||||
| `retransmission` | `float` | Retransmission | |
|
||||
| `company` | `str` | Company name | |
|
||||
| `name` | `str` | Terminal name | |
|
||||
| `language` | `str` | Language | |
|
||||
| `path` | `str` | Terminal path | |
|
||||
| `data_path` | `str` | Data path | |
|
||||
| `commondata_path` | `str` | Common data path | |
|
||||
Key fields: `login`, `server`, `trade_mode`, `balance`, `leverage`, `profit`, `equity`,
|
||||
`margin`, `margin_free`, `margin_level`, `currency`.
|
||||
|
||||
---
|
||||
|
||||
<a id="models.symbol_info"></a>
|
||||
### SymbolInfo
|
||||
```python
|
||||
class SymbolInfo(Base)
|
||||
```
|
||||
Symbol Information Class. Symbols are financial instruments available for trading in the MetaTrader 5 terminal.
|
||||
#### Attributes:
|
||||
| Name | Type | Description | Default |
|
||||
|------------------------------|------------------------|----------------------------|---------|
|
||||
| `name` | `str` | Symbol name | |
|
||||
| `custom` | `bool` | Custom symbol flag | |
|
||||
| `chart_mode` | `SymbolChartMode` | Chart mode | |
|
||||
| `select` | `bool` | Symbol selection flag | |
|
||||
| `visible` | `bool` | Symbol visibility flag | |
|
||||
| `session_deals` | `int` | Session deals | |
|
||||
| `session_buy_orders` | `int` | Session buy orders | |
|
||||
| `session_sell_orders` | `int` | Session sell orders | |
|
||||
| `volume` | `float` | Volume | |
|
||||
| `volumehigh` | `float` | Volume high | |
|
||||
| `volumelow` | `float` | Volume low | |
|
||||
| `time` | `int` | Time | |
|
||||
| `digits` | `int` | Digits | |
|
||||
| `spread` | `float` | Spread | |
|
||||
| `spread_float` | `bool` | Spread float flag | |
|
||||
| `ticks_bookdepth` | `int` | Ticks book depth | |
|
||||
| `trade_calc_mode` | `SymbolCalcMode` | Trade calculation mode | |
|
||||
| `trade_mode` | `SymbolTradeMode` | Trade mode | |
|
||||
| `start_time` | `int` | Start time | |
|
||||
| `expiration_time` | `int` | Expiration time | |
|
||||
| `trade_stops_level` | `int` | Trade stops level | |
|
||||
| `trade_freeze_level` | `int` | Trade freeze level | |
|
||||
| `trade_exemode` | `SymbolTradeExecution` | Trade execution mode | |
|
||||
| `swap_mode` | `SymbolSwapMode` | Swap mode | |
|
||||
| `swap_rollover3days` | `DayOfWeek` | Swap rollover 3 days | |
|
||||
| `margin_hedged_use_leg` | `bool` | Margin hedged use leg flag | |
|
||||
| `expiration_mode` | `int` | Expiration mode | |
|
||||
| `filling_mode` | `int` | Filling mode | |
|
||||
| `order_mode` | `int` | Order mode | |
|
||||
| `order_gtc_mode` | `SymbolOrderGTCMode` | Order GTC mode | |
|
||||
| `option_mode` | `SymbolOptionMode` | Option mode | |
|
||||
| `option_right` | `SymbolOptionRight` | Option right | |
|
||||
| `bid` | `float` | Bid | |
|
||||
| `bidhigh` | `float` | Bid high | |
|
||||
| `bidlow` | `float` | Bid low | |
|
||||
| `ask` | `float` | Ask | |
|
||||
| `askhigh` | `float` | Ask high | |
|
||||
| `asklow` | `float` | Ask low | |
|
||||
| `last` | `float` | Last | |
|
||||
| `lasthigh` | `float` | Last high | |
|
||||
| `lastlow` | `float` | Last low | |
|
||||
| `volume_real` | `float` | Volume real | |
|
||||
| `volumehigh_real` | `float` | Volume high real | |
|
||||
| `volumelow_real` | `float` | Volume low real | |
|
||||
| `option_strike` | `float` | Option strike | |
|
||||
| `point` | `float` | Point | |
|
||||
| `trade_tick_value` | `float` | Trade tick value | |
|
||||
| `trade_tick_value_profit` | `float` | Trade tick value profit | |
|
||||
| `trade_tick_value_loss` | `float` | Trade tick value loss | |
|
||||
| `trade_tick_size` | `float` | Trade tick size | |
|
||||
| `trade_contract_size` | `float` | Trade contract size | |
|
||||
| `trade_accrued_interest` | `float` | Trade accrued interest | |
|
||||
| `trade_face_value` | `float` | Trade face value | |
|
||||
| `trade_liquidity_rate` | `float` | Trade liquidity rate | |
|
||||
| `volume_min` | `float` | Volume min | |
|
||||
| `volume_max` | `float` | Volume max | |
|
||||
| `volume_step` | `float` | Volume step | |
|
||||
| `volume_limit` | `float` | Volume limit | |
|
||||
| `swap_long` | `float` | Swap long | |
|
||||
| `swap_short` | `float` | Swap short | |
|
||||
| `margin_initial` | `float` | Initial margin | |
|
||||
| `margin_maintenance` | `float` | Maintenance margin | |
|
||||
| `session_volume` | `float` | Session volume | |
|
||||
| `session_turnover` | `float` | Session turnover | |
|
||||
| `session_interest` | `float` | Session interest | |
|
||||
| `session_buy_orders_volume` | `float` | Session buy orders volume | |
|
||||
| `session_sell_orders_volume` | `float` | Session sell orders volume | |
|
||||
| `session_open` | `float` | Session open | |
|
||||
| `session_close` | `float` | Session close | |
|
||||
| `session_aw` | `float` | Session AW | |
|
||||
| `session_price_settlement` | `float` | Session price settlement | |
|
||||
| `session_price_limit_min` | `float` | Session price limit min | |
|
||||
| `session_price_limit_max` | `float` | Session price limit max | |
|
||||
| `margin_hedged` | `float` | Margin hedged | |
|
||||
| `price_change` | `float` | Price change | |
|
||||
| `price_volatility` | `float` | Price volatility | |
|
||||
| `price_theoretical` | `float` | Price theoretical | |
|
||||
| `price_greeks_delta` | `float` | Price greeks delta | |
|
||||
| `price_greeks_theta` | `float` | Price greeks theta | |
|
||||
| `price_greeks_gamma` | `float` | Price greeks gamma | |
|
||||
| `price_greeks_vega` | `float` | Price greeks vega | |
|
||||
| `price_greeks_rho` | `float` | Price greeks rho | |
|
||||
| `price_greeks_omega` | `float` | Price greeks omega | |
|
||||
| `price_sensitivity` | `float` | Price sensitivity | |
|
||||
| `basis` | `str` | Basis | |
|
||||
| `category` | `str` | Category | |
|
||||
| `currency_base` | `str` | Base currency | |
|
||||
| `currency_profit` | `str` | Profit currency | |
|
||||
| `currency_margin` | `Any` | Margin currency | |
|
||||
| `bank` | `str` | Bank | |
|
||||
| `description` | `str` | Description | |
|
||||
| `exchange` | `str` | Exchange | |
|
||||
| `formula` | `Any` | Formula | |
|
||||
| `isin` | `Any` | ISIN | |
|
||||
| `name` | `str` | Name | |
|
||||
| `page` | `str` | Page | |
|
||||
| `path` | `str` | Path | |
|
||||
### `TerminalInfo`
|
||||
|
||||
> MetaTrader 5 terminal details.
|
||||
|
||||
<a id="models.book_info"></a>
|
||||
### BookInfo
|
||||
```python
|
||||
class BookInfo(Base)
|
||||
```
|
||||
Book Information Class.
|
||||
#### Attributes:
|
||||
| Name | Type | Description | Default |
|
||||
|--------------|------------|-------------|---------|
|
||||
| `symbol` | `str` | Symbol | |
|
||||
| `type` | `BookType` | Type | |
|
||||
| `price` | `float` | Price | |
|
||||
| `volume` | `float` | Volume | |
|
||||
| `volume_dbl` | `float` | Volume dbl | |
|
||||
Key fields: `connected`, `trade_allowed`, `tradeapi_disabled`, `build`, `company`,
|
||||
`name`, `path`, `data_path`.
|
||||
|
||||
---
|
||||
|
||||
<a id="models.trade_order"></a>
|
||||
#### TradeOrder
|
||||
```python
|
||||
class TradeOrder(Base)
|
||||
```
|
||||
Trade Order Class.
|
||||
### `SymbolInfo`
|
||||
|
||||
#### Attributes:
|
||||
| Name | Type | Description | Default |
|
||||
|-------------------|----------------|-----------------|---------|
|
||||
| `ticket` | `int` | Ticket | |
|
||||
| `time_setup` | `int` | Time setup | |
|
||||
| `time_setup_msc` | `int` | Time setup msc | |
|
||||
| `time_expiration` | `int` | Time expiration | |
|
||||
| `time_done` | `int` | Time done | |
|
||||
| `time_done_msc` | `int` | Time done msc | |
|
||||
| `type` | `OrderType` | Type | |
|
||||
| `type_time` | `OrderTime` | Type time | |
|
||||
| `type_filling` | `OrderFilling` | Type filling | |
|
||||
| `state` | `int` | State | |
|
||||
| `magic` | `int` | Magic | |
|
||||
| `position_id` | `int` | Position id | |
|
||||
| `position_by_id` | `int` | Position by id | |
|
||||
| `reason` | `OrderReason` | Reason | |
|
||||
| `volume_current` | `float` | Volume current | |
|
||||
| `volume_initial` | `float` | Volume initial | |
|
||||
| `price_open` | `float` | Price open | |
|
||||
| `sl` | `float` | SL | |
|
||||
| `tp` | `float` | TP | |
|
||||
| `price_current` | `float` | Price current | |
|
||||
| `price_stoplimit` | `float` | Price stoplimit | |
|
||||
| `symbol` | `str` | Symbol | |
|
||||
| `comment` | `str` | Comment | |
|
||||
| `external_id` | `str` | External id | |
|
||||
> Trading instrument (symbol) properties.
|
||||
|
||||
Extensive attributes covering pricing, volume limits, spread, margin parameters, swap
|
||||
settings, option properties, and session schedules.
|
||||
|
||||
<a id="models.trade_request"></a>
|
||||
## TradeRequest
|
||||
```python
|
||||
class TradeRequest(Base)
|
||||
```
|
||||
Trade Request Class.
|
||||
#### Attributes:
|
||||
| Name | Type | Description | Default |
|
||||
|----------------|--------------|--------------|---------|
|
||||
| `action` | TradeAction | Action | |
|
||||
| `type` | OrderType | Type | |
|
||||
| `order` | `int` | Order | |
|
||||
| `symbol` | `str` | Symbol | |
|
||||
| `volume` | `float` | Volume | |
|
||||
| `sl` | `float` | SL | |
|
||||
| `tp` | `float` | TP | |
|
||||
| `price` | `float` | Price | |
|
||||
| `deviation` | `float` | Deviation | |
|
||||
| `stop_limit` | `float` | Stop limit | |
|
||||
| `type_time` | OrderTime | Type time | |
|
||||
| `type_filling` | OrderFilling | Type filling | |
|
||||
| `expiration` | `int` | Expiration | |
|
||||
| `position` | `int` | Position | |
|
||||
| `position_by` | `int` | Position by | |
|
||||
| `comment` | `str` | Comment | |
|
||||
| `magic` | `int` | Magic | |
|
||||
| `deviation` | `int` | Deviation | |
|
||||
| Method / Property | Description |
|
||||
|-------------------|-------------|
|
||||
| `__repr__()` | `"SymbolInfo(name=<name>)"` |
|
||||
| `__str__()` | The symbol name |
|
||||
| `__eq__(other)` | Equality by symbol name |
|
||||
| `__hash__()` | Hash of the symbol name |
|
||||
|
||||
---
|
||||
|
||||
<a id="models.order_check_result"></a>
|
||||
### OrderCheckResult
|
||||
```python
|
||||
class OrderCheckResult(Base)
|
||||
```
|
||||
Order Check Result
|
||||
#### Attributes:
|
||||
| Name | Type | Description | Default |
|
||||
|----------------|----------------|--------------|---------|
|
||||
| `retcode` | `int` | Retcode | |
|
||||
| `balance` | `float` | Balance | |
|
||||
| `equity` | `float` | Equity | |
|
||||
| `profit` | `float` | Profit | |
|
||||
| `margin` | `float` | Margin | |
|
||||
| `margin_free` | `float` | Margin free | |
|
||||
| `margin_level` | `float` | Margin level | |
|
||||
| `comment` | `str` | Comment | |
|
||||
| `request` | `TradeRequest` | Request | |
|
||||
### `BookInfo`
|
||||
|
||||
> Market depth entry.
|
||||
|
||||
<a id="models.order_send_result"></a>
|
||||
### OrderSendResult
|
||||
```python
|
||||
class OrderSendResult(Base)
|
||||
```
|
||||
Order Send Result
|
||||
Fields: `type` (`BookType`), `price`, `volume`, `volume_dbl`.
|
||||
|
||||
#### Attributes:
|
||||
| Name | Type | Description | Default |
|
||||
|--------------------|----------------|------------------|---------|
|
||||
| `retcode` | `int` | Retcode | |
|
||||
| `deal` | `int` | Deal | |
|
||||
| `order` | `int` | Order | |
|
||||
| `volume` | `float` | Volume | |
|
||||
| `price` | `float` | Price | |
|
||||
| `bid` | `float` | Bid | |
|
||||
| `ask` | `float` | Ask | |
|
||||
| `comment` | `str` | Comment | |
|
||||
| `request` | `TradeRequest` | Request | |
|
||||
| `request_id` | `int` | Request id | |
|
||||
| `retcode_external` | `int` | Retcode external | |
|
||||
| `profit` | `float` | Profit | |
|
||||
---
|
||||
|
||||
### `TradeOrder`
|
||||
|
||||
<a id="models.trade_position"></a>
|
||||
### TradePosition
|
||||
```python
|
||||
class TradePosition(Base)
|
||||
```
|
||||
Trade Position
|
||||
#### Attributes:
|
||||
| Name | Type | Description | Default |
|
||||
|-------------------|------------------|-----------------|---------|
|
||||
| `ticket` | `int` | Ticket | |
|
||||
| `time` | `int` | Time | |
|
||||
| `time_msc` | `int` | Time msc | |
|
||||
| `time_update` | `int` | Time update | |
|
||||
| `time_update_msc` | `int` | Time update msc | |
|
||||
| `type` | `OrderType` | Type | |
|
||||
| `magic` | `float` | Magic | |
|
||||
| `identifier` | `int` | Identifier | |
|
||||
| `reason` | `PositionReason` | Reason | |
|
||||
| `volume` | `float` | Volume | |
|
||||
| `price_open` | `float` | Price open | |
|
||||
| `sl` | `float` | SL | |
|
||||
| `tp` | `float` | TP | |
|
||||
| `price_current` | `float` | Price current | |
|
||||
| `swap` | `float` | Swap | |
|
||||
| `profit` | `float` | Profit | |
|
||||
| `symbol` | `str` | Symbol | |
|
||||
| `comment` | `str` | Comment | |
|
||||
| `external_id` | `str` | External id | |
|
||||
> Pending or historical order.
|
||||
|
||||
Key fields: `ticket`, `type` (`OrderType`), `state`, `time_setup`, `volume_current`,
|
||||
`volume_initial`, `price_open`, `sl`, `tp`, `symbol`, `comment`.
|
||||
|
||||
<a id="models.trade_deal"></a>
|
||||
### TradeDeal
|
||||
```python
|
||||
class TradeDeal(Base)
|
||||
```
|
||||
Trade Deal
|
||||
#### Attributes:
|
||||
| Name | Type | Description | Default |
|
||||
|---------------|--------------|-------------|---------|
|
||||
| `ticket` | `int` | Ticket | |
|
||||
| `order` | `int` | Order | |
|
||||
| `time` | `int` | Time | |
|
||||
| `time_msc` | `int` | Time msc | |
|
||||
| `type` | `DealType` | Type | |
|
||||
| `entry` | `DealEntry` | Entry | |
|
||||
| `magic` | `int` | Magic | |
|
||||
| `position_id` | `int` | Position id | |
|
||||
| `reason` | `DealReason` | Reason | |
|
||||
| `volume` | `float` | Volume | |
|
||||
| `price` | `float` | Price | |
|
||||
| `commission` | `float` | Commission | |
|
||||
| `swap` | `float` | Swap | |
|
||||
| `profit` | `float` | Profit | |
|
||||
| `fee` | `float` | Fee | |
|
||||
| `sl` | `float` | SL | |
|
||||
| `tp` | `float` | TP | |
|
||||
| `symbol` | `str` | Symbol | |
|
||||
| `comment` | `str` | Comment | |
|
||||
| `external_id` | `str` | External id | |
|
||||
---
|
||||
|
||||
### `TradeRequest`
|
||||
|
||||
> Trade request structure sent to `order_send` / `order_check`.
|
||||
|
||||
Key fields: `action` (`TradeAction`), `type` (`OrderType`), `symbol`, `volume`,
|
||||
`price`, `sl`, `tp`, `deviation`, `magic`, `comment`, `type_filling`, `type_time`.
|
||||
|
||||
---
|
||||
|
||||
### `OrderCheckResult`
|
||||
|
||||
> Result of `order_check`.
|
||||
|
||||
Key fields: `retcode`, `balance`, `equity`, `profit`, `margin`, `margin_free`,
|
||||
`margin_level`, `request` (`TradeRequest`), `comment`.
|
||||
|
||||
| Method | Description |
|
||||
|--------|-------------|
|
||||
| `__init__(**kwargs)` | Converts `request` dict to `TradeRequest` |
|
||||
| `__getstate__()` | Serialises `request` as a plain dict |
|
||||
| `__setstate__(state)` | Restores `request` from dict |
|
||||
|
||||
---
|
||||
|
||||
### `OrderSendResult`
|
||||
|
||||
> Result of `order_send`.
|
||||
|
||||
Key fields: `retcode`, `deal`, `order`, `volume`, `price`, `bid`, `ask`,
|
||||
`request` (`TradeRequest`), `comment`, `request_id`.
|
||||
|
||||
---
|
||||
|
||||
### `TradePosition`
|
||||
|
||||
> Open position information.
|
||||
|
||||
Key fields: `ticket`, `type` (`PositionType`), `symbol`, `volume`, `price_open`,
|
||||
`price_current`, `sl`, `tp`, `profit`, `swap`, `magic`, `comment`.
|
||||
|
||||
---
|
||||
|
||||
### `TradeDeal`
|
||||
|
||||
> Completed deal record.
|
||||
|
||||
Key fields: `ticket`, `type` (`DealType`), `entry` (`DealEntry`), `symbol`, `volume`,
|
||||
`price`, `profit`, `swap`, `commission`, `magic`, `comment`, `position_id`, `order`.
|
||||
|
||||
Reference in New Issue
Block a user