mirror of
https://github.com/Ichinga-Samuel/aiomql.git
synced 2026-08-13 20:08:04 +00:00
add docs
This commit is contained in:
@@ -0,0 +1,164 @@
|
||||
# Table of Contents
|
||||
|
||||
* [aiomql.core.base](#aiomql.core.base)
|
||||
* [Base](#aiomql.core.base.Base)
|
||||
* [set\_attributes](#aiomql.core.base.Base.set_attributes)
|
||||
* [annotations](#aiomql.core.base.Base.annotations)
|
||||
* [get\_dict](#aiomql.core.base.Base.get_dict)
|
||||
* [class\_vars](#aiomql.core.base.Base.class_vars)
|
||||
* [dict](#aiomql.core.base.Base.dict)
|
||||
* [Meta](#aiomql.core.base.Base.Meta)
|
||||
|
||||
<a id="aiomql.core.base"></a>
|
||||
|
||||
# aiomql.core.base
|
||||
|
||||
<a id="aiomql.core.base.Base"></a>
|
||||
|
||||
## Base Objects
|
||||
|
||||
```python
|
||||
class Base()
|
||||
```
|
||||
|
||||
A base class for all data model classes in the aiomql package.
|
||||
This class provides a set of common methods and attributes for all data model classes.
|
||||
For the data model classes attributes are annotated on the class body and are set as object attributes when the
|
||||
class is instantiated.
|
||||
|
||||
**Arguments**:
|
||||
|
||||
- `**kwargs` - Object attributes and values as keyword arguments. Only added if they are annotated on the class body.
|
||||
|
||||
Class Attributes:
|
||||
- `mt5` _MetaTrader_ - An instance of the MetaTrader class
|
||||
- `config` _Config_ - An instance of the Config class
|
||||
- `Meta` _Type[Meta]_ - The Meta class for configuration of the data model class
|
||||
|
||||
<a id="aiomql.core.base.Base.set_attributes"></a>
|
||||
|
||||
#### set\_attributes
|
||||
|
||||
```python
|
||||
def set_attributes(**kwargs)
|
||||
```
|
||||
|
||||
Set keyword arguments as object attributes
|
||||
|
||||
**Arguments**:
|
||||
|
||||
- `**kwargs` - Object attributes and values as keyword arguments
|
||||
|
||||
|
||||
**Raises**:
|
||||
|
||||
- `AttributeError` - When assigning an attribute that does not belong to the class or any parent class
|
||||
|
||||
|
||||
**Notes**:
|
||||
|
||||
Only sets attributes that have been annotated on the class body.
|
||||
|
||||
<a id="aiomql.core.base.Base.annotations"></a>
|
||||
|
||||
#### annotations
|
||||
|
||||
```python
|
||||
@property
|
||||
@cache
|
||||
def annotations() -> dict
|
||||
```
|
||||
|
||||
Class annotations from all ancestor classes and the current class.
|
||||
|
||||
**Returns**:
|
||||
|
||||
- `dict` - A dictionary of class annotations
|
||||
|
||||
<a id="aiomql.core.base.Base.get_dict"></a>
|
||||
|
||||
#### get\_dict
|
||||
|
||||
```python
|
||||
def get_dict(exclude: set = None, include: set = None) -> dict
|
||||
```
|
||||
|
||||
Returns class attributes as a dict, with the ability to filter
|
||||
|
||||
**Arguments**:
|
||||
|
||||
- `exclude` - A set of attributes to be excluded
|
||||
- `include` - Specific attributes to be returned
|
||||
|
||||
|
||||
**Returns**:
|
||||
|
||||
- `dict` - A dictionary of specified class attributes
|
||||
|
||||
|
||||
**Notes**:
|
||||
|
||||
You can only set either of include or exclude. If you set both, include will take precedence
|
||||
|
||||
<a id="aiomql.core.base.Base.class_vars"></a>
|
||||
|
||||
#### class\_vars
|
||||
|
||||
```python
|
||||
@property
|
||||
@cache
|
||||
def class_vars()
|
||||
```
|
||||
|
||||
Annotated class attributes
|
||||
|
||||
**Returns**:
|
||||
|
||||
- `dict` - A dictionary of available class attributes in all ancestor classes and the current class.
|
||||
|
||||
<a id="aiomql.core.base.Base.dict"></a>
|
||||
|
||||
#### dict
|
||||
|
||||
```python
|
||||
@property
|
||||
def dict() -> dict
|
||||
```
|
||||
|
||||
All instance and class attributes as a dictionary, except those excluded in the Meta class.
|
||||
|
||||
**Returns**:
|
||||
|
||||
- `dict` - A dictionary of instance and class attributes
|
||||
|
||||
<a id="aiomql.core.base.Base.Meta"></a>
|
||||
|
||||
## Meta Objects
|
||||
|
||||
```python
|
||||
class Meta()
|
||||
```
|
||||
|
||||
A class for defining class attributes to be excluded or included in the dict property
|
||||
|
||||
**Attributes**:
|
||||
|
||||
- `exclude` _set_ - A set of attributes to be excluded
|
||||
- `include` _set_ - Specific attributes to be returned. Include supercedes exclude.
|
||||
|
||||
<a id="aiomql.core.base.Base.Meta.filter"></a>
|
||||
|
||||
#### filter
|
||||
|
||||
```python
|
||||
@classmethod
|
||||
@property
|
||||
def filter(cls) -> set
|
||||
```
|
||||
|
||||
Combine the exclude and include attributes to return a set of attributes to be excluded.
|
||||
|
||||
**Returns**:
|
||||
|
||||
- `set` - A set of attributes to be excluded
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
# Table of Contents
|
||||
|
||||
* [aiomql.core.config](#aiomql.core.config)
|
||||
* [Config](#aiomql.core.config.Config)
|
||||
* [account\_info](#aiomql.core.config.Config.account_info)
|
||||
|
||||
<a id="aiomql.core.config"></a>
|
||||
|
||||
# aiomql.core.config
|
||||
|
||||
<a id="aiomql.core.config.Config"></a>
|
||||
|
||||
## Config Objects
|
||||
|
||||
```python
|
||||
class Config()
|
||||
```
|
||||
|
||||
A class for handling configuration settings for the aiomql package.
|
||||
|
||||
**Arguments**:
|
||||
|
||||
- `**kwargs` - Configuration settings as keyword arguments.
|
||||
Variables set this way supersede those set in the config file.
|
||||
|
||||
|
||||
**Attributes**:
|
||||
|
||||
- `record_trades` _bool_ - Whether to keep record of trades or not.
|
||||
- `filename` _str_ - Name of the config file
|
||||
- `records_dir` _str_ - Path to the directory where trade records are saved
|
||||
- `win_percentage` _float_ - Percentage of achieved target profit in a trade to be considered a win
|
||||
- `login` _int_ - Trading account number
|
||||
- `password` _str_ - Trading account password
|
||||
- `server` _str_ - Broker server
|
||||
- `path` _str_ - Path to terminal file
|
||||
- `timeout` _int_ - Timeout for terminal connection
|
||||
|
||||
|
||||
**Notes**:
|
||||
|
||||
By default, the config class looks for a file named aiomql.json.
|
||||
You can change this by passing the filename keyword argument to the constructor.
|
||||
By passing reload=True to the load_config method, you can reload and search again for the config file.
|
||||
|
||||
<a id="aiomql.core.config.Config.account_info"></a>
|
||||
|
||||
#### account\_info
|
||||
|
||||
```python
|
||||
def account_info() -> dict['login', 'password', 'server']
|
||||
```
|
||||
|
||||
Returns Account login details as found in the config object if available
|
||||
|
||||
**Returns**:
|
||||
|
||||
- `dict` - A dictionary of login details
|
||||
|
||||
@@ -0,0 +1,736 @@
|
||||
# Table of Contents
|
||||
|
||||
* [aiomql.core.constants](#aiomql.core.constants)
|
||||
* [TradeAction](#aiomql.core.constants.TradeAction)
|
||||
* [OrderFilling](#aiomql.core.constants.OrderFilling)
|
||||
* [OrderTime](#aiomql.core.constants.OrderTime)
|
||||
* [OrderType](#aiomql.core.constants.OrderType)
|
||||
* [opposite](#aiomql.core.constants.OrderType.opposite)
|
||||
* [BookType](#aiomql.core.constants.BookType)
|
||||
* [TimeFrame](#aiomql.core.constants.TimeFrame)
|
||||
* [time](#aiomql.core.constants.TimeFrame.time)
|
||||
* [CopyTicks](#aiomql.core.constants.CopyTicks)
|
||||
* [PositionType](#aiomql.core.constants.PositionType)
|
||||
* [PositionReason](#aiomql.core.constants.PositionReason)
|
||||
* [DealType](#aiomql.core.constants.DealType)
|
||||
* [DealEntry](#aiomql.core.constants.DealEntry)
|
||||
* [DealReason](#aiomql.core.constants.DealReason)
|
||||
* [OrderReason](#aiomql.core.constants.OrderReason)
|
||||
* [SymbolChartMode](#aiomql.core.constants.SymbolChartMode)
|
||||
* [SymbolCalcMode](#aiomql.core.constants.SymbolCalcMode)
|
||||
* [SymbolTradeMode](#aiomql.core.constants.SymbolTradeMode)
|
||||
* [SymbolTradeExecution](#aiomql.core.constants.SymbolTradeExecution)
|
||||
* [SymbolSwapMode](#aiomql.core.constants.SymbolSwapMode)
|
||||
* [DayOfWeek](#aiomql.core.constants.DayOfWeek)
|
||||
* [SymbolOrderGTCMode](#aiomql.core.constants.SymbolOrderGTCMode)
|
||||
* [SymbolOptionRight](#aiomql.core.constants.SymbolOptionRight)
|
||||
* [SymbolOptionMode](#aiomql.core.constants.SymbolOptionMode)
|
||||
* [AccountTradeMode](#aiomql.core.constants.AccountTradeMode)
|
||||
* [TickFlag](#aiomql.core.constants.TickFlag)
|
||||
* [TradeRetcode](#aiomql.core.constants.TradeRetcode)
|
||||
* [AccountStopOutMode](#aiomql.core.constants.AccountStopOutMode)
|
||||
* [AccountMarginMode](#aiomql.core.constants.AccountMarginMode)
|
||||
|
||||
<a id="aiomql.core.constants"></a>
|
||||
|
||||
# aiomql.core.constants
|
||||
|
||||
<a id="aiomql.core.constants.TradeAction"></a>
|
||||
|
||||
## TradeAction Objects
|
||||
|
||||
```python
|
||||
class TradeAction(Repr, IntEnum)
|
||||
```
|
||||
|
||||
TRADE_REQUEST_ACTION Enum.
|
||||
|
||||
**Attributes**:
|
||||
|
||||
- `DEAL` _int_ - Delete the pending order placed previously Place a trade order for an immediate execution with the
|
||||
specified parameters (market order).
|
||||
- `PENDING` _int_ - Delete the pending order placed previously
|
||||
- `SLTP` _int_ - Modify Stop Loss and Take Profit values of an opened position
|
||||
- `MODIFY` _int_ - Modify the parameters of the order placed previously
|
||||
- `REMOVE` _int_ - Delete the pending order placed previously
|
||||
- `CLOSE_BY` _int_ - Close a position by an opposite one
|
||||
|
||||
<a id="aiomql.core.constants.OrderFilling"></a>
|
||||
|
||||
## OrderFilling Objects
|
||||
|
||||
```python
|
||||
class OrderFilling(Repr, IntEnum)
|
||||
```
|
||||
|
||||
ORDER_TYPE_FILLING Enum.
|
||||
|
||||
**Attributes**:
|
||||
|
||||
- `FOK` _int_ - This execution policy means that an order can be executed only in the specified volume.
|
||||
If the necessary amount of a financial instrument is currently unavailable in the market, the order will
|
||||
not be executed. The desired volume can be made up of several available offers.
|
||||
|
||||
- `IOC` _int_ - An agreement to execute a deal at the maximum volume available in the market within the volume
|
||||
specified in the order. If the request cannot be filled completely, an order with the available volume will
|
||||
be executed, and the remaining volume will be canceled.
|
||||
|
||||
- `RETURN` _int_ - This policy is used only for market (ORDER_TYPE_BUY and ORDER_TYPE_SELL), limit and stop limit
|
||||
orders (ORDER_TYPE_BUY_LIMIT, ORDER_TYPE_SELL_LIMIT,ORDER_TYPE_BUY_STOP_LIMIT and
|
||||
ORDER_TYPE_SELL_STOP_LIMIT) and only for the symbols with Market or Exchange execution modes. If filled
|
||||
partially, a market or limit order with the remaining volume is not canceled, and is processed further.
|
||||
During activation of the ORDER_TYPE_BUY_STOP_LIMIT and ORDER_TYPE_SELL_STOP_LIMIT orders, an appropriate
|
||||
limit order ORDER_TYPE_BUY_LIMIT/ORDER_TYPE_SELL_LIMIT with the ORDER_FILLING_RETURN type is created.
|
||||
|
||||
<a id="aiomql.core.constants.OrderTime"></a>
|
||||
|
||||
## OrderTime Objects
|
||||
|
||||
```python
|
||||
class OrderTime(Repr, IntEnum)
|
||||
```
|
||||
|
||||
ORDER_TIME Enum.
|
||||
|
||||
**Attributes**:
|
||||
|
||||
- `GTC` _int_ - Good till cancel order
|
||||
- `DAY` _int_ - Good till current trade day order
|
||||
- `SPECIFIED` _int_ - The order is active until the specified date
|
||||
- `SPECIFIED_DAY` _int_ - The order is active until 23:59:59 of the specified day. If this time appears to be out of
|
||||
a trading session, the expiration is processed at the nearest trading time.
|
||||
|
||||
<a id="aiomql.core.constants.OrderType"></a>
|
||||
|
||||
## OrderType Objects
|
||||
|
||||
```python
|
||||
class OrderType(Repr, IntEnum)
|
||||
```
|
||||
|
||||
ORDER_TYPE Enum.
|
||||
|
||||
**Attributes**:
|
||||
|
||||
- `BUY` _int_ - Market buy order
|
||||
- `SELL` _int_ - Market sell order
|
||||
- `BUY_LIMIT` _int_ - Buy Limit pending order
|
||||
- `SELL_LIMIT` _int_ - Sell Limit pending order
|
||||
- `BUY_STOP` _int_ - Buy Stop pending order
|
||||
- `SELL_STOP` _int_ - Sell Stop pending order
|
||||
- `BUY_STOP_LIMIT` _int_ - Upon reaching the order price, Buy Limit pending order is placed at StopLimit price
|
||||
- `SELL_STOP_LIMIT` _int_ - Upon reaching the order price, Sell Limit pending order is placed at StopLimit price
|
||||
- `CLOSE_BY` _int_ - Order for closing a position by an opposite one
|
||||
|
||||
Properties:
|
||||
- `opposite` _int_ - Gets the opposite of an order type
|
||||
|
||||
<a id="aiomql.core.constants.OrderType.opposite"></a>
|
||||
|
||||
#### opposite
|
||||
|
||||
```python
|
||||
@property
|
||||
def opposite()
|
||||
```
|
||||
|
||||
Gets the opposite of an order type for closing an open position
|
||||
|
||||
**Returns**:
|
||||
|
||||
- `int` - integer value of opposite order type
|
||||
|
||||
<a id="aiomql.core.constants.BookType"></a>
|
||||
|
||||
## BookType Objects
|
||||
|
||||
```python
|
||||
class BookType(Repr, IntEnum)
|
||||
```
|
||||
|
||||
BOOK_TYPE Enum.
|
||||
|
||||
**Attributes**:
|
||||
|
||||
- `SELL` _int_ - Sell order (Offer)
|
||||
- `BUY` _int_ - Buy order (Bid)
|
||||
- `SELL_MARKET` _int_ - Sell order by Market
|
||||
- `BUY_MARKET` _int_ - Buy order by Market
|
||||
|
||||
<a id="aiomql.core.constants.TimeFrame"></a>
|
||||
|
||||
## TimeFrame Objects
|
||||
|
||||
```python
|
||||
class TimeFrame(Repr, IntEnum)
|
||||
```
|
||||
|
||||
TIMEFRAME Enum.
|
||||
|
||||
**Attributes**:
|
||||
|
||||
- `M1` _int_ - One Minute
|
||||
- `M2` _int_ - Two Minutes
|
||||
- `M3` _int_ - Three Minutes
|
||||
- `M4` _int_ - Four Minutes
|
||||
- `M5` _int_ - Five Minutes
|
||||
- `M6` _int_ - Six Minutes
|
||||
- `M10` _int_ - Ten Minutes
|
||||
- `M15` _int_ - Fifteen Minutes
|
||||
- `M20` _int_ - Twenty Minutes
|
||||
- `M30` _int_ - Thirty Minutes
|
||||
- `H1` _int_ - One Hour
|
||||
- `H2` _int_ - Two Hours
|
||||
- `H3` _int_ - Three Hours
|
||||
- `H4` _int_ - Four Hours
|
||||
- `H6` _int_ - Six Hours
|
||||
- `H8` _int_ - Eight Hours
|
||||
- `D1` _int_ - One Day
|
||||
- `W1` _int_ - One Week
|
||||
- `MN1` _int_ - One Month
|
||||
|
||||
Properties:
|
||||
- `time` - return the value of the timeframe object in seconds. Used as a property
|
||||
|
||||
|
||||
**Methods**:
|
||||
|
||||
- `get` - get a timeframe object from a time value in seconds
|
||||
|
||||
<a id="aiomql.core.constants.TimeFrame.time"></a>
|
||||
|
||||
#### time
|
||||
|
||||
```python
|
||||
@property
|
||||
def time()
|
||||
```
|
||||
|
||||
The number of seconds in a TIMEFRAME
|
||||
|
||||
**Returns**:
|
||||
|
||||
- `int` - The number of seconds in a TIMEFRAME
|
||||
|
||||
|
||||
**Examples**:
|
||||
|
||||
>>> t = TimeFrame.H1
|
||||
>>> print(t.time)
|
||||
3600
|
||||
|
||||
<a id="aiomql.core.constants.CopyTicks"></a>
|
||||
|
||||
## CopyTicks Objects
|
||||
|
||||
```python
|
||||
class CopyTicks(Repr, IntEnum)
|
||||
```
|
||||
|
||||
COPY_TICKS Enum. This defines the types of ticks that can be requested using the copy_ticks_from() and
|
||||
copy_ticks_range() functions.
|
||||
|
||||
**Attributes**:
|
||||
|
||||
- `ALL` _int_ - All ticks
|
||||
- `INFO` _int_ - Ticks containing Bid and/or Ask price changes
|
||||
- `TRADE` _int_ - Ticks containing Last and/or Volume price changes
|
||||
|
||||
<a id="aiomql.core.constants.PositionType"></a>
|
||||
|
||||
## PositionType Objects
|
||||
|
||||
```python
|
||||
class PositionType(Repr, IntEnum)
|
||||
```
|
||||
|
||||
POSITION_TYPE Enum. Direction of an open position (buy or sell)
|
||||
|
||||
**Attributes**:
|
||||
|
||||
- `BUY` _int_ - Buy
|
||||
- `SELL` _int_ - Sell
|
||||
|
||||
<a id="aiomql.core.constants.PositionReason"></a>
|
||||
|
||||
## PositionReason Objects
|
||||
|
||||
```python
|
||||
class PositionReason(Repr, IntEnum)
|
||||
```
|
||||
|
||||
POSITION_REASON Enum. The reason for opening a position is contained in the POSITION_REASON Enum
|
||||
|
||||
**Attributes**:
|
||||
|
||||
- `CLIENT` _int_ - The position was opened as a result of activation of an order placed from a desktop terminal
|
||||
- `MOBILE` _int_ - The position was opened as a result of activation of an order placed from a mobile application
|
||||
- `WEB` _int_ - The position was opened as a result of activation of an order placed from the web platform
|
||||
- `EXPERT` _int_ - The position was opened as a result of activation of an order placed from an MQL5 program,
|
||||
i.e. an Expert Advisor or a script
|
||||
|
||||
<a id="aiomql.core.constants.DealType"></a>
|
||||
|
||||
## DealType Objects
|
||||
|
||||
```python
|
||||
class DealType(Repr, IntEnum)
|
||||
```
|
||||
|
||||
DEAL_TYPE enum. Each deal is characterized by a type, allowed values are enumerated in this enum
|
||||
|
||||
**Attributes**:
|
||||
|
||||
- `BUY` _int_ - Buy
|
||||
- `SELL` _int_ - Sell
|
||||
- `BALANCE` _int_ - Balance
|
||||
- `CREDIT` _int_ - Credit
|
||||
- `CHARGE` _int_ - Additional Charge
|
||||
- `CORRECTION` _int_ - Correction
|
||||
- `BONUS` _int_ - Bonus
|
||||
- `COMMISSION` _int_ - Additional Commission
|
||||
- `COMMISSION_DAILY` _int_ - Daily Commission
|
||||
- `COMMISSION_MONTHLY` _int_ - Monthly Commission
|
||||
- `COMMISSION_AGENT_DAILY` _int_ - Daily Agent Commission
|
||||
- `COMMISSION_AGENT_MONTHLY` _int_ - Monthly Agent Commission
|
||||
- `INTEREST` _int_ - Interest Rate
|
||||
- `DEAL_DIVIDEND` _int_ - Dividend Operations
|
||||
- `DEAL_DIVIDEND_FRANKED` _int_ - Franked (non-taxable) dividend operations
|
||||
- `DEAL_TAX` _int_ - Tax Charges
|
||||
|
||||
- `BUY_CANCELED` _int_ - Canceled buy deal. There can be a situation when a previously executed buy deal is canceled.
|
||||
In this case, the type of the previously executed deal (DEAL_TYPE_BUY) is changed to DEAL_TYPE_BUY_CANCELED,
|
||||
and its profit/loss is zeroized. Previously obtained profit/loss is charged/withdrawn using a separated
|
||||
balance operation
|
||||
|
||||
- `SELL_CANCELED` _int_ - Canceled sell deal. There can be a situation when a previously executed sell deal is
|
||||
canceled. In this case, the type of the previously executed deal (DEAL_TYPE_SELL) is changed to
|
||||
DEAL_TYPE_SELL_CANCELED, and its profit/loss is zeroized. Previously obtained profit/loss is
|
||||
charged/withdrawn using a separated balance operation.
|
||||
|
||||
<a id="aiomql.core.constants.DealEntry"></a>
|
||||
|
||||
## DealEntry Objects
|
||||
|
||||
```python
|
||||
class DealEntry(Repr, IntEnum)
|
||||
```
|
||||
|
||||
DEAL_ENTRY Enum. Deals differ not only in their types set in DEAL_TYPE enum, but also in the way they change
|
||||
positions. This can be a simple position opening, or accumulation of a previously opened position (market entering),
|
||||
position closing by an opposite deal of a corresponding volume (market exiting), or position reversing, if the
|
||||
opposite-direction deal covers the volume of the previously opened position.
|
||||
|
||||
**Attributes**:
|
||||
|
||||
- `IN` _int_ - Entry In
|
||||
- `OUT` _int_ - Entry Out
|
||||
- `INOUT` _int_ - Reverse
|
||||
- `OUT_BY` _int_ - Close a position by an opposite one
|
||||
|
||||
<a id="aiomql.core.constants.DealReason"></a>
|
||||
|
||||
## DealReason Objects
|
||||
|
||||
```python
|
||||
class DealReason(Repr, IntEnum)
|
||||
```
|
||||
|
||||
DEAL_REASON Enum. The reason for deal execution is contained in the DEAL_REASON property. A deal can be executed
|
||||
as a result of triggering of an order placed from a mobile application or an MQL5 program, as well as as a result
|
||||
of the StopOut event, variation margin calculation, etc.
|
||||
|
||||
**Attributes**:
|
||||
|
||||
- `CLIENT` _int_ - The deal was executed as a result of activation of an order placed from a desktop terminal
|
||||
- `MOBILE` _int_ - The deal was executed as a result of activation of an order placed from a desktop terminal
|
||||
- `WEB` _int_ - The deal was executed as a result of activation of an order placed from the web platform
|
||||
- `EXPERT` _int_ - The deal was executed as a result of activation of an order placed from an MQL5 program, i.e.
|
||||
an Expert Advisor or a script
|
||||
- `SL` _int_ - The deal was executed as a result of Stop Loss activation
|
||||
- `TP` _int_ - The deal was executed as a result of Take Profit activation
|
||||
- `SO` _int_ - The deal was executed as a result of the Stop Out event
|
||||
- `ROLLOVER` _int_ - The deal was executed due to a rollover
|
||||
- `VMARGIN` _int_ - The deal was executed after charging the variation margin
|
||||
- `SPLIT` _int_ - The deal was executed after the split (price reduction) of an instrument, which had an open
|
||||
position during split announcement
|
||||
|
||||
<a id="aiomql.core.constants.OrderReason"></a>
|
||||
|
||||
## OrderReason Objects
|
||||
|
||||
```python
|
||||
class OrderReason(Repr, IntEnum)
|
||||
```
|
||||
|
||||
ORDER_REASON Enum.
|
||||
|
||||
**Attributes**:
|
||||
|
||||
- `CLIENT` _int_ - The order was placed from a desktop terminal
|
||||
- `MOBILE` _int_ - The order was placed from a mobile application
|
||||
- `WEB` _int_ - The order was placed from a web platform
|
||||
- `EXPERT` _int_ - The order was placed from an MQL5-program, i.e. by an Expert Advisor or a script
|
||||
- `SL` _int_ - The order was placed as a result of Stop Loss activation
|
||||
- `TP` _int_ - The order was placed as a result of Take Profit activation
|
||||
- `SO` _int_ - The order was placed as a result of the Stop Out event
|
||||
|
||||
<a id="aiomql.core.constants.SymbolChartMode"></a>
|
||||
|
||||
## SymbolChartMode Objects
|
||||
|
||||
```python
|
||||
class SymbolChartMode(Repr, IntEnum)
|
||||
```
|
||||
|
||||
SYMBOL_CHART_MODE Enum. A symbol price chart can be based on Bid or Last prices. The price selected for symbol
|
||||
charts also affects the generation and display of bars in the terminal.
|
||||
Possible values of the SYMBOL_CHART_MODE property are described in this enum
|
||||
|
||||
**Attributes**:
|
||||
|
||||
- `BID` _int_ - Bars are based on Bid prices
|
||||
- `LAST` _int_ - Bars are based on last prices
|
||||
|
||||
<a id="aiomql.core.constants.SymbolCalcMode"></a>
|
||||
|
||||
## SymbolCalcMode Objects
|
||||
|
||||
```python
|
||||
class SymbolCalcMode(Repr, IntEnum)
|
||||
```
|
||||
|
||||
SYMBOL_CALC_MODE Enum. The SYMBOL_CALC_MODE enumeration is used for obtaining information about how the margin
|
||||
requirements for a symbol are calculated.
|
||||
|
||||
**Attributes**:
|
||||
|
||||
- `FOREX` _int_ - Forex mode - calculation of profit and margin for Forex
|
||||
- `FOREX_NO_LEVERAGE` _int_ - Forex No Leverage mode – calculation of profit and margin for Forex symbols without
|
||||
taking into account the leverage
|
||||
- `FUTURES` _int_ - Futures mode - calculation of margin and profit for futures
|
||||
- `CFD` _int_ - CFD mode - calculation of margin and profit for CFD
|
||||
- `CFDINDEX` _int_ - CFD index mode - calculation of margin and profit for CFD by indexes
|
||||
- `CFDLEVERAGE` _int_ - CFD Leverage mode - calculation of margin and profit for CFD at leverage trading
|
||||
- `EXCH_STOCKS` _int_ - Calculation of margin and profit for trading securities on a stock exchange
|
||||
- `EXCH_FUTURES` _int_ - Calculation of margin and profit for trading futures contracts on a stock exchange
|
||||
- `EXCH_OPTIONS` _int_ - value is 34
|
||||
- `EXCH_OPTIONS_MARGIN` _int_ - value is 36
|
||||
- `EXCH_BONDS` _int_ - Exchange Bonds mode – calculation of margin and profit for trading bonds on a stock exchange
|
||||
- `STOCKS_MOEX` _int_ - Exchange MOEX Stocks mode –calculation of margin and profit for trading securities on MOEX
|
||||
- `EXCH_BONDS_MOEX` _int_ - Exchange MOEX Bonds mode – calculation of margin and profit for trading bonds on MOEX
|
||||
|
||||
- `SERV_COLLATERAL` _int_ - Collateral mode - a symbol is used as a non-tradable asset on a trading account.
|
||||
The market value of an open position is calculated based on the volume, current market price, contract size
|
||||
and liquidity ratio. The value is included into Assets, which are added to Equity. Open positions of such
|
||||
symbols increase the Free Margin amount and are used as additional margin (collateral) for open positions
|
||||
|
||||
<a id="aiomql.core.constants.SymbolTradeMode"></a>
|
||||
|
||||
## SymbolTradeMode Objects
|
||||
|
||||
```python
|
||||
class SymbolTradeMode(Repr, IntEnum)
|
||||
```
|
||||
|
||||
SYMBOL_TRADE_MODE Enum. There are several symbol trading modes. Information about trading modes of a certain
|
||||
symbol is reflected in the values this enumeration
|
||||
|
||||
**Attributes**:
|
||||
|
||||
- `DISABLED` _int_ - Trade is disabled for the symbol
|
||||
- `LONGONLY` _int_ - Allowed only long positions
|
||||
- `SHORTONLY` _int_ - Allowed only short positions
|
||||
- `CLOSEONLY` _int_ - Allowed only position close operations
|
||||
- `FULL` _int_ - No trade restrictions
|
||||
|
||||
<a id="aiomql.core.constants.SymbolTradeExecution"></a>
|
||||
|
||||
## SymbolTradeExecution Objects
|
||||
|
||||
```python
|
||||
class SymbolTradeExecution(Repr, IntEnum)
|
||||
```
|
||||
|
||||
SYMBOL_TRADE_EXECUTION Enum. The modes, or execution policies, define the rules for cases when the price has
|
||||
changed or the requested volume cannot be completely fulfilled at the moment.
|
||||
|
||||
**Attributes**:
|
||||
|
||||
- `REQUEST` _int_ - Executing a market order at the price previously received from the broker. Prices for a certain
|
||||
market order are requested from the broker before the order is sent. Upon receiving the prices, order
|
||||
execution at the given price can be either confirmed or rejected.
|
||||
|
||||
- `INSTANT` _int_ - Executing a market order at the specified price immediately. When sending a trade request to be
|
||||
executed, the platform automatically adds the current prices to the order.
|
||||
- If the broker accepts the price, the order is executed.
|
||||
- If the broker does not accept the requested price, a "Requote" is sent — the broker returns prices,
|
||||
at which this order can be executed.
|
||||
|
||||
- `MARKET` _int_ - A broker makes a decision about the order execution price without any additional discussion with the trader.
|
||||
Sending the order in such a mode means advance consent to its execution at this price.
|
||||
|
||||
- `EXCHANGE` _int_ - Trade operations are executed at the prices of the current market offers.
|
||||
|
||||
<a id="aiomql.core.constants.SymbolSwapMode"></a>
|
||||
|
||||
## SymbolSwapMode Objects
|
||||
|
||||
```python
|
||||
class SymbolSwapMode(Repr, IntEnum)
|
||||
```
|
||||
|
||||
SYMBOL_SWAP_MODE Enum. Methods of swap calculation at position transfer are specified in enumeration
|
||||
ENUM_SYMBOL_SWAP_MODE. The method of swap calculation determines the units of measure of the SYMBOL_SWAP_LONG and
|
||||
SYMBOL_SWAP_SHORT parameters. For example, if swaps are charged in the client deposit currency, then the values of
|
||||
those parameters are specified as an amount of money in the client deposit currency.
|
||||
|
||||
**Attributes**:
|
||||
|
||||
- `DISABLED` _int_ - Swaps disabled (no swaps)
|
||||
- `POINTS` _int_ - Swaps are charged in points
|
||||
- `CURRENCY_SYMBOL` _int_ - Swaps are charged in money in base currency of the symbol
|
||||
- `CURRENCY_MARGIN` _int_ - Swaps are charged in money in margin currency of the symbol
|
||||
- `CURRENCY_DEPOSIT` _int_ - Swaps are charged in money, in client deposit currency
|
||||
|
||||
- `INTEREST_CURRENT` _int_ - Swaps are charged as the specified annual interest from the instrument price at
|
||||
calculation of swap (standard bank year is 360 days)
|
||||
|
||||
- `INTEREST_OPEN` _int_ - Swaps are charged as the specified annual interest from the open price of position
|
||||
(standard bank year is 360 days)
|
||||
|
||||
- `REOPEN_CURRENT` _int_ - Swaps are charged by reopening positions. At the end of a trading day the position is
|
||||
closed. Next day it is reopened by the close price +/- specified number of points
|
||||
(parameters SYMBOL_SWAP_LONG and SYMBOL_SWAP_SHORT)
|
||||
|
||||
- `REOPEN_BID` _int_ - Swaps are charged by reopening positions. At the end of a trading day the position is closed.
|
||||
Next day it is reopened by the current Bid price +/- specified number of
|
||||
points (parameters SYMBOL_SWAP_LONG and SYMBOL_SWAP_SHORT)
|
||||
|
||||
<a id="aiomql.core.constants.DayOfWeek"></a>
|
||||
|
||||
## DayOfWeek Objects
|
||||
|
||||
```python
|
||||
class DayOfWeek(Repr, IntEnum)
|
||||
```
|
||||
|
||||
DAY_OF_WEEK Enum.
|
||||
|
||||
**Attributes**:
|
||||
|
||||
- `SUNDAY` _int_ - Sunday
|
||||
- `MONDAY` _int_ - Monday
|
||||
- `TUESDAY` _int_ - Tuesday
|
||||
- `WEDNESDAY` _int_ - Wednesday
|
||||
- `THURSDAY` _int_ - Thursday
|
||||
- `FRIDAY` _int_ - Friday
|
||||
- `SATURDAY` _int_ - Saturday
|
||||
|
||||
<a id="aiomql.core.constants.SymbolOrderGTCMode"></a>
|
||||
|
||||
## SymbolOrderGTCMode Objects
|
||||
|
||||
```python
|
||||
class SymbolOrderGTCMode(Repr, IntEnum)
|
||||
```
|
||||
|
||||
SYMBOL_ORDER_GTC_MODE Enum. If the SYMBOL_EXPIRATION_MODE property is set to SYMBOL_EXPIRATION_GTC
|
||||
(good till canceled), the expiration of pending orders, as well as of
|
||||
Stop Loss/Take Profit orders should be additionally set using the ENUM_SYMBOL_ORDER_GTC_MODE enumeration.
|
||||
|
||||
**Attributes**:
|
||||
|
||||
- `GTC` _int_ - Pending orders and Stop Loss/Take Profit levels are valid for an unlimited period
|
||||
until theirConstants, Enumerations and explicit cancellation
|
||||
|
||||
- `DAILY` _int_ - Orders are valid during one trading day. At the end of the day, all Stop Loss and
|
||||
Take Profit levels, as well as pending orders are deleted.
|
||||
|
||||
- `DAILY_NO_STOPS` _int_ - When a trade day changes, only pending orders are deleted,
|
||||
while Stop Loss and Take Profit levels are preserved
|
||||
|
||||
<a id="aiomql.core.constants.SymbolOptionRight"></a>
|
||||
|
||||
## SymbolOptionRight Objects
|
||||
|
||||
```python
|
||||
class SymbolOptionRight(Repr, IntEnum)
|
||||
```
|
||||
|
||||
SYMBOL_OPTION_RIGHT Enum. An option is a contract, which gives the right, but not the obligation,
|
||||
to buy or sell an underlying asset (goods, stocks, futures, etc.) at a specified price on or before a specific date.
|
||||
The following enumerations describe option properties, including the option type and the right arising from it.
|
||||
|
||||
**Attributes**:
|
||||
|
||||
- `CALL` _int_ - A call option gives you the right to buy an asset at a specified price.
|
||||
- `PUT` _int_ - A put option gives you the right to sell an asset at a specified price.
|
||||
|
||||
<a id="aiomql.core.constants.SymbolOptionMode"></a>
|
||||
|
||||
## SymbolOptionMode Objects
|
||||
|
||||
```python
|
||||
class SymbolOptionMode(Repr, IntEnum)
|
||||
```
|
||||
|
||||
SYMBOL_OPTION_MODE Enum.
|
||||
|
||||
**Attributes**:
|
||||
|
||||
- `EUROPEAN` _int_ - European option may only be exercised on a specified date (expiration, execution date, delivery date)
|
||||
- `AMERICAN` _int_ - American option may be exercised on any trading day or before expiry. The period within which
|
||||
a buyer can exercise the option is specified for it.
|
||||
|
||||
<a id="aiomql.core.constants.AccountTradeMode"></a>
|
||||
|
||||
## AccountTradeMode Objects
|
||||
|
||||
```python
|
||||
class AccountTradeMode(Repr, IntEnum)
|
||||
```
|
||||
|
||||
ACCOUNT_TRADE_MODE Enum. There are several types of accounts that can be opened on a trade server.
|
||||
The type of account on which an MQL5 program is running can be found out using
|
||||
the ENUM_ACCOUNT_TRADE_MODE enumeration.
|
||||
|
||||
**Attributes**:
|
||||
|
||||
- `DEMO` - Demo account
|
||||
- `CONTEST` - Contest account
|
||||
- `REAL` - Real Account
|
||||
|
||||
<a id="aiomql.core.constants.TickFlag"></a>
|
||||
|
||||
## TickFlag Objects
|
||||
|
||||
```python
|
||||
class TickFlag(Repr, IntFlag)
|
||||
```
|
||||
|
||||
TICK_FLAG Enum. TICK_FLAG defines possible flags for ticks. These flags are used to describe ticks obtained by the
|
||||
copy_ticks_from() and copy_ticks_range() functions.
|
||||
|
||||
**Attributes**:
|
||||
|
||||
- `BID` _int_ - Bid price changed
|
||||
- `ASK` _int_ - Ask price changed
|
||||
- `LAST` _int_ - Last price changed
|
||||
- `VOLUME` _int_ - Volume changed
|
||||
- `BUY` _int_ - last Buy price changed
|
||||
- `SELL` _int_ - last Sell price changed
|
||||
|
||||
<a id="aiomql.core.constants.TradeRetcode"></a>
|
||||
|
||||
## TradeRetcode Objects
|
||||
|
||||
```python
|
||||
class TradeRetcode(Repr, IntEnum)
|
||||
```
|
||||
|
||||
TRADE_RETCODE Enum. Return codes for order send/check operations
|
||||
|
||||
**Attributes**:
|
||||
|
||||
- `REQUOTE` _int_ - Requote
|
||||
- `REJECT` _int_ - Request rejected
|
||||
- `CANCEL` _int_ - Request canceled by trader
|
||||
- `PLACED` _int_ - Order placed
|
||||
- `DONE` _int_ - Request completed
|
||||
- `DONE_PARTIAL` _int_ - Only part of the request was completed
|
||||
- `ERROR` _int_ - Request processing error
|
||||
- `TIMEOUT` _int_ - Request canceled by timeout
|
||||
- `INVALID` _int_ - Invalid request
|
||||
- `INVALID_VOLUME` _int_ - Invalid volume in the request
|
||||
- `INVALID_PRICE` _int_ - Invalid price in the request
|
||||
- `INVALID_STOPS` _int_ - Invalid stops in the request
|
||||
- `TRADE_DISABLED` _int_ - Trade is disabled
|
||||
- `MARKET_CLOSED` _int_ - Market is closed
|
||||
- `NO_MONEY` _int_ - There is not enough money to complete the request
|
||||
- `PRICE_CHANGED` _int_ - Prices changed
|
||||
- `PRICE_OFF` _int_ - There are no quotes to process the request
|
||||
- `INVALID_EXPIRATION` _int_ - Invalid order expiration date in the request
|
||||
- `ORDER_CHANGED` _int_ - Order state changed
|
||||
- `TOO_MANY_REQUESTS` _int_ - Too frequent requests
|
||||
- `NO_CHANGES` _int_ - No changes in request
|
||||
- `SERVER_DISABLES_AT` _int_ - Autotrading disabled by server
|
||||
- `CLIENT_DISABLES_AT` _int_ - Autotrading disabled by client terminal
|
||||
- `LOCKED` _int_ - Request locked for processing
|
||||
- `FROZEN` _int_ - Order or position frozen
|
||||
- `INVALID_FILL` _int_ - Invalid order filling type
|
||||
- `CONNECTION` _int_ - No connection with the trade server
|
||||
- `ONLY_REAL` _int_ - Operation is allowed only for live accounts
|
||||
- `LIMIT_ORDERS` _int_ - The number of pending orders has reached the limit
|
||||
- `LIMIT_VOLUME` _int_ - The volume of orders and positions for the symbol has reached the limit
|
||||
- `INVALID_ORDER` _int_ - Incorrect or prohibited order type
|
||||
- `POSITION_CLOSED` _int_ - Position with the specified POSITION_IDENTIFIER has already been closed
|
||||
- `INVALID_CLOSE_VOLUME` _int_ - A close volume exceeds the current position volume
|
||||
|
||||
- `CLOSE_ORDER_EXIST` _int_ - A close order already exists for a specified position. This may happen when working in
|
||||
the hedging system:
|
||||
· when attempting to close a position with an opposite one, while close orders for the position already exist
|
||||
· when attempting to fully or partially close a position if the total volume of the already present close
|
||||
orders and the newly placed one exceeds the current position volume
|
||||
|
||||
- `LIMIT_POSITIONS` _int_ - The number of open positions simultaneously present on an account can be limited by the
|
||||
server settings.After a limit is reached, the server returns the TRADE_RETCODE_LIMIT_POSITIONS error when
|
||||
attempting to place an order. The limitation operates differently depending on the position accounting type:
|
||||
· Netting — number of open positions is considered. When a limit is reached, the platform does not let
|
||||
placing new orders whose execution may increase the number of open positions. In fact, the platform
|
||||
allows placing orders only for the symbols that already have open positions.
|
||||
The current pending orders are not considered since their execution may lead to changes in the current
|
||||
positions but it cannot increase their number.
|
||||
|
||||
· Hedging — pending orders are considered together with open positions, since a pending order activation
|
||||
always leads to opening a new position. When a limit is reached, the platform does not allow placing
|
||||
both new market orders for opening positions and pending orders.
|
||||
|
||||
- `REJECT_CANCEL` _int_ - The pending order activation request is rejected, the order is canceled.
|
||||
- `LONG_ONLY` _int_ - The request is rejected, because the "Only long positions are allowed" rule is set for the
|
||||
symbol (POSITION_TYPE_BUY)
|
||||
- `SHORT_ONLY` _int_ - The request is rejected, because the "Only short positions are allowed" rule is set for the
|
||||
symbol (POSITION_TYPE_SELL)
|
||||
- `CLOSE_ONLY` _int_ - The request is rejected, because the "Only position closing is allowed" rule is set for the
|
||||
symbol
|
||||
- `FIFO_CLOSE` _int_ - The request is rejected, because "Position closing is allowed only by FIFO rule" flag is set
|
||||
for the trading account (ACCOUNT_FIFO_CLOSE=true)
|
||||
|
||||
<a id="aiomql.core.constants.AccountStopOutMode"></a>
|
||||
|
||||
## AccountStopOutMode Objects
|
||||
|
||||
```python
|
||||
class AccountStopOutMode(Repr, IntEnum)
|
||||
```
|
||||
|
||||
ACCOUNT_STOPOUT_MODE Enum.
|
||||
|
||||
**Attributes**:
|
||||
|
||||
- `PERCENT` _int_ - Account stop out mode in percents
|
||||
- `MONEY` _int_ - Account stop out mode in money
|
||||
|
||||
<a id="aiomql.core.constants.AccountMarginMode"></a>
|
||||
|
||||
## AccountMarginMode Objects
|
||||
|
||||
```python
|
||||
class AccountMarginMode(Repr, IntEnum)
|
||||
```
|
||||
|
||||
ACCOUNT_MARGIN_MODE Enum.
|
||||
|
||||
**Attributes**:
|
||||
|
||||
- `RETAIL_NETTING` _int_ - Used for the OTC markets to interpret positions in the "netting"
|
||||
mode (only one position can exist for one symbol). The margin is calculated based on the symbol
|
||||
type (SYMBOL_TRADE_CALC_MODE).
|
||||
|
||||
- `EXCHANGE` _int_ - Used for the exchange markets. Margin is calculated based on the discounts specified in
|
||||
symbol settings. Discounts are set by the broker, but not less than the values set by the exchange.
|
||||
|
||||
- `HEDGING` _int_ - Used for the exchange markets where individual positions are possible
|
||||
(hedging, multiple positions can exist for one symbol). The margin is calculated based on the symbol
|
||||
type (SYMBOL_TRADE_CALC_MODE) taking into account the hedged margin (SYMBOL_MARGIN_HEDGED).
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
# Table of Contents
|
||||
|
||||
* [aiomql.core.errors](#aiomql.core.errors)
|
||||
* [Error](#aiomql.core.errors.Error)
|
||||
|
||||
<a id="aiomql.core.errors"></a>
|
||||
|
||||
# aiomql.core.errors
|
||||
|
||||
<a id="aiomql.core.errors.Error"></a>
|
||||
|
||||
## Error Objects
|
||||
|
||||
```python
|
||||
class Error()
|
||||
```
|
||||
|
||||
Error class for handling errors from MetaTrader 5.
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
# Table of Contents
|
||||
|
||||
* [aiomql.core.exceptions](#aiomql.core.exceptions)
|
||||
* [LoginError](#aiomql.core.exceptions.LoginError)
|
||||
* [VolumeError](#aiomql.core.exceptions.VolumeError)
|
||||
* [SymbolError](#aiomql.core.exceptions.SymbolError)
|
||||
* [OrderError](#aiomql.core.exceptions.OrderError)
|
||||
|
||||
<a id="aiomql.core.exceptions"></a>
|
||||
|
||||
# aiomql.core.exceptions
|
||||
|
||||
Exceptions for the aiomql package.
|
||||
|
||||
<a id="aiomql.core.exceptions.LoginError"></a>
|
||||
|
||||
## LoginError Objects
|
||||
|
||||
```python
|
||||
class LoginError(Exception)
|
||||
```
|
||||
|
||||
Raised when an error occurs when logging in.
|
||||
|
||||
<a id="aiomql.core.exceptions.VolumeError"></a>
|
||||
|
||||
## VolumeError Objects
|
||||
|
||||
```python
|
||||
class VolumeError(Exception)
|
||||
```
|
||||
|
||||
Raised when a volume is not valid or out of range for a symbol.
|
||||
|
||||
<a id="aiomql.core.exceptions.SymbolError"></a>
|
||||
|
||||
## SymbolError Objects
|
||||
|
||||
```python
|
||||
class SymbolError(Exception)
|
||||
```
|
||||
|
||||
Raised when a symbol is not provided where required or not available in the Market Watch.
|
||||
|
||||
<a id="aiomql.core.exceptions.OrderError"></a>
|
||||
|
||||
## OrderError Objects
|
||||
|
||||
```python
|
||||
class OrderError(Exception)
|
||||
```
|
||||
|
||||
Raised when an error occurs when working with the order class.
|
||||
|
||||
@@ -0,0 +1,165 @@
|
||||
# Table of Contents
|
||||
|
||||
* [aiomql.core.meta\_trader](#aiomql.core.meta_trader)
|
||||
* [MetaTrader](#aiomql.core.meta_trader.MetaTrader)
|
||||
* [\_\_aenter\_\_](#aiomql.core.meta_trader.MetaTrader.__aenter__)
|
||||
* [\_\_aexit\_\_](#aiomql.core.meta_trader.MetaTrader.__aexit__)
|
||||
* [login](#aiomql.core.meta_trader.MetaTrader.login)
|
||||
* [initialize](#aiomql.core.meta_trader.MetaTrader.initialize)
|
||||
* [shutdown](#aiomql.core.meta_trader.MetaTrader.shutdown)
|
||||
* [version](#aiomql.core.meta_trader.MetaTrader.version)
|
||||
* [account\_info](#aiomql.core.meta_trader.MetaTrader.account_info)
|
||||
* [orders\_get](#aiomql.core.meta_trader.MetaTrader.orders_get)
|
||||
|
||||
<a id="aiomql.core.meta_trader"></a>
|
||||
|
||||
# aiomql.core.meta\_trader
|
||||
|
||||
<a id="aiomql.core.meta_trader.MetaTrader"></a>
|
||||
|
||||
## MetaTrader Objects
|
||||
|
||||
```python
|
||||
class MetaTrader(metaclass=BaseMeta)
|
||||
```
|
||||
|
||||
<a id="aiomql.core.meta_trader.MetaTrader.__aenter__"></a>
|
||||
|
||||
#### \_\_aenter\_\_
|
||||
|
||||
```python
|
||||
async def __aenter__() -> 'MetaTrader'
|
||||
```
|
||||
|
||||
Async context manager entry point.
|
||||
Initializes the connection to the MetaTrader terminal.
|
||||
|
||||
**Returns**:
|
||||
|
||||
- `MetaTrader` - An instance of the MetaTrader class.
|
||||
|
||||
<a id="aiomql.core.meta_trader.MetaTrader.__aexit__"></a>
|
||||
|
||||
#### \_\_aexit\_\_
|
||||
|
||||
```python
|
||||
async def __aexit__(exc_type, exc_val, exc_tb)
|
||||
```
|
||||
|
||||
Async context manager exit point. Closes the connection to the MetaTrader terminal.
|
||||
|
||||
<a id="aiomql.core.meta_trader.MetaTrader.login"></a>
|
||||
|
||||
#### login
|
||||
|
||||
```python
|
||||
async def login(login: int,
|
||||
password: str,
|
||||
server: str,
|
||||
timeout: int = 60000) -> bool
|
||||
```
|
||||
|
||||
Connects to the MetaTrader terminal using the specified login, password and server.
|
||||
|
||||
**Arguments**:
|
||||
|
||||
- `login` _int_ - The trading account number.
|
||||
- `password` _str_ - The trading account password.
|
||||
- `server` _str_ - The trading server name.
|
||||
- `timeout` _int_ - The timeout for the connection in seconds.
|
||||
|
||||
|
||||
**Returns**:
|
||||
|
||||
- `bool` - True if successful, False otherwise.
|
||||
|
||||
<a id="aiomql.core.meta_trader.MetaTrader.initialize"></a>
|
||||
|
||||
#### initialize
|
||||
|
||||
```python
|
||||
async def initialize(path: str = "",
|
||||
login: int = 0,
|
||||
password: str = "",
|
||||
server: str = "",
|
||||
timeout: int | None = None,
|
||||
portable=False) -> bool
|
||||
```
|
||||
|
||||
Initializes the connection to the MetaTrader terminal. All parameters are optional.
|
||||
|
||||
**Arguments**:
|
||||
|
||||
- `path` _str_ - The path to the MetaTrader terminal executable.
|
||||
- `login` _int_ - The trading account number.
|
||||
- `password` _str_ - The trading account password.
|
||||
- `server` _str_ - The trading server name.
|
||||
- `timeout` _int_ - The timeout for the connection in seconds.
|
||||
- `portable` _bool_ - If True, the terminal will be launched in portable mode.
|
||||
|
||||
|
||||
**Returns**:
|
||||
|
||||
- `bool` - True if successful, False otherwise.
|
||||
|
||||
<a id="aiomql.core.meta_trader.MetaTrader.shutdown"></a>
|
||||
|
||||
#### shutdown
|
||||
|
||||
```python
|
||||
async def shutdown() -> None
|
||||
```
|
||||
|
||||
Closes the connection to the MetaTrader terminal.
|
||||
|
||||
**Returns**:
|
||||
|
||||
- `None` - None
|
||||
|
||||
<a id="aiomql.core.meta_trader.MetaTrader.version"></a>
|
||||
|
||||
#### version
|
||||
|
||||
```python
|
||||
async def version() -> tuple[int, int, str] | None
|
||||
```
|
||||
|
||||
|
||||
|
||||
<a id="aiomql.core.meta_trader.MetaTrader.account_info"></a>
|
||||
|
||||
#### account\_info
|
||||
|
||||
```python
|
||||
async def account_info() -> AccountInfo | None
|
||||
```
|
||||
|
||||
|
||||
|
||||
<a id="aiomql.core.meta_trader.MetaTrader.orders_get"></a>
|
||||
|
||||
#### orders\_get
|
||||
|
||||
```python
|
||||
async def orders_get(group: str = "",
|
||||
ticket: int = 0,
|
||||
symbol: str = "") -> tuple[TradeOrder] | None
|
||||
```
|
||||
|
||||
Get active orders with the ability to filter by symbol or ticket. There are three call options.
|
||||
Call without parameters. Return active orders on all symbols
|
||||
|
||||
**Arguments**:
|
||||
|
||||
- `symbol` _str_ - Symbol name. Optional named parameter. If a symbol is specified, the ticket parameter is ignored.
|
||||
|
||||
- `group` _str_ - The filter for arranging a group of necessary symbols. Optional named parameter. If the group is specified, the function
|
||||
returns only active orders meeting a specified criteria for a symbol name.
|
||||
|
||||
- `ticket` _int_ - Order ticket (ORDER_TICKET). Optional named parameter.
|
||||
|
||||
|
||||
**Returns**:
|
||||
|
||||
- `list[TradeOrder]` - A list of active trade orders as TradeOrder objects
|
||||
|
||||
@@ -0,0 +1,405 @@
|
||||
# Table of Contents
|
||||
|
||||
* [aiomql.core.models](#aiomql.core.models)
|
||||
* [AccountInfo](#aiomql.core.models.AccountInfo)
|
||||
* [TerminalInfo](#aiomql.core.models.TerminalInfo)
|
||||
* [SymbolInfo](#aiomql.core.models.SymbolInfo)
|
||||
* [BookInfo](#aiomql.core.models.BookInfo)
|
||||
* [TradeOrder](#aiomql.core.models.TradeOrder)
|
||||
* [TradeRequest](#aiomql.core.models.TradeRequest)
|
||||
* [OrderCheckResult](#aiomql.core.models.OrderCheckResult)
|
||||
* [OrderSendResult](#aiomql.core.models.OrderSendResult)
|
||||
* [TradePosition](#aiomql.core.models.TradePosition)
|
||||
* [TradeDeal](#aiomql.core.models.TradeDeal)
|
||||
|
||||
<a id="aiomql.core.models"></a>
|
||||
|
||||
# aiomql.core.models
|
||||
|
||||
<a id="aiomql.core.models.AccountInfo"></a>
|
||||
|
||||
## AccountInfo Objects
|
||||
|
||||
```python
|
||||
class AccountInfo(Base)
|
||||
```
|
||||
|
||||
Account Information Class.
|
||||
|
||||
**Attributes**:
|
||||
|
||||
- `login` - int
|
||||
- `password` - str
|
||||
- `server` - str
|
||||
- `trade_mode` - AccountTradeMode
|
||||
- `balance` - float
|
||||
- `leverage` - float
|
||||
- `profit` - float
|
||||
- `point` - float
|
||||
- `amount` - float = 0
|
||||
- `equity` - float
|
||||
- `credit` - float
|
||||
- `margin` - float
|
||||
- `margin_level` - float
|
||||
- `margin_free` - float
|
||||
- `margin_mode` - AccountMarginMode
|
||||
- `margin_so_mode` - AccountStopoutMode
|
||||
- `margin_so_call` - float
|
||||
- `margin_so_so` - float
|
||||
- `margin_initial` - float
|
||||
- `margin_maintenance` - float
|
||||
- `fifo_close` - bool
|
||||
- `limit_orders` - float
|
||||
- `currency` - str = "USD"
|
||||
- `trade_allowed` - bool = True
|
||||
- `trade_expert` - bool = True
|
||||
- `currency_digits` - int
|
||||
- `assets` - float
|
||||
- `liabilities` - float
|
||||
- `commission_blocked` - float
|
||||
- `name` - str
|
||||
- `company` - str
|
||||
|
||||
<a id="aiomql.core.models.TerminalInfo"></a>
|
||||
|
||||
## TerminalInfo Objects
|
||||
|
||||
```python
|
||||
class TerminalInfo(Base)
|
||||
```
|
||||
|
||||
Terminal information class. Holds information about the terminal.
|
||||
|
||||
**Attributes**:
|
||||
|
||||
- `community_account` - bool
|
||||
- `community_connection` - bool
|
||||
- `connected` - bool
|
||||
- `dlls_allowed` - bool
|
||||
- `trade_allowed` - bool
|
||||
- `tradeapi_disabled` - bool
|
||||
- `email_enabled` - bool
|
||||
- `ftp_enabled` - bool
|
||||
- `notifications_enabled` - bool
|
||||
- `mqid` - bool
|
||||
- `build` - int
|
||||
- `maxbars` - int
|
||||
- `codepage` - int
|
||||
- `ping_last` - int
|
||||
- `community_balance` - float
|
||||
- `retransmission` - float
|
||||
- `company` - str
|
||||
- `name` - str
|
||||
- `language` - str
|
||||
- `path` - str
|
||||
- `data_path` - str
|
||||
- `commondata_path` - str
|
||||
|
||||
<a id="aiomql.core.models.SymbolInfo"></a>
|
||||
|
||||
## SymbolInfo Objects
|
||||
|
||||
```python
|
||||
class SymbolInfo(Base)
|
||||
```
|
||||
|
||||
Symbol Information Class. Symbols are financial instruments available for trading in the MetaTrader 5 terminal.
|
||||
|
||||
**Attributes**:
|
||||
|
||||
- `name` - str
|
||||
- `custom` - bool
|
||||
- `chart_mode` - SymbolChartMode
|
||||
- `select` - bool
|
||||
- `visible` - bool
|
||||
- `session_deals` - int
|
||||
- `session_buy_orders` - int
|
||||
- `session_sell_orders` - int
|
||||
- `volume` - float
|
||||
- `volumehigh` - float
|
||||
- `volumelow` - float
|
||||
- `time` - int
|
||||
- `digits` - int
|
||||
- `spread` - float
|
||||
- `spread_float` - bool
|
||||
- `ticks_bookdepth` - int
|
||||
- `trade_calc_mode` - SymbolCalcMode
|
||||
- `trade_mode` - SymbolTradeMode
|
||||
- `start_time` - int
|
||||
- `expiration_time` - int
|
||||
- `trade_stops_level` - int
|
||||
- `trade_freeze_level` - int
|
||||
- `trade_exemode` - SymbolTradeExecution
|
||||
- `swap_mode` - SymbolSwapMode
|
||||
- `swap_rollover3days` - DayOfWeek
|
||||
- `margin_hedged_use_leg` - bool
|
||||
- `expiration_mode` - int
|
||||
- `filling_mode` - int
|
||||
- `order_mode` - int
|
||||
- `order_gtc_mode` - SymbolOrderGTCMode
|
||||
- `option_mode` - SymbolOptionMode
|
||||
- `option_right` - SymbolOptionRight
|
||||
- `bid` - float
|
||||
- `bidhigh` - float
|
||||
- `bidlow` - float
|
||||
- `ask` - float
|
||||
- `askhigh` - float
|
||||
- `asklow` - float
|
||||
- `last` - float
|
||||
- `lasthigh` - float
|
||||
- `lastlow` - float
|
||||
- `volume_real` - float
|
||||
- `volumehigh_real` - float
|
||||
- `volumelow_real` - float
|
||||
- `option_strike` - float
|
||||
- `point` - float
|
||||
- `trade_tick_value` - float
|
||||
- `trade_tick_value_profit` - float
|
||||
- `trade_tick_value_loss` - float
|
||||
- `trade_tick_size` - float
|
||||
- `trade_contract_size` - float
|
||||
- `trade_accrued_interest` - float
|
||||
- `trade_face_value` - float
|
||||
- `trade_liquidity_rate` - float
|
||||
- `volume_min` - float
|
||||
- `volume_max` - float
|
||||
- `volume_step` - float
|
||||
- `volume_limit` - float
|
||||
- `swap_long` - float
|
||||
- `swap_short` - float
|
||||
- `margin_initial` - float
|
||||
- `margin_maintenance` - float
|
||||
- `session_volume` - float
|
||||
- `session_turnover` - float
|
||||
- `session_interest` - float
|
||||
- `session_buy_orders_volume` - float
|
||||
- `session_sell_orders_volume` - float
|
||||
- `session_open` - float
|
||||
- `session_close` - float
|
||||
- `session_aw` - float
|
||||
- `session_price_settlement` - float
|
||||
- `session_price_limit_min` - float
|
||||
- `session_price_limit_max` - float
|
||||
- `margin_hedged` - float
|
||||
- `price_change` - float
|
||||
- `price_volatility` - float
|
||||
- `price_theoretical` - float
|
||||
- `price_greeks_delta` - float
|
||||
- `price_greeks_theta` - float
|
||||
- `price_greeks_gamma` - float
|
||||
- `price_greeks_vega` - float
|
||||
- `price_greeks_rho` - float
|
||||
- `price_greeks_omega` - float
|
||||
- `price_sensitivity` - float
|
||||
- `basis` - str
|
||||
- `category` - str
|
||||
- `currency_base` - str
|
||||
- `currency_profit` - str
|
||||
- `currency_margin` - Any
|
||||
- `bank` - str
|
||||
- `description` - str
|
||||
- `exchange` - str
|
||||
- `formula` - Any
|
||||
- `isin` - Any
|
||||
- `name` - str
|
||||
- `page` - str
|
||||
- `path` - str
|
||||
|
||||
<a id="aiomql.core.models.BookInfo"></a>
|
||||
|
||||
## BookInfo Objects
|
||||
|
||||
```python
|
||||
class BookInfo(Base)
|
||||
```
|
||||
|
||||
Book Information Class.
|
||||
|
||||
**Attributes**:
|
||||
|
||||
- `type` - BookType
|
||||
- `price` - float
|
||||
- `volume` - float
|
||||
- `volume_dbl` - float
|
||||
|
||||
<a id="aiomql.core.models.TradeOrder"></a>
|
||||
|
||||
## TradeOrder Objects
|
||||
|
||||
```python
|
||||
class TradeOrder(Base)
|
||||
```
|
||||
|
||||
Trade Order Class.
|
||||
|
||||
**Attributes**:
|
||||
|
||||
- `ticket` - int
|
||||
- `time_setup` - int
|
||||
- `time_setup_msc` - int
|
||||
- `time_expiration` - int
|
||||
- `time_done` - int
|
||||
- `time_done_msc` - int
|
||||
- `type` - OrderType
|
||||
- `type_time` - OrderTime
|
||||
- `type_filling` - OrderFilling
|
||||
- `state` - int
|
||||
- `magic` - int
|
||||
- `position_id` - int
|
||||
- `position_by_id` - int
|
||||
- `reason` - OrderReason
|
||||
- `volume_current` - float
|
||||
- `volume_initial` - float
|
||||
- `price_open` - float
|
||||
- `sl` - float
|
||||
- `tp` - float
|
||||
- `price_current` - float
|
||||
- `price_stoplimit` - float
|
||||
- `symbol` - str
|
||||
- `comment` - str
|
||||
- `external_id` - str
|
||||
|
||||
<a id="aiomql.core.models.TradeRequest"></a>
|
||||
|
||||
## TradeRequest Objects
|
||||
|
||||
```python
|
||||
class TradeRequest(Base)
|
||||
```
|
||||
|
||||
Trade Request Class.
|
||||
|
||||
**Attributes**:
|
||||
|
||||
- `action` - TradeAction
|
||||
- `type` - OrderType
|
||||
- `order` - int
|
||||
- `symbol` - str
|
||||
- `volume` - float
|
||||
- `sl` - float
|
||||
- `tp` - float
|
||||
- `price` - float
|
||||
- `deviation` - float
|
||||
- `stop_limit` - float
|
||||
- `type_time` - OrderTime
|
||||
- `type_filling` - OrderFilling
|
||||
- `expiration` - int
|
||||
- `position` - int
|
||||
- `position_by` - int
|
||||
- `comment` - str
|
||||
- `magic` - int
|
||||
- `deviation` - int
|
||||
- `comment` - str
|
||||
|
||||
<a id="aiomql.core.models.OrderCheckResult"></a>
|
||||
|
||||
## OrderCheckResult Objects
|
||||
|
||||
```python
|
||||
class OrderCheckResult(Base)
|
||||
```
|
||||
|
||||
Order Check Result
|
||||
|
||||
**Attributes**:
|
||||
|
||||
- `retcode` - int
|
||||
- `balance` - float
|
||||
- `equity` - float
|
||||
- `profit` - float
|
||||
- `margin` - float
|
||||
- `margin_free` - float
|
||||
- `margin_level` - float
|
||||
- `comment` - str
|
||||
- `request` - TradeRequest
|
||||
|
||||
<a id="aiomql.core.models.OrderSendResult"></a>
|
||||
|
||||
## OrderSendResult Objects
|
||||
|
||||
```python
|
||||
class OrderSendResult(Base)
|
||||
```
|
||||
|
||||
Order Send Result
|
||||
|
||||
**Attributes**:
|
||||
|
||||
- `retcode` - int
|
||||
- `deal` - int
|
||||
- `order` - int
|
||||
- `volume` - float
|
||||
- `price` - float
|
||||
- `bid` - float
|
||||
- `ask` - float
|
||||
- `comment` - str
|
||||
- `request` - TradeRequest
|
||||
- `request_id` - int
|
||||
- `retcode_external` - int
|
||||
- `profit` - float
|
||||
|
||||
<a id="aiomql.core.models.TradePosition"></a>
|
||||
|
||||
## TradePosition Objects
|
||||
|
||||
```python
|
||||
class TradePosition(Base)
|
||||
```
|
||||
|
||||
Trade Position
|
||||
|
||||
**Attributes**:
|
||||
|
||||
- `ticket` - int
|
||||
- `time` - int
|
||||
- `time_msc` - int
|
||||
- `time_update` - int
|
||||
- `time_update_msc` - int
|
||||
- `type` - OrderType
|
||||
- `magic` - float
|
||||
- `identifier` - int
|
||||
- `reason` - PositionReason
|
||||
- `volume` - float
|
||||
- `price_open` - float
|
||||
- `sl` - float
|
||||
- `tp` - float
|
||||
- `price_current` - float
|
||||
- `swap` - float
|
||||
- `profit` - float
|
||||
- `symbol` - str
|
||||
- `comment` - str
|
||||
- `external_id` - str
|
||||
|
||||
<a id="aiomql.core.models.TradeDeal"></a>
|
||||
|
||||
## TradeDeal Objects
|
||||
|
||||
```python
|
||||
class TradeDeal(Base)
|
||||
```
|
||||
|
||||
Trade Deal
|
||||
|
||||
**Attributes**:
|
||||
|
||||
- `ticket` - int
|
||||
- `order` - int
|
||||
- `time` - int
|
||||
- `time_msc` - int
|
||||
- `type` - DealType
|
||||
- `entry` - DealEntry
|
||||
- `magic` - int
|
||||
- `position_id` - int
|
||||
- `reason` - DealReason
|
||||
- `volume` - float
|
||||
- `price` - float
|
||||
- `commission` - float
|
||||
- `swap` - float
|
||||
- `profit` - float
|
||||
- `fee` - float
|
||||
- `sl` - float
|
||||
- `tp` - float
|
||||
- `symbol` - str
|
||||
- `comment` - str
|
||||
- `external_id` - str
|
||||
|
||||
Reference in New Issue
Block a user