Files
aiomql/docs/symbol.md
T
Ichinga Samuel 027f9fd8de add docs
2023-10-11 09:49:06 +01:00

9.4 KiB
Raw Blame History

aiomql.symbol

Symbol class for handling a financial instrument.

Symbol Objects

class Symbol(SymbolInfo)

Main class for handling a financial instrument. A subclass of SymbolInfo and Base it has attributes and methods for working with a financial instrument.

Attributes:

  • tick Tick - Price tick object for instrument
  • account - An instance of the current trading account

Notes:

Full properties are on the SymbolInfo Object. Make sure Symbol is always initialized with a name argument

pip

@property
def pip()

Returns the pip value of the symbol. This is ten times the point value for forex symbols.

Returns:

  • float - The pip value of the symbol.

info_tick

async def info_tick(*, name: str = "") -> Tick

Get the current price tick of a financial instrument.

Arguments:

  • name - if name is supplied get price tick of that financial instrument

Returns:

  • Tick - Return a Tick Object

Raises:

  • ValueError - If request was unsuccessful and None was returned

symbol_select

async def symbol_select(*, enable: bool = True) -> bool

Select a symbol in the MarketWatch window or remove a symbol from the window. Update the select property

Arguments:

  • enable bool - Switch. Optional unnamed parameter. If 'false', a symbol should be removed from the MarketWatch window.

Returns:

  • bool - True if successful, otherwise False.

info

async def info() -> SymbolInfo

Get data on the specified financial instrument and update the symbol object properties

Returns:

  • (SymbolInfo) - SymbolInfo if successful

Raises:

  • ValueError - If request was unsuccessful and None was returned

init

async def init() -> bool

Initialized the symbol by pulling properties from the terminal

Returns:

  • bool - Returns True if symbol info was successful initialized

book_add

async def book_add() -> bool

Subscribes the MetaTrader 5 terminal to the Market Depth change events for a specified symbol. If the symbol is not in the list of instruments for the market, This method will return False

Returns:

  • bool - True if successful, otherwise False.

book_get

async def book_get() -> tuple[BookInfo]

Returns a tuple of BookInfo featuring Market Depth entries for the specified symbol.

Returns:

  • tuple[BookInfo] - Returns the Market Depth contents as a tuples of BookInfo Objects

Raises:

  • ValueError - If request was unsuccessful and None was returned

book_release

async def book_release() -> bool

Cancels subscription of the MetaTrader 5 terminal to the Market Depth change events for a specified symbol.

Returns:

  • bool - True if successful, otherwise False.

compute_volume

async def compute_volume(*,
                         amount: float,
                         pips: float,
                         use_minimum: bool = True) -> float

Computes the volume of a trade based on the amount and the number of pips to target. This is a dummy method that returns the minimum volume of the symbol. It is meant to be overridden by a subclass Checkout Forex Symbol implementation in srciomql\lib\ForexSymbol.py

Arguments:

  • amount float - Amount to risk in the trade
  • pips float - Number of pips to target

Arguments:

  • use_minimum bool - If True, the minimum volume is returned if the computed volume is less than the minimum volume.

Returns:

  • float - Returns the volume of the trade

currency_conversion

async def currency_conversion(*, amount: float, base: str,
                              quote: str) -> float

Convert from one currency to the other.

Arguments:

  • amount - amount to convert given in terms of the quote currency
  • base - The base currency of the pair
  • quote - The quote currency of the pair

Returns:

  • float - Amount in terms of the base currency or None if it failed to convert

Raises:

  • ValueError - If conversion is impossible

copy_rates_from

async def copy_rates_from(*,
                          timeframe: TimeFrame,
                          date_from: datetime | int,
                          count: int = 500) -> Candles

Get bars from the MetaTrader 5 terminal starting from the specified date.

Arguments:

  • timeframe TimeFrame - Timeframe the bars are requested for. Set by a value from the TimeFrame enumeration. Required unnamed parameter.

  • date_from datetime | int - Date of opening of the first bar from the requested sample. Set by the 'datetime' object or as a number of seconds elapsed since 1970.01.01. Required unnamed parameter.

  • count int - Number of bars to receive. Required unnamed parameter.

Returns:

  • Candles - Returns a Candles object as a collection of rates ordered chronologically

Raises:

  • ValueError - If request was unsuccessful and None was returned

copy_rates_from_pos

async def copy_rates_from_pos(*,
                              timeframe: TimeFrame,
                              count: int = 500,
                              start_position: int = 0) -> Candles

Get bars from the MetaTrader 5 terminal starting from the specified index.

Arguments:

  • timeframe TimeFrame - TimeFrame value from TimeFrame Enum. Required keyword only parameter

  • count int - Number of bars to return. Keyword argument defaults to 500

  • start_position int - Initial index of the bar the data are requested from. The numbering of bars goes from present to past. Thus, the zero bar means the current one. Keyword argument defaults to 0.

Returns:

  • Candles - Returns a Candles object as a collection of rates ordered chronologically.

Raises:

  • ValueError - If request was unsuccessful and None was returned

copy_rates_range

async def copy_rates_range(*, timeframe: TimeFrame, date_from: datetime | int,
                           date_to: datetime | int) -> Candles

Get bars in the specified date range from the MetaTrader 5 terminal.

Arguments:

  • timeframe TimeFrame - Timeframe for the bars using the TimeFrame enumeration. Required unnamed parameter.

  • date_from datetime | int - Date the bars are requested from. Set by the 'datetime' object or as a number of seconds elapsed since 1970.01.01. Bars with the open time >= date_from are returned. Required unnamed parameter.

  • date_to datetime | int - Date, up to which the bars are requested. Set by the 'datetime' object or as a number of seconds elapsed since 1970.01.01. Bars with the open time <= date_to are returned. Required unnamed parameter.

Returns:

  • Candles - Returns a Candles object as a collection of rates ordered chronologically.

Raises:

  • ValueError - If request was unsuccessful and None was returned

copy_ticks_from

async def copy_ticks_from(*,
                          date_from: datetime | int,
                          count: int = 100,
                          flags: CopyTicks = CopyTicks.ALL) -> Ticks

Get ticks from the MetaTrader 5 terminal starting from the specified date.

Args: date_from (datetime | int): Date the ticks are requested from. Set by the 'datetime' object or as a number of seconds elapsed since 1970.01.01.

count (int): Number of requested ticks. Defaults to 100

flags (CopyTicks): A flag to define the type of the requested ticks from CopyTicks enum. INFO is the default

Returns:

  • Candles - Returns a Candles object as a collection of ticks ordered chronologically.

Raises:

  • ValueError - If request was unsuccessful and None was returned

copy_ticks_range

async def copy_ticks_range(*,
                           date_from: datetime | int,
                           date_to: datetime | int,
                           flags: CopyTicks = CopyTicks.ALL) -> Ticks

Get ticks for the specified date range from the MetaTrader 5 terminal.

Arguments:

  • date_from - Date the bars are requested from. Set by the 'datetime' object or as a number of seconds elapsed since 1970.01.01. Bars with the open time >= date_from are returned. Required unnamed parameter.

  • date_to - Date, up to which the bars are requested. Set by the 'datetime' object or as a number of seconds elapsed since 1970.01.01. Bars with the open time <= date_to are returned. Required unnamed parameter.

    flags (CopyTicks):

Returns:

  • Candles - Returns a Candles object as a collection of ticks ordered chronologically.

Raises:

  • ValueError - If request was unsuccessful and None was returned.