mirror of
https://github.com/Ichinga-Samuel/aiomql.git
synced 2026-08-18 22:38:06 +00:00
version 3.12
This commit is contained in:
+7
-7
@@ -3,7 +3,8 @@
|
||||
```python
|
||||
class Account(AccountInfo)
|
||||
```
|
||||
Singleton class for managing a trading account. A subclass of [AccountInfo](#accountinfo). All AccountInfo attributes are available in this class.
|
||||
Singleton class for managing a trading account. A subclass of [AccountInfo](#accountinfo).
|
||||
All AccountInfo attributes are available in this class.
|
||||
|
||||
### Attributes:
|
||||
|Name|Type|Description|Default|
|
||||
@@ -38,8 +39,8 @@ This method will only look for config details in the config instance if the logi
|
||||
```python
|
||||
async def __aenter__() -> 'Account'
|
||||
```
|
||||
Connect to a trading account and return the account instance.
|
||||
Async context manager for the Account class.
|
||||
Async context manager for the Account class. Connects to a trading account and returns the account instance.
|
||||
|
||||
#### Returns:
|
||||
|Type|Description|
|
||||
|---|---|
|
||||
@@ -63,8 +64,8 @@ Connect to a trading account.
|
||||
```python
|
||||
def has_symbol(symbol: str | Type[SymbolInfo])
|
||||
```
|
||||
Checks to see if a symbol is available for a trading account\
|
||||
#### Arguments:
|
||||
Checks to see if a symbol is available for a trading account
|
||||
#### Parameters:
|
||||
|Name|Type|Description|
|
||||
|---|---|---|
|
||||
|**symbol**|**str** or **SymbolInfo**|A symbol name or SymbolInfo instance|
|
||||
@@ -81,5 +82,4 @@ Get all financial instruments from the MetaTrader 5 terminal available for the c
|
||||
#### Returns:
|
||||
|Type|Description|
|
||||
|---|---|
|
||||
|**set[SymbolInfo]**|A set of SymbolInfo instances|
|
||||
|
||||
|**set[SymbolInfo]**|A set of SymbolInfo instances|
|
||||
+10
-10
@@ -1,7 +1,7 @@
|
||||
## <a id="bot_builder"></a> Bot Builder
|
||||
|
||||
```python
|
||||
class Bot()
|
||||
class Bot
|
||||
```
|
||||
The bot class. Create a bot instance to run your strategies.
|
||||
### Attributes:
|
||||
@@ -25,27 +25,27 @@ Prepares the bot by signing in to the trading account and initializing the symbo
|
||||
```python
|
||||
def execute()
|
||||
```
|
||||
Execute the bot. This method calls start internally. To enable you run your bot outside of an async function.
|
||||
Execute the bot.
|
||||
### start
|
||||
```python
|
||||
async def start()
|
||||
```
|
||||
Starts the bot by calling the initialize method and running the strategies in the executor.
|
||||
Initialize the bot and execute it. Similar to calling `execute` method but is a coroutine.
|
||||
|
||||
### add_coroutine
|
||||
```python
|
||||
def add_coroutine(coro: Coroutine, **kwargs)
|
||||
```
|
||||
#### Arguments:
|
||||
#### Parameters:
|
||||
|Name|Type|Description|
|
||||
|---|---|---|
|
||||
|**coro**|**Coroutine**|A coroutine to run in the executor|
|
||||
|
||||
### add_function
|
||||
```python
|
||||
def add_coroutine(func: Callable, **kwargs)
|
||||
def add_function(func: Callable, **kwargs)
|
||||
```
|
||||
#### Arguments:
|
||||
#### Parameters:
|
||||
| Name | Type | Description |
|
||||
|----------|--------------|-----------------------------------|
|
||||
| **func** | **Callable** | A function to run in the executor |
|
||||
@@ -55,7 +55,7 @@ def add_coroutine(func: Callable, **kwargs)
|
||||
def add_strategy(strategy: Strategy)
|
||||
```
|
||||
Add a strategy to the executor. An added strategy will only run if it's symbol was successfully initialized.
|
||||
#### Arguments:
|
||||
#### Parameters:
|
||||
|Name|Type|Description|
|
||||
|---|---|---|
|
||||
|**strategy**|**Strategy**|A Strategy instance to run on bot|
|
||||
@@ -65,7 +65,7 @@ Add a strategy to the executor. An added strategy will only run if it's symbol w
|
||||
def add_strategies(strategies: Iterable[Strategy])
|
||||
```
|
||||
Add multiple strategies at the same time
|
||||
#### Arguments:
|
||||
#### Parameters:
|
||||
|Name|Type|Description|
|
||||
|---|---|---|
|
||||
|**strategies**|**Iterable[Strategy]**|An iterable of Strategy instances|
|
||||
@@ -76,7 +76,7 @@ def add_strategy_all(*, strategy: Type[Strategy], params: dict | None = None)
|
||||
```
|
||||
Use this to run a single strategy on all available instruments in the market using the default parameters
|
||||
i.e one set of parameters for all trading symbols
|
||||
#### Arguments
|
||||
#### Parameters:
|
||||
|Name|Type|Description|
|
||||
|---|---|---|
|
||||
|**strategy**|**Type[Strategy]**|A Strategy class|
|
||||
@@ -95,7 +95,7 @@ async def init_symbol(symbol: Symbol) -> Symbol
|
||||
Initialize a symbol before the beginning of a trading session.
|
||||
Removes it from the list of symbols if it was not successfully initialized or not available
|
||||
for the account.
|
||||
#### Arguments:
|
||||
#### Parameters:
|
||||
|Name|Type|Description|
|
||||
|---|---|---|
|
||||
|**symbol**|**Symbol**|A Symbol instance|
|
||||
|
||||
+543
-101
@@ -1,82 +1,86 @@
|
||||
# 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
|
||||
|
||||
* [MetaTrader](#MetaTrader)
|
||||
* [\_\_aenter\_\_](#__aenter__)
|
||||
* [\_\_aexit\_\_](#aexit)
|
||||
* [login](#MetaTrader.login)
|
||||
* [initialize](#MetaTrader.initialize)
|
||||
* [shutdown](#MetaTrader.shutdown)
|
||||
* [version](#MetaTrader.version)
|
||||
* [account\_info](#MetaTrader.account_info)
|
||||
* [terminal\_info](#MetaTrader.terminal_info)
|
||||
* [last\_error](#MetaTrader.last_error)
|
||||
* [symbols\_total](#MetaTrader.symbols_total)
|
||||
* [symbols\_get](#MetaTrader.symbols_get)
|
||||
* [symbol\_info](#MetaTrader.symbol_info)
|
||||
* [symbol\_info\_tick](#MetaTrader.symbol_info_tick)
|
||||
* [symbol\_select](#MetaTrader.symbol_select)
|
||||
* [market\_book\_add](#MetaTrader.market_book_add)
|
||||
* [market\_book\_get](#MetaTrader.market_book_get)
|
||||
* [market\_book\_release](#MetaTrader.market_book_release)
|
||||
* [copy\_rates\_from](#MetaTrader.copy_rates_from)
|
||||
* [copy\_rates\_from\_pos](#MetaTrader.copy_rates_from_pos)
|
||||
* [copy\_rates\_range](#MetaTrader.copy_rates_range)
|
||||
* [copy\_ticks\_from](#MetaTrader.copy_ticks_from)
|
||||
* [copy\_ticks\_range](#MetaTrader.copy_ticks_range)
|
||||
* [orders\_total](#MetaTrader.orders_total)
|
||||
* [orders\_get](#MetaTrader.orders_get)
|
||||
* [order\_calc\_margin](#MetaTrader.order_calc_margin)
|
||||
* [order\_calc\_profit](#MetaTrader.order_calc_profit)
|
||||
* [order\_check](#MetaTrader.order_check)
|
||||
* [order\_send](#MetaTrader.order_send)
|
||||
* [positions\_total](#MetaTrader.positions_total)
|
||||
* [positions\_get](#MetaTrader.positions_get)
|
||||
* [history\_orders\_total](#MetaTrader.history_orders_total)
|
||||
* [history\_orders\_get](#MetaTrader.history_orders_get)
|
||||
* [history\_deals\_total](#MetaTrader.history_deals_total)
|
||||
* [history\_deals\_get](#MetaTrader.history_deals_get)
|
||||
|
||||
|
||||
## <a id="MetaTrader"></a> MetaTrader
|
||||
```python
|
||||
class MetaTrader(metaclass=BaseMeta)
|
||||
```
|
||||
The MetaTrader class is a wrapper around the MetaTrader terminal.
|
||||
It provides methods for connecting to the MetaTrader terminal and retrieving data from it.
|
||||
|
||||
<a id="aiomql.core.meta_trader.MetaTrader.__aenter__"></a>
|
||||
|
||||
#### \_\_aenter\_\_
|
||||
|
||||
### <a id="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\_\_
|
||||
#### Returns:
|
||||
|Type|Description|
|
||||
|---|---|
|
||||
|**MetaTrader**|An instance of the MetaTrader class|
|
||||
|
||||
#### <a id="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
|
||||
|
||||
#### <a id="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.
|
||||
#### Parameters:
|
||||
|Name|Type|Description|
|
||||
|---|---|---|
|
||||
|**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:
|
||||
|Type|Description|
|
||||
|---|---|
|
||||
|**bool**|True if successful, False otherwise.|
|
||||
|
||||
**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
|
||||
|
||||
#### <a id="MetaTrader.initialize"></a> initialize
|
||||
```python
|
||||
async def initialize(path: str = "",
|
||||
login: int = 0,
|
||||
@@ -85,81 +89,519 @@ async def initialize(path: str = "",
|
||||
timeout: int | None = None,
|
||||
portable=False) -> bool
|
||||
```
|
||||
|
||||
Initializes the connection to the MetaTrader terminal. All parameters are optional.
|
||||
#### Parameters:
|
||||
|Name|Type|Description|
|
||||
|---|---|---|
|
||||
|**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** or **None**|The timeout for the connection in seconds.|
|
||||
|**portable**|**bool**|If True, the terminal will be launched in portable mode.|
|
||||
#### Returns:
|
||||
|Type|Description|
|
||||
|---|---|
|
||||
|**bool**|True if successful, False otherwise.|
|
||||
|
||||
**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
|
||||
|
||||
#### <a id="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
|
||||
|
||||
#### <a id="MetaTrader.version"></a> version
|
||||
```python
|
||||
async def version() -> tuple[int, int, str] | None
|
||||
```
|
||||
Returns the version of the MetaTrader terminal.
|
||||
#### Returns:
|
||||
|Type| Description |
|
||||
|---|-----------------------------------------------------------------------------------------------------|
|
||||
|**tuple[int, int, str]**| A tuple of the MetaTrader terminal version. **Terminal Version**, **Build**, **Build Release Date** |
|
||||
|
||||
|
||||
|
||||
<a id="aiomql.core.meta_trader.MetaTrader.account_info"></a>
|
||||
|
||||
<a id="MetaTrader.account_info"></a>
|
||||
#### account\_info
|
||||
|
||||
```python
|
||||
async def account_info() -> AccountInfo | None
|
||||
```
|
||||
Returns the account information for the connected account.
|
||||
#### Returns:
|
||||
|Type|Description|
|
||||
|---|---|
|
||||
|**AccountInfo**|An instance of the AccountInfo class|
|
||||
|
||||
<a id="MetaTrader.terminal_info"></a>
|
||||
#### terminal\_info
|
||||
```python
|
||||
async def terminal_info() -> TerminalInfo | None
|
||||
```
|
||||
Returns the terminal information for the connected terminal.
|
||||
#### Returns:
|
||||
|Type| Description |
|
||||
|---|------------------------------------------------|
|
||||
|**TerminalInfo**| An instance of the TerminalInfo class. A tuple |
|
||||
|
||||
<a id="MetaTrader.last_error"></a>
|
||||
#### last\_error
|
||||
```python
|
||||
async def last_error() -> tuple[int, str]
|
||||
```
|
||||
Returns the last error code and description.
|
||||
#### Returns:
|
||||
|Type|Description|
|
||||
|---|---|
|
||||
|**tuple[int, str]**|A tuple of the last error code and description.|
|
||||
|
||||
<a id="MetaTrader.symbols_total"></a>
|
||||
#### symbols\_total
|
||||
```python
|
||||
async def symbols_total() -> int
|
||||
```
|
||||
Returns the total number of symbols.
|
||||
#### Returns:
|
||||
|Type|Description|
|
||||
|---|---|
|
||||
|**int**|The total number of symbols.|
|
||||
|
||||
<a id="MetaTrader.symbols_get"></a>
|
||||
#### symbols\_get
|
||||
```python
|
||||
async def symbols_get(group: str = "") -> tuple[SymbolInfo] | None
|
||||
```
|
||||
Returns the symbol information for all symbols or for a specified group.
|
||||
#### Parameters:
|
||||
|Name|Type|Description|
|
||||
|---|---|---|
|
||||
|**group**|**str**|The group name. Optional named parameter. If the group is specified, the function returns only symbols meeting a specified criteria for a symbol name.|
|
||||
#### Returns:
|
||||
|Type|Description|
|
||||
|---|---|
|
||||
|**tuple[SymbolInfo]**|A tuple of SymbolInfo objects.|
|
||||
|
||||
|
||||
<a id="MetaTrader.symbol_info"></a>
|
||||
#### symbol\_info
|
||||
```python
|
||||
async def symbol_info(symbol: str) -> SymbolInfo | None
|
||||
```
|
||||
Returns the symbol information for the specified symbol.
|
||||
#### Parameters:
|
||||
|Name|Type|Description|
|
||||
|---|---|---|
|
||||
|**symbol**|**str**|The symbol name.|
|
||||
#### Returns:
|
||||
|Type|Description|
|
||||
|---|---|
|
||||
|**SymbolInfo**|An instance of the SymbolInfo class.|
|
||||
|
||||
<a id="aiomql.core.meta_trader.MetaTrader.orders_get"></a>
|
||||
<a id="MetaTrader.symbol_info_tick"></a>
|
||||
#### symbol\_info\_tick
|
||||
```python
|
||||
async def symbol_info_tick(symbol: str) -> Tick | None
|
||||
```
|
||||
Returns the latest tick for the specified symbol.
|
||||
#### Parameters:
|
||||
|Name|Type|Description|
|
||||
|---|---|---|
|
||||
|**symbol**|**str**|The symbol name.|
|
||||
#### Returns:
|
||||
|Type|Description|
|
||||
|---|---|
|
||||
|**Tick**|An instance of the Tick class.|
|
||||
|
||||
<a id="MetaTrader.symbol_select"></a>
|
||||
#### symbol\_select
|
||||
```python
|
||||
async def symbol_select(symbol: str, enable: bool) -> bool
|
||||
```
|
||||
Selects or unselects the specified symbol in the Market Watch window.
|
||||
#### Parameters:
|
||||
|Name|Type|Description|
|
||||
|---|---|---|
|
||||
|**symbol**|**str**|The symbol name.|
|
||||
|**enable**|**bool**|If True, the symbol will be selected. If False, the symbol will be unselected.|
|
||||
#### Returns:
|
||||
|Type|Description|
|
||||
|---|---|
|
||||
|**bool**|True if successful, False otherwise.|
|
||||
|
||||
<a id="MetaTrader.market_book_add"></a>
|
||||
#### market\_book\_add
|
||||
```python
|
||||
async def market_book_add(symbol: str) -> bool
|
||||
```
|
||||
Adds the specified symbol to the market book.
|
||||
#### Parameters:
|
||||
|Name|Type|Description|
|
||||
|---|---|---|
|
||||
|**symbol**|**str**|The symbol name.|
|
||||
#### Returns:
|
||||
|Type|Description|
|
||||
|---|---|
|
||||
|**bool**|True if successful, False otherwise.|
|
||||
|
||||
|
||||
<a id="MetaTrader.market_book_get"></a>
|
||||
#### market\_book\_get
|
||||
```python
|
||||
async def market_book_get(symbol: str) -> tuple[BookInfo] | None
|
||||
```
|
||||
Returns the market depth for the specified symbol.
|
||||
#### Parameters:
|
||||
|Name|Type|Description|
|
||||
|---|---|---|
|
||||
|**symbol**|**str**|The symbol name.|
|
||||
#### Returns:
|
||||
|Type|Description|
|
||||
|---|---|
|
||||
|**tuple[BookInfo]**|A tuple of BookInfo objects.|
|
||||
|
||||
<a id="MetaTrader.market_book_release"></a>
|
||||
#### market\_book\_release
|
||||
```python
|
||||
async def market_book_release(symbol: str) -> bool
|
||||
```
|
||||
Removes the specified symbol from the market book.
|
||||
#### Parameters:
|
||||
|Name|Type|Description|
|
||||
|---|---|---|
|
||||
|**symbol**|**str**|The symbol name.|
|
||||
#### Returns:
|
||||
|Type|Description|
|
||||
|---|---|
|
||||
|**bool**|True if successful, False otherwise.|
|
||||
|
||||
<a id="MetaTrader.copy_rates_from"></a>
|
||||
#### copy\_rates\_from
|
||||
|
||||
```python
|
||||
import numpy
|
||||
|
||||
|
||||
async def copy_rates_from(symbol: str,
|
||||
timeframe: TimeFrame,
|
||||
date_from: datetime | int,
|
||||
count: int) -> numpy.ndarray | None
|
||||
```
|
||||
Returns the OHLCV rates for the specified symbol and timeframe starting from the specified date.
|
||||
#### Parameters:
|
||||
|Name|Type|Description|
|
||||
|---|---|---|
|
||||
|**symbol**|**str**|The symbol name.|
|
||||
|**timeframe**|**TimeFrame**|The timeframe.|
|
||||
|**date_from**|**datetime** or **int**|The date to start from.|
|
||||
|**count**|**int**|The number of rates to return.|
|
||||
#### Returns:
|
||||
|Type|Description|
|
||||
|---|---|
|
||||
|**numpy.ndarray**|A numpy array of OHLCV rates.|
|
||||
|
||||
<a id="MetaTrader.copy_rates_from_pos"></a>
|
||||
#### copy\_rates\_from\_pos
|
||||
```python
|
||||
async def copy_rates_from_pos(symbol: str,
|
||||
timeframe: TimeFrame,
|
||||
start_pos: int,
|
||||
count: int) -> numpy.ndarray | None
|
||||
```
|
||||
Returns the OHLCV rates for the specified symbol and timeframe starting from the specified position.
|
||||
#### Parameters:
|
||||
|Name|Type|Description|
|
||||
|---|---|---|
|
||||
|**symbol**|**str**|The symbol name.|
|
||||
|**timeframe**|**TimeFrame**|The timeframe.|
|
||||
|**start_pos**|**int**|The position to start from.|
|
||||
|**count**|**int**|The number of rates to return.|
|
||||
#### Returns:
|
||||
|Type|Description|
|
||||
|---|---|
|
||||
|**numpy.ndarray**|A numpy array of OHLCV rates.|
|
||||
|
||||
<a id="MetaTrader.copy_rates_range"></a>
|
||||
#### copy\_rates\_range
|
||||
```python
|
||||
async def copy_rates_range(symbol: str,
|
||||
timeframe: TimeFrame,
|
||||
date_from: datetime | int,
|
||||
date_to: datetime | int) -> numpy.ndarray | None
|
||||
```
|
||||
Returns the OHLCV rates for the specified symbol and timeframe between the specified dates.
|
||||
#### Parameters:
|
||||
|Name|Type|Description|
|
||||
|---|---|---|
|
||||
|**symbol**|**str**|The symbol name.|
|
||||
|**timeframe**|**TimeFrame**|The timeframe.|
|
||||
|**date_from**|**datetime** or **int**|The start date.|
|
||||
|**date_to**|**datetime** or **int**|The end date.|
|
||||
#### Returns:
|
||||
|Type|Description|
|
||||
|---|---|
|
||||
|**numpy.ndarray**|A numpy array of OHLCV rates.|
|
||||
|
||||
<a id="MetaTrader.copy_ticks_from"></a>
|
||||
#### copy\_ticks\_from
|
||||
```python
|
||||
async def copy_ticks_from(symbol: str,
|
||||
date_from: datetime | int,
|
||||
count: int,
|
||||
flags: CopyTicks) -> tuple[Tick] | None
|
||||
```
|
||||
Returns the ticks for the specified symbol starting from the specified date.
|
||||
#### Parameters:
|
||||
|Name|Type|Description|
|
||||
|---|---|---|
|
||||
|**symbol**|**str**|The symbol name.|
|
||||
|**date_from**|**datetime** or **int**|The date to start from.|
|
||||
|**count**|**int**|The number of ticks to return.|
|
||||
|**flags**|**CopyTicks**|The CopyTicks flags.|
|
||||
#### Returns:
|
||||
|Type|Description|
|
||||
|---|---|
|
||||
|**tuple[Tick]**|A tuple of Tick objects.|
|
||||
|
||||
<a id="MetaTrader.copy_ticks_range"></a>
|
||||
#### copy\_ticks\_range
|
||||
```python
|
||||
async def copy_ticks_range(symbol: str,
|
||||
date_from: datetime | int,
|
||||
date_to: datetime | int,
|
||||
flags: CopyTicks) -> tuple[Tick] | None
|
||||
```
|
||||
Returns the ticks for the specified symbol between the specified dates.
|
||||
#### Parameters:
|
||||
|Name|Type|Description|
|
||||
|---|---|---|
|
||||
|**symbol**|**str**|The symbol name.|
|
||||
|**date_from**|**datetime** or **int**|The start date.|
|
||||
|**date_to**|**datetime** or **int**|The end date.|
|
||||
|**flags**|**CopyTicks**|The CopyTicks flags.|
|
||||
#### Returns:
|
||||
|Type|Description|
|
||||
|---|---|
|
||||
|**tuple[Tick]**|A tuple of Tick objects.|
|
||||
|
||||
<a id="MetaTrader.orders_total"></a>
|
||||
#### orders\_total
|
||||
```python
|
||||
async def orders_total() -> int
|
||||
```
|
||||
Returns the total number of active orders.
|
||||
#### Returns:
|
||||
|Type|Description|
|
||||
|---|---|
|
||||
|**int**|The total number of active orders.|
|
||||
|
||||
<a id="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
|
||||
#### Parameters:
|
||||
|Name|Type|Description|
|
||||
|---|---|---|
|
||||
|**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.|
|
||||
|**symbol**|**str**|Symbol name. Optional named parameter. If a symbol is specified, the ticket parameter is ignored.|
|
||||
#### Returns:
|
||||
| Type | Description |
|
||||
|-----------------------|------------------------------------------------------|
|
||||
| **tuple[TradeOrder]** | A tuple of active trade orders as TradeOrder objects |
|
||||
#### Returns:
|
||||
|Type|Description|
|
||||
|---|---|
|
||||
|**tuple[TradeOrder]**|A tuple of active trade orders as TradeOrder objects|
|
||||
|
||||
**Arguments**:
|
||||
<a id="MetaTrader.order_calc_margin"></a>
|
||||
#### order\_calc\_margin
|
||||
```python
|
||||
async def order_calc_margin(action: OrderType,
|
||||
symbol: str,
|
||||
volume: float,
|
||||
price: float) -> float | None
|
||||
```
|
||||
Calculates the margin required to open a trade.
|
||||
#### Parameters:
|
||||
|Name|Type|Description|
|
||||
|---|---|---|
|
||||
|**action**|**OrderType**|The order type.|
|
||||
|**symbol**|**str**|The symbol name.|
|
||||
|**volume**|**float**|The order volume.|
|
||||
|**price**|**float**|The order price.|
|
||||
#### Returns:
|
||||
|Type|Description|
|
||||
|---|---|
|
||||
|**float**|The margin required to open a trade.|
|
||||
|
||||
- `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.
|
||||
|
||||
<a id="MetaTrader.order_calc_profit"></a>
|
||||
#### order\_calc\_profit
|
||||
```python
|
||||
async def order_calc_profit(action: OrderType,
|
||||
symbol: str,
|
||||
volume: float,
|
||||
price_open: float,
|
||||
price_close: float) -> float | None
|
||||
```
|
||||
Calculates the profit for a closed trade.
|
||||
#### Parameters:
|
||||
|Name|Type|Description|
|
||||
|---|---|---|
|
||||
|**action**|**OrderType**|The order type.|
|
||||
|**symbol**|**str**|The symbol name.|
|
||||
|**volume**|**float**|The order volume.|
|
||||
|**price_open**|**float**|The order open price.|
|
||||
|**price_close**|**float**|The order close price.|
|
||||
#### Returns:
|
||||
|Type|Description|
|
||||
|---|---|
|
||||
|**float**|The profit for a closed trade.|
|
||||
|
||||
**Returns**:
|
||||
<a id="MetaTrader.order_check"></a>
|
||||
#### order\_check
|
||||
```python
|
||||
async def order_check(request: dict) -> OrderCheckResult
|
||||
```
|
||||
Checks the specified order for validity.
|
||||
#### Parameters:
|
||||
|Name|Type|Description|
|
||||
|---|---|---|
|
||||
|**request**|**dict**|The order request.|
|
||||
#### Returns:
|
||||
|Type|Description|
|
||||
|---|---|
|
||||
|**OrderCheckResult**|An instance of the OrderCheckResult class.|
|
||||
|
||||
- `list[TradeOrder]` - A list of active trade orders as TradeOrder objects
|
||||
<a id="MetaTrader.order_send"></a>
|
||||
#### order\_send
|
||||
```python
|
||||
async def order_send(request: dict) -> OrderSendResult
|
||||
```
|
||||
Sends the specified order request to the MetaTrader terminal.
|
||||
#### Parameters:
|
||||
|Name|Type|Description|
|
||||
|---|---|---|
|
||||
|**request**|**dict**|The order request.|
|
||||
#### Returns:
|
||||
|Type|Description|
|
||||
|---|---|
|
||||
|**OrderSendResult**|An instance of the OrderSendResult class.|
|
||||
|
||||
<a id="MetaTrader.positions_total"></a>
|
||||
#### positions\_total
|
||||
```python
|
||||
async def positions_total() -> int
|
||||
```
|
||||
Returns the total number of open positions.
|
||||
#### Returns:
|
||||
|Type|Description|
|
||||
|---|---|
|
||||
|**int**|The total number of open positions.|
|
||||
|
||||
|
||||
<a id="MetaTrader.positions_get"></a>
|
||||
#### positions\_get
|
||||
```python
|
||||
async def positions_get(group: str = "",
|
||||
ticket: int = 0,
|
||||
symbol: str = "") -> tuple[TradePosition] | None
|
||||
```
|
||||
Returns the open positions with the ability to filter by symbol or ticket. There are three call options.
|
||||
Call without parameters. Return open positions on all symbols
|
||||
#### Parameters:
|
||||
|Name|Type|Description|
|
||||
|---|---|---|
|
||||
|**group**|**str**|The filter for arranging a group of necessary symbols. Optional named parameter. If the group is specified, the function returns only open positions meeting a specified criteria for a symbol name.|
|
||||
|**ticket**|**int**|Position ticket (POSITION_TICKET). Optional named parameter.|
|
||||
|**symbol**|**str**|Symbol name. Optional named parameter. If a symbol is specified, the ticket parameter is ignored.|
|
||||
#### Returns:
|
||||
| Type | Description |
|
||||
|----------------------------|---------------------------------------------------------|
|
||||
| **tuple[TradePosition]** | A tuple of open trade positions as TradePosition objects |
|
||||
|
||||
<a id="MetaTrader.history_orders_total"></a>
|
||||
#### history\_orders\_total
|
||||
```python
|
||||
async def history_orders_total(date_from: datetime | int,
|
||||
date_to: datetime | int) -> int
|
||||
```
|
||||
Returns the total number of closed orders for the specified period.
|
||||
#### Parameters:
|
||||
|Name|Type|Description|
|
||||
|---|---|---|
|
||||
|**date_from**|**datetime** or **int**|The start date.|
|
||||
|**date_to**|**datetime** or **int**|The end date.|
|
||||
#### Returns:
|
||||
|Type|Description|
|
||||
|---|---|
|
||||
|**int**|The total number of closed orders for the specified period.|
|
||||
|
||||
|
||||
<a id="MetaTrader.history_orders_get"></a>
|
||||
#### history\_orders\_get
|
||||
```python
|
||||
async def history_orders_get(date_from: datetime | int = None,
|
||||
date_to: datetime | int = None,
|
||||
group: str = "",
|
||||
ticket: int = 0,
|
||||
position: int = 0) -> tuple[TradeOrder] | None
|
||||
```
|
||||
Returns the closed orders for the specified period with the ability to filter by symbol or ticket. There are three call options.
|
||||
Call without parameters. Return closed orders on all symbols
|
||||
#### Parameters:
|
||||
|Name|Type|Description|
|
||||
|---|---|---|
|
||||
|**date_from**|**datetime** or **int**|The start date. Optional named parameter.|
|
||||
|**date_to**|**datetime** or **int**|The end date. Optional named parameter.|
|
||||
|**group**|**str**|The filter for arranging a group of necessary symbols. Optional named parameter. If the group is specified, the function returns only closed orders meeting a specified criteria for a symbol name.|
|
||||
|**ticket**|**int**|Order ticket (ORDER_TICKET). Optional named parameter.|
|
||||
|**position**|**int**|Position ticket (POSITION_TICKET). Optional named parameter.|
|
||||
#### Returns:
|
||||
| Type | Description |
|
||||
|----------------------------|---------------------------------------------------------|
|
||||
| **tuple[TradeOrder]** | A tuple of closed trade orders as TradeOrder objects |
|
||||
|
||||
<a id="MetaTrader.history_deals_total"></a>
|
||||
#### history\_deals\_total
|
||||
```python
|
||||
async def history_deals_total(date_from: datetime | int,
|
||||
date_to: datetime | int) -> int
|
||||
```
|
||||
Returns the total number of closed deals for the specified period.
|
||||
#### Parameters:
|
||||
|Name|Type|Description|
|
||||
|---|---|---|
|
||||
|**date_from**|**datetime** or **int**|The start date.|
|
||||
|**date_to**|**datetime** or **int**|The end date.|
|
||||
#### Returns:
|
||||
|Type|Description|
|
||||
|---|---|
|
||||
|**int**|The total number of closed deals for the specified period.|
|
||||
|
||||
|
||||
<a id="MetaTrader.history_deals_get"></a>
|
||||
#### history\_deals\_get
|
||||
```python
|
||||
async def history_deals_get(date_from: datetime | int = None,
|
||||
date_to: datetime | int = None,
|
||||
group: str = "",
|
||||
ticket: int = 0,
|
||||
position: int = 0) -> tuple[TradeDeal] | None
|
||||
```
|
||||
Returns the closed deals for the specified period with the ability to filter by symbol or ticket. There are three call options.
|
||||
Call without parameters. Return closed deals on all symbols
|
||||
#### Parameters:
|
||||
|Name|Type|Description|
|
||||
|---|---|---|
|
||||
|**date_from**|**datetime** or **int**|The start date. Optional named parameter.|
|
||||
|**date_to**|**datetime** or **int**|The end date. Optional named parameter.|
|
||||
|**group**|**str**|The filter for arranging a group of necessary symbols. Optional named parameter. If the group is specified, the function returns only closed deals meeting a specified criteria for a symbol name.|
|
||||
|**ticket**|**int**|Order ticket (ORDER_TICKET). Optional named parameter.|
|
||||
|**position**|**int**|Position ticket (POSITION_TICKET). Optional named parameter.|
|
||||
#### Returns:
|
||||
| Type | Description |
|
||||
|----------------------------|---------------------------------------------------------|
|
||||
| **tuple[TradeDeal]** | A tuple of closed trade deals as TradeDeal objects |
|
||||
+51
-20
@@ -6,36 +6,30 @@ class Trader()
|
||||
```
|
||||
Base class for creating a Trader object. Handles the creation of an order and the placing of trades
|
||||
### Attributes:
|
||||
|Name|Type|Description|Default|
|
||||
|---|---|---|---|
|
||||
|**name**|**str**|A name for the strategy.|None|
|
||||
|**account**|**Account**|Account instance.|None|
|
||||
|**mt5**|**MetaTrader**|MetaTrader instance.|None|
|
||||
|**config**|**Config**|Config instance.|None|
|
||||
|**symbol**|**Symbol**|The Financial Instrument as a Symbol Object|None|
|
||||
|**parameters**|**Dict**|A dictionary of parameters for the strategy.|None|
|
||||
| Name | Type | Description |Default|
|
||||
|-------------|-------------|------------------------------------------------------|---|
|
||||
| **ram** | **RAM** | Risk Assessment Management System. |None|
|
||||
| **config** | **Config** | Config instance. |None|
|
||||
| **order** | **Order** | Order instance. |None|
|
||||
| **symbol** | **Symbol** | The Financial Instrument |None|
|
||||
| **params** | **Dict** | A dictionary of parameters associated with the trade. |None|
|
||||
|
||||
### \_\_init\_\_
|
||||
```python
|
||||
def __init__(*, symbol: Symbol, ram: RAM = None)
|
||||
```
|
||||
### Parameters:
|
||||
|Name| Type | Description | Default |
|
||||
|---|--------------------|-----------------------------|-------------------|
|
||||
|**symbol**| **Symbol** | The Financial instrument | None |
|
||||
|**ram**| **RAM** | Risk Assessment and Management instance | None |
|
||||
Initializes the order object and RAM instance
|
||||
#### Arguments:
|
||||
|Name| Type | Description | Default |
|
||||
|---|--------------------|-----------------------------|-------------------|
|
||||
|**symbol**| **Symbol** | The Financial instrument | None |
|
||||
|**ram**| **RAM** | Risk Assessment and Management instance | None |
|
||||
|
||||
### create\_order
|
||||
```python
|
||||
async def create_order(*, order_type: OrderType, **kwargs)
|
||||
```
|
||||
Complete the order object with the required values. Creates a simple order.
|
||||
Uses the ram instance to set the volume.
|
||||
#### Arguments:
|
||||
#### Parameters:
|
||||
|Name| Type | Description | Default |
|
||||
|---|--------------------|-----------------------------|-------------------|
|
||||
|**order_type**| **OrderType** | Type of order | None |
|
||||
@@ -45,19 +39,56 @@ Uses the ram instance to set the volume.
|
||||
```python
|
||||
async def set_order_limits(pips: float)
|
||||
```
|
||||
Sets the stop loss and take profit for the order.
|
||||
This method uses pips as defined for forex instruments.
|
||||
#### Arguments:
|
||||
Sets the stop loss and take profit for the order. This method uses pips as defined for forex instruments.
|
||||
#### Parameters:
|
||||
|Name| Type | Description | Default |
|
||||
|---|--------------------|-----------------------------|-------------------|
|
||||
|**pips**| **float** | Target pips | None |
|
||||
|
||||
### set\_trade\_stop\_levels
|
||||
```python
|
||||
async def set_trade_stop_levels(*, points)
|
||||
```
|
||||
sets the stop loss and take profit for the order. This method uses points as defined by MetaTrader5 for all symbols.
|
||||
|
||||
#### Parameters:
|
||||
|Name| Type | Description | Default |
|
||||
|---|--------------------|-----------------------------|-------------------|
|
||||
|**points**| **float** | Target points | None |
|
||||
|
||||
### send\_order
|
||||
```python
|
||||
async def send_order()
|
||||
```
|
||||
Sends the order to the broker for execution. Record the trade.
|
||||
|
||||
### check_order
|
||||
```python
|
||||
async def check_order()
|
||||
```
|
||||
Checks the status of the order before placing the trade.
|
||||
|
||||
#### Returns:
|
||||
|Type|Description|
|
||||
|---|---|
|
||||
|**bool**|True if order is valid else False|
|
||||
|
||||
### record_trade
|
||||
```python
|
||||
async def record_trade(result: OrderSendResult)
|
||||
```
|
||||
Records the trade and the order details if **Config.record_trades** is true.
|
||||
#### Parameters:
|
||||
|Name| Type | Description | Default |
|
||||
|---|--------------------|--------------------------------|-------------------|
|
||||
|**result**| **OrderSendResult** | The result of the placed order | None |
|
||||
|
||||
### place\_trade
|
||||
```python
|
||||
async def place_trade(order_type: OrderType, params: dict = None, **kwargs)
|
||||
```
|
||||
Places a trade based on the order_type.
|
||||
#### Arguments:
|
||||
#### Parameters:
|
||||
|Name| Type | Description | Default |
|
||||
|---|--------------------|-----------------------------|-------------------|
|
||||
|**order_type**| **OrderType** | Type of order | None |
|
||||
|
||||
Reference in New Issue
Block a user