From e763cf9ac341bb4cd549c8070f7774932b42b545 Mon Sep 17 00:00:00 2001 From: Emonts <64263524+Branly76@users.noreply.github.com> Date: Thu, 15 Feb 2024 16:34:56 +0100 Subject: [PATCH 1/3] Add files via upload --- Pytrader_API_V3_02a.py | 90 ++++++++++++++++++++++++++++++++++++++---- 1 file changed, 83 insertions(+), 7 deletions(-) diff --git a/Pytrader_API_V3_02a.py b/Pytrader_API_V3_02a.py index 2faf3e1..c6e68a1 100644 --- a/Pytrader_API_V3_02a.py +++ b/Pytrader_API_V3_02a.py @@ -1,5 +1,5 @@ # Pytrader API for MT4 and MT5 -# Version V3_01 +# Version V3_02 import socket import numpy as np @@ -36,6 +36,7 @@ ERROR_DICT['02001'] = 'Instrument not in demo' ERROR_DICT['02004'] = 'Unknown instrument for broker' ERROR_DICT['02003'] = 'Unknown instrument for broker' +ERROR_DICT['02004'] = 'Time out error' ERROR_DICT['02101'] = 'Instrument not in demo' ERROR_DICT['02102'] = 'No ticks' @@ -84,6 +85,12 @@ ERROR_DICT['07301'] = 'Trading not allowed' ERROR_DICT['07302'] = 'Error in delete' +ERROR_DICT['07401'] = 'Trading not allowed, check MT terminal settings' +ERROR_DICT['07402'] = 'Error check number' +ERROR_DICT['07403'] = 'Position does not exist' +ERROR_DICT['07404'] = 'Opposite position does not exist' +ERROR_DICT['07405'] = 'Both position of same type' + ERROR_DICT['07501'] = 'Trading not allowed' ERROR_DICT['07502'] = 'Position not open' ERROR_DICT['07503'] = 'Error in modify' @@ -477,6 +484,8 @@ def Check_trading_allowed(self, """ Check for trading allowed for specified symbol. + Args: + Instrument: Instrument to check Returns: bool: True or False. True=allowed, False=not allowed @@ -605,9 +614,9 @@ def Get_instrument_info(self, lot_step, point, tick_size, - tick_value - swap_long - swap_short + tick_value, + swap_long, + swap_short, stop_level for sl and tp distance """ @@ -727,6 +736,41 @@ def Get_instruments(self) ->list: if (instrument != None): return_list.append(instrument) return return_list + + def Get_broker_instrument_names(self) ->list: + """ + Retrieves broker instrument names in Market Watch, so not the universal names. + + Args: + None + Returns: + List: All market symbols as broker instrument names in Market Watch + """ + self.command_return_error = '' + + self.command = 'F007^2^' + ok, dataString = self.send_command(self.command) + if not ok: + self.command_OK = False + return None + + if self.debug: + print(dataString) + + # analyze the answer + return_list = [] + x = dataString.split('^') + if x[0] != 'F007': + self.command_return_error = ERROR_DICT[x[3]] + self.command_OK = False + return return_list + + del x[0:2] + x.pop(-1) + for item in range(0, len(x)): + _instrument = str(x[item]) + return_list.append(_instrument) + return return_list def Get_broker_server_time(self) -> datetime: """ @@ -1690,7 +1734,7 @@ def Open_order(self, self.command_return_error = ERROR_DICT[str(x[3])] self.command_OK = False self.order_return_message = ERROR_DICT[str(x[3])] - self.order_error = int(x[4]) + self.order_error = int(x[3]) return int(-1) self.command_OK = True @@ -1764,6 +1808,39 @@ def Close_position_partial_by_ticket(self, return True + def CloseBy_position_by_ticket(self, + ticket: int = 0, + ticket_opposite: int = 0) -> bool: + """ + Close a position. + + Args: + ticket: ticket of position to close + ticket_opposite: opposite ticket for closing + + Returns: + bool: True or False + """ + self.command_return_error = '' + self.command = 'F074^3^' + str(ticket) + '^' + str(ticket_opposite) + '^' + ok, dataString = self.send_command(self.command) + if not ok: + self.command_OK = False + return False + + if self.debug: + print(dataString) + + x = dataString.split('^') + if str(x[0]) != 'F074': + self.command_return_error = ERROR_DICT[str(x[3])] + self.command_OK = False + self.order_return_message = ERROR_DICT[str(x[3])] + self.order_error = int(x[4]) + return False + + return True + def Close_positions_async(self, instrument: str = '***', magic_number: int = -1) -> bool: @@ -2078,7 +2155,7 @@ def Get_global_variable(self, global_name: str = 'GlobalVariableName') -> float: self.command_OK = True return float(x[3]) - def Get_logfile(self, date: datetime = datetime.now()) -> pd.DataFrame(): + def Get_logfile(self, date: datetime = datetime.now()) -> pd.DataFrame: """ Get logfile. @@ -2332,4 +2409,3 @@ def create_empty_DataFrame(self, ('comment', str) ] - From 9d23bba245ede72a4f89971921f4512665a9834d Mon Sep 17 00:00:00 2001 From: Emonts <64263524+Branly76@users.noreply.github.com> Date: Fri, 16 Aug 2024 13:24:45 +0200 Subject: [PATCH 2/3] Add files via upload --- Pytrader_API_V3_02b.py | 2610 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 2610 insertions(+) create mode 100644 Pytrader_API_V3_02b.py diff --git a/Pytrader_API_V3_02b.py b/Pytrader_API_V3_02b.py new file mode 100644 index 0000000..6c4a9f1 --- /dev/null +++ b/Pytrader_API_V3_02b.py @@ -0,0 +1,2610 @@ +# Pytrader API for MT4 and MT5 +# Version V3_02 + +import socket +import numpy as np +import pandas as pd +from datetime import datetime +import pytz +import io + +TZ_SERVER = 'Europe/Tallinn' # EET +TZ_LOCAL = 'Europe/Budapest' +TZ_UTC = 'UTC' + +ERROR_DICT = {} +ERROR_DICT['00001'] = 'Undefined check connection error' + +ERROR_DICT['00101'] = 'IP address error' +ERROR_DICT['00102'] = 'Port number error' +ERROR_DICT['00103'] = 'Connection error with license EA' +ERROR_DICT['00104'] = 'Undefined answer from license EA' + +ERROR_DICT['00301'] = 'Unknown instrument for broker' +ERROR_DICT['00302'] = 'Instrument not in demo' +ERROR_DICT['00304'] = 'Unknown instrument for broker' + +ERROR_DICT['01101'] = 'Undefined check terminal connection error' + +ERROR_DICT['01201'] = 'Undefined check MT type error' + +ERROR_DICT['00401'] = 'Instrument not in demo' +ERROR_DICT['00402'] = 'Instrument not exists for broker' + +ERROR_DICT['00501'] = 'No instrument defined/configured' + +ERROR_DICT['02001'] = 'Instrument not in demo' +ERROR_DICT['02002'] = 'Unknown instrument for broker' +ERROR_DICT['02003'] = 'Unknown instrument for broker' +ERROR_DICT['02004'] = 'Time out error' + +ERROR_DICT['02101'] = 'Instrument not in demo' +ERROR_DICT['02102'] = 'No ticks' +ERROR_DICT['02103'] = 'Not imlemented in MT4' + +ERROR_DICT['04101'] = 'Instrument not in demo' +ERROR_DICT['04102'] = 'Wrong/unknown time frame' +ERROR_DICT['04103'] = 'No records' +ERROR_DICT['04104'] = 'Undefined error' +ERROR_DICT['04105'] = 'Unknown instrument for broker' + + +ERROR_DICT['04201'] = 'Instrument not in demo' +ERROR_DICT['04202'] = 'Wrong/unknown time frame' +ERROR_DICT['04203'] = 'No records' +ERROR_DICT['04204'] = 'Unknown instrument for broker' + +ERROR_DICT['04501'] = 'Instrument not in demo' +ERROR_DICT['04502'] = 'Wrong/unknown time frame' +ERROR_DICT['04503'] = 'No records' +ERROR_DICT['04504'] = 'Missing market instrument' + +ERROR_DICT['06201'] = 'Wrong time window' +ERROR_DICT['06401'] = 'Wrong time window' + +ERROR_DICT['07001'] = 'Trading not allowed, check MT terminal settings' +ERROR_DICT['07002'] = 'Instrument not in demo' +ERROR_DICT['07003'] = 'Instrument not in market watch' +ERROR_DICT['07004'] = 'Instrument not known for broker' +ERROR_DICT['07005'] = 'Unknown order type' +ERROR_DICT['07006'] = 'Wrong SL value' +ERROR_DICT['07007'] = 'Wrong TP value' +ERROR_DICT['07008'] = 'Wrong volume value' +ERROR_DICT['07009'] = 'Error opening / placing order' + +ERROR_DICT['07101'] = 'Trading not allowed' +ERROR_DICT['07102'] = 'Position not found/error' + +ERROR_DICT['07201'] = 'Trading not allowed' +ERROR_DICT['07202'] = 'Position not found/error' +ERROR_DICT['07203'] = 'Wrong volume' +ERROR_DICT['07204'] = 'Error in partial close' + +ERROR_DICT['07301'] = 'Trading not allowed' +ERROR_DICT['07302'] = 'Error in delete' + +ERROR_DICT['07401'] = 'Trading not allowed, check MT terminal settings' +ERROR_DICT['07402'] = 'Error check number' +ERROR_DICT['07403'] = 'Position does not exist' +ERROR_DICT['07404'] = 'Opposite position does not exist' +ERROR_DICT['07405'] = 'Both position of same type' + +ERROR_DICT['07501'] = 'Trading not allowed' +ERROR_DICT['07502'] = 'Position not open' +ERROR_DICT['07503'] = 'Error in modify' + +ERROR_DICT['07601'] = 'Trading not allowed' +ERROR_DICT['07602'] = 'Position not open' +ERROR_DICT['07603'] = 'Error in modify' + +ERROR_DICT['07701'] = 'Trading not allowed' +ERROR_DICT['07702'] = 'Position not open' +ERROR_DICT['07703'] = 'Error in modify' + +ERROR_DICT['07801'] = 'Trading not allowed' +ERROR_DICT['07802'] = 'Position not open' +ERROR_DICT['07803'] = 'Error in modify' + +ERROR_DICT['07901'] = 'Trading not allowed' +ERROR_DICT['07902'] = 'Instrument not in demo' +ERROR_DICT['07903'] = 'Order does not exist' +ERROR_DICT['07904'] = 'Wrong order type' +ERROR_DICT['07905'] = 'Wrong price' +ERROR_DICT['07906'] = 'Wrong TP value' +ERROR_DICT['07907'] = 'Wrong SL value' +ERROR_DICT['07908'] = 'Check error code' +ERROR_DICT['07909'] = 'Something wrong' + +ERROR_DICT['08101'] = 'Unknown global variable' + +ERROR_DICT['08201'] = 'Log file not existing' +ERROR_DICT['08202'] = 'Log file empty' +ERROR_DICT['08203'] = 'Error in reading log file' +ERROR_DICT['08204'] = 'Function not implemented' + +ERROR_DICT['09101'] = 'Trading not allowed' +ERROR_DICT['09102'] = 'Unknown instrument for broker' +ERROR_DICT['09103'] = 'Function not implemented' + +ERROR_DICT['99900'] = 'Wrong authorizaton code' + +ERROR_DICT['99901'] = 'Undefined error' + +ERROR_DICT['99999'] = 'Dummy' + + + +class Pytrader_API: + + def __init__(self): + self.socket_error: int = 0 + self.socket_error_message: str = '' + self.order_return_message: str = '' + self.order_error: int = 0 + self.connected: bool = False + self.timeout: bool = False + self.command_OK: bool = False + self.command_return_error: str = '' + self.debug: bool = False + self.version: str = 'V3.02b' + self.max_bars: int = 5000 + self.max_ticks: int = 5000 + self.timeout_value: int = 60 + self.instrument_conversion_list: dict = {} + self.instrument_name_broker: str = '' + self.instrument_name_universal: str = '' + self.date_from: datetime = '2000/01/01, 00:00:00' + self.date_to: datetime = datetime.now() + self.instrument: str = '' + self.license = 'Demo' + self.invert_array = False + self.authorization_code: str = 'None' + + def Set_timeout(self, + timeout_in_seconds: int = 60 + ): + """ + Set time out value for socket communication with MT4 or MT5 EA/Bot. + + Args: + timeout_in_seconds: the time out value + Returns: + None + """ + self.timeout_value = timeout_in_seconds + self.sock.settimeout(self.timeout_value) + self.sock.setblocking(1) + return + + def Disconnect(self): + """ + Closes the socket connection to a MT4 or MT5 EA bot. + + Args: + None + Returns: + bool: True or False + """ + + self.sock.close() + self.connected = False + return True + + def Connect(self, + server: str = '', + port: int = 2345, + instrument_lookup: dict = [], + authorization_code: str = 'None') -> bool: + """ + Connects to a MT4 or MT5 EA/Bot. + + Args: + server: Server IP address, like -> '127.0.0.1', '192.168.5.1' + port: port number + instrument_lookup: dictionairy with general instrument names and broker intrument names + authorization_code: authorization code, this can be used as extra security. The code has also to be set in the EA's + Returns: + bool: True or False + """ + self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + self.sock.setblocking(1) + self.port = port + self.server = server + self.instrument_conversion_list = instrument_lookup + self.authorization_code = authorization_code + + if (len(self.instrument_conversion_list) == 0): + print('Broker Instrument list not available or empty') + self.socket_error_message = 'Broker Instrument list not available' + return False + + try: + self.sock.connect((self.server, self.port)) + try: + data_received = self.sock.recv(1000000) + self.connected = True + self.socket_error = 0 + self.socket_error_message = '' + return True + except socket.error as msg: + self.socket_error = 100 + self.socket_error_message = 'Could not connect to server.' + self.connected = False + return False + except socket.error as msg: + print( + "Couldnt connect with the socket-server: %self.sock\n terminating program" % + msg) + self.connected = False + self.socket_error = 101 + self.socket_error_message = 'Could not connect to server.' + return False + + def Check_connection(self) -> bool: + """ + Checks if connection with MT terminal/Ea bot is still active. + Args: + None + Returns: + bool: True or False + """ + + self.command = 'F000^1^' + self.command_return_error = '' + ok, dataString = self.send_command(self.command) + + try: + if (ok == False): + self.command_OK = False + return False + + x = dataString.split('^') + + if x[1] == 'OK': + self.timeout = False + self.command_OK = True + return True + else: + self.timeout = True + self.command_return_error = ERROR_DICT['99900'] + self.command_OK = True + return False + except: + self.command_return_error = ERROR_DICT['00001'] + self.command_OK = False + return False + + def Check_terminal_server_connection(self) -> bool: + """ + Checks if MT4/5 terminal connected to broker. + Args: + None + Returns: + bool: True or False + """ + + self.command = 'F011^1^' + self.command_return_error = '' + ok, dataString = self.send_command(self.command) + + try: + if (ok == False): + self.command_OK = False + return False + + x = dataString.split('^') + + if x[2] == 'OK': + self.timeout = False + self.command_OK = True + return True + else: + self.timeout = False + self.command_return_error = ERROR_DICT['99900'] + self.command_OK = True + return False + except: + self.command_return_error = ERROR_DICT['01101'] + self.command_OK = False + return False + + def Check_terminal_type(self) -> str: + """ + Checks for MT4 or MT5 terminal. + Args: + None + Returns: + string: if function for MT4 terminal answer would be 'MT4', for MT5 terminal 'MT5' + + """ + + self.command = 'F012^1^' + self.command_return_error = '' + ok, dataString = self.send_command(self.command) + + try: + if (ok == False): + self.command_OK = False + return False + + x = dataString.split('^') + + if x[3] == 'MT4': + self.timeout = False + self.command_OK = True + return 'MT4' + elif x[3] == 'MT5': + self.timeout = False + self.command_OK = True + return 'MT5' + else: + self.timeout = False + self.command_return_error = ERROR_DICT['99900'] + self.command_OK = True + return False + except: + self.command_return_error = ERROR_DICT['01201'] + self.command_OK = False + return False + + @property + def IsConnected(self) -> bool: + """Returns connection status. + Returns: + bool: True or False + """ + return self.connected + + def Get_static_account_info(self) -> dict: + """ + Retrieves static account information. + + Returns: Dictionary with: + Account name, + Account number, + Account currency, + Account type, + Account leverage, + Account trading allowed, + Account maximum number of pending orders, + Account margin call percentage, + Account close open trades margin percentage + Account company + """ + self.command_return_error = '' + + ok, dataString = self.send_command('F001^1^') + if (ok == False): + self.command_OK = False + return None + + if self.debug: + print(dataString) + + x = dataString.split('^') + if x[0] != 'F001': + self.command_return_error = ERROR_DICT['99900'] + self.command_OK = False + return None + + returnDict = {} + del x[0:2] + x.pop(-1) + + returnDict['name'] = str(x[0]) + returnDict['login'] = str(x[1]) + returnDict['currency'] = str(x[2]) + returnDict['type'] = str(x[3]) + returnDict['leverage'] = int(x[4]) + returnDict['trade_allowed'] = bool(x[5]) + returnDict['limit_orders'] = int(x[6]) + returnDict['margin_call'] = float(x[7]) + returnDict['margin_close'] = float(x[8]) + returnDict['company'] = str(x[9]) + + self.command_OK = True + return returnDict + + def Get_dynamic_account_info(self) -> dict: + """ + Retrieves dynamic account information. + + Returns: Dictionary with: + Account balance, + Account equity, + Account profit, + Account margin, + Account margin level, + Account margin free + """ + self.command_return_error = '' + + ok, dataString = self.send_command('F002^1^') + if (ok == False): + self.command_OK = False + return None + + if self.debug: + print(dataString) + + x = dataString.split('^') + if x[0] != 'F002': + self.command_return_error = ERROR_DICT['99900'] + self.command_OK = False + return None + + returnDict = {} + del x[0:2] + x.pop(-1) + + returnDict['balance'] = float(x[0]) + returnDict['equity'] = float(x[1]) + returnDict['profit'] = float(x[2]) + returnDict['margin'] = float(x[3]) + returnDict['margin_level'] = float(x[4]) + returnDict['margin_free'] = float(x[5]) + + self.command_OK = True + + return returnDict + + def Check_license(self) -> bool: + + """ + Check for license. + + Returns: + bool: True or False. True=licensed, False=Demo + """ + self.license = 'Demo' + self.command = 'F006^1^' + self.command_return_error = '' + ok, dataString = self.send_command(self.command) + + if not ok: + self.command_OK = False + return None + + if self.debug: + print(dataString) + + x = dataString.split('^') + if x[0] != 'F006': + self.command_return_error = ERROR_DICT['99901'] + self.command_OK = False + return None + + self.license = str(x[3]) + if (self.license == 'Demo'): + return False + + return True + + def Check_trading_allowed(self, + instrument = 'EURUSD') -> bool: + + """ + Check for trading allowed for specified symbol. + Args: + Instrument: Instrument to check + + Returns: + bool: True or False. True=allowed, False=not allowed + """ + self.instrument = self.get_broker_instrument_name(self.instrument_name_universal) + self.command = 'F008^2^' + self.instrument + '^' + self.command_return_error = '' + ok, dataString = self.send_command(self.command) + + if not ok: + self.command_OK = False + return None + + if self.debug: + print(dataString) + + x = dataString.split('^') + if x[0] != 'F008': + self.command_return_error = ERROR_DICT['99901'] + self.command_OK = False + return None + + if (str(x[2]) == 'NOK'): + return False + + return True + + def Set_bar_date_asc_desc(self, + asc_desc: bool = False) -> bool: + """ + Sets first row of array as first bar or as last bar + In MT4/5 element[0] of an array is normaliter actual bar/candle + Depending on the math you want to apply, this has to be the opposite + Args: + asc_dec: True = row[0] is oldest bar + False = row[0] is latest bar + Returns: + bool: True or False + """ + self.invert_array = asc_desc + return True + + def Get_PnL(self, + date_from: datetime = datetime(2021, 3, 1, tzinfo = pytz.timezone("Etc/UTC")), + date_to: datetime = datetime.now()) -> pd.DataFrame: + ''' + Retrieves profit loss info. + + Args: + date_from: start date + date_to: end date + Returns: Dictionary with: + realized_profit profit of all closed positions + unrealized_profit profit of all open positions + buy_profit profit of closed buy positions + sell_profit profit of closed sell positions + positions_in_profit number of profit positions + positions in loss number of loss positions + volume_in_profit total volume of positions in profit + volume_in_loss total volume of positions in loss + ''' + total_profit = 0.0 + buy_profit = 0.0 + sell_profit = 0.0 + trades_in_loss = 0 + trades_in_profit = 0 + volume_in_loss = 0.0 + volume_in_profit = 0.0 + commission_in_loss = 0.0 + commission_in_profit = 0.0 + swap_in_loss = 0.0 + swap_in_profit = 0.0 + unrealized_profit = 0.0 + + + # retrieve closed positions + closed_positions = self.Get_closed_positions_within_window(date_from, date_to) + if type(closed_positions) == pd.DataFrame: + for position in closed_positions.itertuples(): + profit = position.profit + position.commission + position.swap + total_profit = total_profit + profit + if (profit > 0.0): + trades_in_profit = trades_in_profit + 1 + volume_in_profit = volume_in_profit + position.volume + commission_in_profit = commission_in_profit + position.commission + swap_in_profit = swap_in_profit + position.swap + else: + trades_in_loss = trades_in_loss + 1 + volume_in_loss = volume_in_loss + position.volume + commission_in_loss = commission_in_loss + position.commission + swap_in_loss = swap_in_loss + position.swap + if (position.position_type == 'sell'): + sell_profit = sell_profit + profit + if (position.position_type == 'buy'): + buy_profit = buy_profit + profit + + # retrieve dynamic account info + dynamic_info = self.Get_dynamic_account_info() + unrealized_profit = dynamic_info['equity'] - dynamic_info['balance'] + result = {} + result['realized_profit'] = total_profit + result['unrealized_profit'] = unrealized_profit + result['buy_profit'] = buy_profit + result['sell_profit'] = sell_profit + result['positions_in_profit'] = trades_in_profit + result['positions_in_loss'] = trades_in_loss + result['volume_in_profit'] = volume_in_profit + result['volume_in_loss'] = volume_in_loss + + return result + else: + return pd.DataFrame() + + def Get_instrument_info(self, + instrument: str = 'EURUSD') -> dict: + """ + Retrieves instrument information. + + Args: + instrument: instrument name + Returns: Dictionary with: + instrument, + digits, + max_lotsize, + min_lotsize, + lot_step, + point, + tick_size, + tick_value, + swap_long, + swap_short, + stop_level for sl and tp distance, + contract size + """ + + self.command_return_error = '' + self.instrument_name_universal = instrument.upper() + self.instrument = self.get_broker_instrument_name(self.instrument_name_universal) + if (self.instrument == 'none' or self.instrument == None): + self.command_return_error = 'Instrument not in broker list' + self.command_OK = False + return None + + + self.command = 'F003^2^' + self.instrument + '^' + + ok, dataString = self.send_command(self.command) + + if not ok: + self.command_OK = False + return None + + if self.debug: + print(dataString) + + x = dataString.split('^') + if x[0] != 'F003': + self.command_return_error = ERROR_DICT[str(x[3])] + self.command_OK = False + return None + + returnDict = {} + del x[0:2] + x.pop(-1) + + returnDict['instrument'] = str(self.instrument_name_universal) + returnDict['digits'] = int(x[0]) + returnDict['max_lotsize'] = float(x[1]) + returnDict['min_lotsize'] = float(x[2]) + returnDict['lot_step'] = float(x[3]) + returnDict['point'] = float(x[4]) + returnDict['tick_size'] = float(x[5]) + returnDict['tick_value'] = float(x[6]) + returnDict['swap_long'] = float(x[7]) + returnDict['swap_short'] = float(x[8]) + returnDict['stop_level'] = int(x[9]) + returnDict['contract_size'] = float(x[10]) + + self.command_OK = True + return returnDict + + def Check_instrument(self, + instrument: str = 'EURUSD') -> str: + """ + Check if instrument known / market watch at broker. + + Args: + instrument: instrument name + Returns: + bool: True or False + """ + self.instrument_name_universal = instrument.upper() + self.instrument = self.get_broker_instrument_name(self.instrument_name_universal) + if (self.instrument == 'none' or self.instrument == None): + self.command_return_error = 'Instrument not in list' + self.command_OK = False + return None + + self.command = 'F004^2^' + self.instrument + '^' + ok, dataString = self.send_command(self.command) + + if not ok: + self.command_OK = False + return False, 'Error' + + if self.debug: + print(dataString) + + x = dataString.split('^') + if x[0] != 'F004': + self.command_return_error = ERROR_DICT[str(x[3])] + self.command_OK = False + return False, str(x[2]) + + return True, str(x[2]) + + def Get_instruments(self) ->list: + """ + Retrieves broker market instruments list. + + Args: + None + Returns: + List: All market symbols as universal instrument names + """ + self.command_return_error = '' + + self.command = 'F007^2^' + ok, dataString = self.send_command(self.command) + if not ok: + self.command_OK = False + return None + + if self.debug: + print(dataString) + + # analyze the answer + return_list = [] + x = dataString.split('^') + if x[0] != 'F007': + self.command_return_error = ERROR_DICT[x[3]] + self.command_OK = False + return return_list + + del x[0:2] + x.pop(-1) + for item in range(0, len(x)): + _instrument = str(x[item]) + instrument = self.get_universal_instrument_name(_instrument) + if (instrument != None): + return_list.append(instrument) + return return_list + + def Get_broker_instrument_names(self) ->list: + """ + Retrieves broker instrument names in Market Watch, so not the universal names. + + Args: + None + Returns: + List: All market symbols as broker instrument names in Market Watch + """ + self.command_return_error = '' + + self.command = 'F007^2^' + ok, dataString = self.send_command(self.command) + if not ok: + self.command_OK = False + return None + + if self.debug: + print(dataString) + + # analyze the answer + return_list = [] + x = dataString.split('^') + if x[0] != 'F007': + self.command_return_error = ERROR_DICT[x[3]] + self.command_OK = False + return return_list + + del x[0:2] + x.pop(-1) + for item in range(0, len(x)): + _instrument = str(x[item]) + return_list.append(_instrument) + return return_list + + def Get_broker_server_time(self) -> datetime: + """ + Retrieves broker server time. + + Args: + None + Returns: + datetime: Boker time + """ + self.command_return_error = '' + self.command = 'F005^1^' + ok, dataString = self.send_command(self.command) + + if not ok: + self.command_OK = False + return None + + if self.debug: + print(dataString) + + x = dataString.split('^') + if x[0] != 'F005': + self.command_return_error = ERROR_DICT[x[3]] + self.command_OK = False + return None + + del x[0:2] + x.pop(-1) + y = x[0].split('-') + d = datetime(int(y[0]), int(y[1]), int(y[2]), + int(y[3]), int(y[4]), int(y[5])) + return d + + def Get_last_tick_info(self, + instrument: str = 'EURUSD') -> dict: + """ + Retrieves instrument last tick data. + + Args: + instrument: instrument name + Returns: Dictionary with: + instrument name, + date, + ask, + bid, + last deal price, + volume + spread, in points + date_in_ms + """ + self.command_return_error = '' + self.instrument_name_universal = instrument.upper() + self.instrument = self.get_broker_instrument_name(self.instrument_name_universal) + if (self.instrument == 'none' or self.instrument == None): + self.command_return_error = 'Instrument not in broker list' + self.command_OK = False + return None + ok, dataString = self.send_command('F020^2^' + self.instrument + '^') + + if not ok: + self.command_OK = False + return None + + if self.debug: + print(dataString) + + x = dataString.split('^') + if x[0] != 'F020': + self.command_return_error = ERROR_DICT[str(x[3])] + self.command_OK = False + return None + + returnDict = {} + del x[0:2] + x.pop(-1) + + returnDict['instrument'] = str(self.instrument_name_universal) + returnDict['date'] = int(x[0]) + returnDict['ask'] = float(x[1]) + returnDict['bid'] = float(x[2]) + returnDict['last'] = float(x[3]) + returnDict['volume'] = int(x[4]) + returnDict['spread'] = float(x[5]) + returnDict['date_in_ms'] = int(x[6]) + + self.command_OK = True + return returnDict + + def Get_last_x_ticks_from_now(self, + instrument: str = 'EURUSD', + nbrofticks: int = 2000) -> np.array: + """ + Retrieves last x ticks from an instrument. + + Args: + instrument: instrument name + nbrofticks: number of ticks to retriev + Returns: numpy array with: + date, + ask, + bid, + last volume, + volume + """ + self.command_return_error = '' + self.instrument_name_universal = instrument.upper() + self.instrument = self.get_broker_instrument_name(self.instrument_name_universal) + if (self.instrument == 'none' or self.instrument == None): + self.command_return_error = 'Instrument not in broker list' + self.command_OK = False + return None + + self.nbrofticks = nbrofticks + + dt = np.dtype([('date', np.int64), ('ask', np.float64), ('bid', np.float64), ('last', np.float64), ('volume', np.int32)]) + + ticks = np.zeros(nbrofticks, dtype=dt) + + if (self.nbrofticks > self.max_ticks): + iloop = self.nbrofticks // self.max_ticks + itail = self.nbrofticks % self.max_ticks + + for index in range(0, iloop): + self.command = 'F021^4^' + self.instrument + '^' + str(index * self.max_ticks) + '^' + str(self.max_ticks) + '^' + ok, dataString = self.send_command(self.command) + if not ok: + self.command_OK = False + return None + if self.debug: + print(dataString) + print('') + print(len(dataString)) + + x = dataString.split('^') + if str(x[0]) != 'F021': + self.command_return_error = ERROR_DICT[str(x[3])] + self.command_OK = False + return None + + del x[0:2] + x.pop(-1) + + for value in range(0, len(x)): + y = x[value].split('$') + + ticks[value + index * self.max_ticks][0] = int(y[0]) + ticks[value + index * self.max_ticks][1] = float(y[1]) + ticks[value + index * self.max_ticks][2] = float(y[2]) + ticks[value + index * self.max_ticks][3] = float(y[3]) + ticks[value + index * self.max_ticks][4] = int(y[4]) + + if (len(x) < self.max_ticks): + ticks = np.sort(ticks[ticks[:]['date']!=0]) + self.command_OK = True + if (self.invert_array == True): + ticks = np.flipud(ticks) + return ticks + + if (itail == 0): + ticks = np.sort(ticks[ticks[:]['date']!=0]) + self.command_OK = True + return ticks + + if (itail > 0): + self.command = 'F021^4^' + self.instrument + '^' + str(iloop * self.max_ticks) + '^' + str(itail) + '^' + ok, dataString = self.send_command(self.command) + if not ok: + self.command_OK = False + return None + if self.debug: + print(dataString) + print('') + print(len(dataString)) + + x = dataString.split('^') + if str(x[0]) != 'F021': + self.command_return_error = ERROR_DICT[str(x[3])] + self.command_OK = False + return None + + del x[0:2] + x.pop(-1) + + for value in range(0, len(x)): + y = x[value].split('$') + + ticks[value + iloop * self.max_ticks][0] = int(y[0]) + ticks[value + iloop * self.max_ticks][1] = float(y[1]) + ticks[value + iloop * self.max_ticks][2] = float(y[2]) + ticks[value + iloop * self.max_ticks][3] = float(y[3]) + ticks[value + iloop * self.max_ticks][4] = int(y[4]) + + self.command_OK = True + ticks = np.sort(ticks[ticks[:]['date']!=0]) + if (self.invert_array == True): + ticks = np.flipud(ticks) + return ticks + else: + self.command = 'F021^4^' + self.instrument + '^' + str(0) + '^' + str(self.nbrofticks) + '^' + ok, dataString = self.send_command(self.command) + + if not ok: + self.command_OK = False + return None + if self.debug: + print(dataString) + print('') + print(len(dataString)) + + x = dataString.split('^') + if str(x[0]) != 'F021': + self.command_return_error = ERROR_DICT[str(x[3])] + self.command_OK = False + return None + + del x[0:2] + x.pop(-1) + + for value in range(0, len(x)): + y = x[value].split('$') + + ticks[value][0] = int(y[0]) + ticks[value][1] = float(y[1]) + ticks[value][2] = float(y[2]) + ticks[value][3] = float(y[3]) + ticks[value][4] = int(y[4]) + + self.command_OK = True + ticks = np.sort(ticks[ticks[:]['date']!=0]) + if (self.invert_array == True): + ticks = np.flipud(ticks) + #return ticks + return ticks[:len(x)] + + def Get_actual_bar_info(self, + instrument: str = 'EURUSD', + timeframe: int = 16408) -> dict: + """ + Retrieves instrument last actual data. + + Args: + instrument: instrument name + timeframe: time frame like H1, H4 + Returns: Dictionary with: + instrument name, + date, + open, + high, + low, + close, + volume, + """ + self.command_return_error = '' + self.instrument_name_universal = instrument.upper() + self.instrument = self.get_broker_instrument_name(self.instrument_name_universal) + if (self.instrument == 'none' or self.instrument == None): + self.command_return_error = 'Instrument not in broker list' + self.command_OK = False + return None + self.command = 'F041^3^' + self.instrument + '^' + str(timeframe) + '^' + ok, dataString = self.send_command(self.command) + + if not ok: + self.command_OK = False + return None + + if self.debug: + print(dataString) + + x = dataString.split('^') + if str(x[0]) != 'F041': + self.command_return_error = ERROR_DICT[str(x[3])] + self.command_OK = False + return None + + del x[0:2] + x.pop(-1) + returnDict = {} + returnDict['instrument'] = str(self.instrument_name_universal) + returnDict['date'] = int(x[0]) + returnDict['open'] = float(x[1]) + returnDict['high'] = float(x[2]) + returnDict['low'] = float(x[3]) + returnDict['close'] = float(x[4]) + returnDict['volume'] = int(x[5]) + + self.command_OK = True + return returnDict + + def Get_specific_bar(self, + instrument_list: list = ['EURUSD', 'GBPUSD'], + specific_bar_index: int = 1, + timeframe: int = 16408) -> dict: + """ + Retrieves instrument data(d, o, h, l, c, v) of one bar(index) for the instruments in the list. + + Args: + instrument: instrument name + specific_bar_index: the specific bar (0 = actual bar) + timeframe: time frame like H1, H4 + Returns: Dictionary with: {instrument:{instrument data}} + instrument name, + [date, + open, + high, + low, + close, + volume] + """ + self.command_return_error = '' + # compose MT5 command string + self.command = 'F045^3^' + for index in range (0, len(instrument_list), 1): + _instr = self.get_broker_instrument_name(instrument_list[index].upper()) + if (_instr == 'none' or _instr == None): + self.command_return_error = 'Instrument not in broker list' + self.command_OK = False + return None + self.command = self.command + _instr + '$' + #self.command = self.command[:-1] + self.command = self.command + '^' + str(specific_bar_index) + '^' + str(timeframe) + '^' + ok, dataString = self.send_command(self.command) + + if not ok: + self.command_OK = False + return None + + if self.debug: + print(dataString) + + x = dataString.split('^') + if str(x[0]) != 'F045': + self.command_return_error = str(x[2]) + self.command_OK = False + return None + + del x[0:2] + x.pop(-1) + result = {} + + for value in range(0, len(x)): + y = x[value].split('$') + symbol_result = {} + symbol = str(y[0]) + symbol_result['date'] = int(y[1]) + symbol_result['open'] = float(y[2]) + symbol_result['high'] = float(y[3]) + symbol_result['low'] = float(y[4]) + symbol_result['close'] = float(y[5]) + symbol_result['volume'] = float(y[6]) + result[symbol] = symbol_result + + return result + + def Get_last_x_bars_from_now(self, + instrument: str = 'EURUSD', + timeframe: int = 16408, + nbrofbars: int = 1000) -> np.array: + """ + Retrieves last x bars from a MT4 or MT5 EA bot. + + Args: + instrument: name of instrument like EURUSD + timeframe: timeframe like 'H4' + nbrofbars: Number of bars to retrieve + Returns: numpy array with: + date, + open, + high, + low, + close, + volume + """ + self.command_return_error = '' + self.instrument_name_universal = instrument.upper() + self.instrument = self.get_broker_instrument_name(self.instrument_name_universal) + if (self.instrument == 'none' or self.instrument == None): + self.command_return_error = 'Instrument not in broker list' + self.command_OK = False + return None + self.numberofbars = nbrofbars + + dt = np.dtype([('date', np.int64), ('open', np.float64), ('high', np.float64), + ('low', np.float64), ('close', np.float64), ('volume', np.int32)]) + + rates = np.zeros(self.numberofbars, dtype=dt) + + if (self.numberofbars > self.max_bars): + iloop = self.numberofbars // self.max_bars + itail = self.numberofbars % self.max_bars + + + for index in range(0, iloop): + self.command = 'F042^5^' + self.instrument + '^' + \ + str(timeframe) + '^' + str(index * self.max_bars) + '^' + str(self.max_bars) + '^' + ok, dataString = self.send_command(self.command) + if not ok: + self.command_OK = False + return None + if self.debug: + print(dataString) + print('') + print(len(dataString)) + + x = dataString.split('^') + if str(x[0]) != 'F042': + self.command_return_error = ERROR_DICT[str(x[3])] + self.command_OK = False + return None + + del x[0:2] + x.pop(-1) + + for value in range(0, len(x)): + y = x[value].split('$') + + rates[value + index * self.max_bars][0] = int(y[0]) + rates[value + index * self.max_bars][1] = float(y[1]) + rates[value + index * self.max_bars][2] = float(y[2]) + rates[value + index * self.max_bars][3] = float(y[3]) + rates[value + index * self.max_bars][4] = float(y[4]) + rates[value + index * self.max_bars][5] = int(y[5]) + + if (len(x) < self.max_bars): + #rates = np.sort(rates) + rates = np.sort(rates[rates[:]['date']!=0]) + self.command_OK = True + if (self.invert_array == True): + rates = np.flipud(rates) + return rates + + if (itail == 0): + #rates = np.sort(rates) + rates = np.sort(rates[rates[:]['date']!=0]) + self.command_OK = True + if (self.invert_array == True): + rates = np.flipud(rates) + return rates + + if (itail > 0): + self.command = 'F042^5^' + self.instrument + '^' + str(timeframe) + '^' + str( + iloop * self.max_bars) + '^' + str(itail) + '^' + ok, dataString = self.send_command(self.command) + if not ok: + self.command_OK = False + return None + if self.debug: + print(dataString) + print('') + print(len(dataString)) + + x = dataString.split('^') + if str(x[0]) != 'F042': + self.command_return_error = ERROR_DICT[str(x[3])] + self.command_OK = False + return None + + del x[0:2] + x.pop(-1) + + for value in range(0, len(x)): + y = x[value].split('$') + + rates[value + iloop * self.max_bars][0] = int(y[0]) + rates[value + iloop * self.max_bars][1] = float(y[1]) + rates[value + iloop * self.max_bars][2] = float(y[2]) + rates[value + iloop * self.max_bars][3] = float(y[3]) + rates[value + iloop * self.max_bars][4] = float(y[4]) + rates[value + iloop * self.max_bars][5] = int(y[5]) + + self.command_OK = True + #rates = np.sort(rates) + rates = np.sort(rates[rates[:]['date']!=0]) + if (self.invert_array == True): + rates = np.flipud(rates) + return rates + else: + self.command = 'F042^5^' + str(self.instrument) + '^' + \ + str(timeframe) + '^' + str(0) + '^' + str(self.numberofbars) + '^' + #print(self.command) + ok, dataString = self.send_command(self.command) + if not ok: + self.command_OK = False + print('not ok') + return None + if self.debug: + print(dataString) + print('') + print(len(dataString)) + + x = dataString.split('^') + if str(x[0]) != 'F042': + self.command_return_error = ERROR_DICT[str(x[3])] + self.command_OK = False + return None + + del x[0:2] + x.pop(-1) + + for value in range(0, len(x)): + y = x[value].split('$') + + rates[value][0] = int(y[0]) + rates[value][1] = float(y[1]) + rates[value][2] = float(y[2]) + rates[value][3] = float(y[3]) + rates[value][4] = float(y[4]) + rates[value][5] = int(y[5]) + + self.command_OK = True + rates = np.sort(rates[rates[:]['date']!=0]) + if (self.invert_array == True): + rates = np.flipud(rates) + return rates[:len(x)] + + def Get_bars_from_date_to_date(self, + instrument: str = 'EURUSD', + timeframe: int = 16408, + date_from: datetime = datetime(2021, 3, 1, tzinfo = pytz.timezone("Etc/UTC")), + date_to: datetime = datetime.now()) -> np.array: + + self.command_return_error = '' + self.instrument_name_universal = instrument.upper() + self.instrument = self.get_broker_instrument_name(self.instrument_name_universal) + if (self.instrument == 'none' or self.instrument == None): + self.command_return_error = 'Instrument not in broker list' + self.command_OK = False + return None + self.date_from = date_from + self.date_to = date_to + + if (date_from >= date_to): + self.command_return_error = 'From date is after to date' + self.command_OK = False + return None + + + dt = np.dtype([('date', np.int64), ('open', np.float64), ('high', np.float64), + ('low', np.float64), ('close', np.float64), ('volume', np.int32)]) + + + def Get_all_deleted_orders(self) -> pd.DataFrame: + """ + Retrieves all deleted pending orders. + + Args: + + Returns: + data array(panda) with all position information: + ticket, + instrument, + order_type, + magic_number, + volume, + open_price, + open_time, + stop_loss, + take_profit, + delete_price, + delete_time, + comment + """ + + # reset parameters + self.command_return_error = '' + + # get all pending orders + ok, resp = self.send_command("F065^1^") + + if self.debug: + print(resp) + + if not ok: + self.command_OK = False + return None + + + deleted_orders = self.create_empty_DataFrame( + self.columnsDeletedOrders, 'id') + + x = resp.split('^') + if (str(x[0]) != 'F065'): + self.command_return_error = ERROR_DICT['99901'] + self.command_OK = False + return None + + del x[0:2] + x.pop(-1) + + for value in range(0, len(x)): + y = x[value].split('$') + + rowOrder = { + 'ticket': int( y[0]), 'instrument': self.get_universal_instrument_name( (y[1])), 'order_type': str( y[2]), + 'magic_number': int(y[4]), 'volume': float( y[5]), 'open_price': float( y[6]), 'open_time': int(y[7]), + 'stop_loss': float( y[8]), 'take_profit': float( y[9]), 'delete_price': float(y[10]), 'delete_time': int( y[11]), + 'comment': str( y[12])} + + df_add = pd.DataFrame([rowOrder]) + deleted_orders = pd.concat([deleted_orders, df_add], ignore_index=True) + + deleted_orders.sort_values(by=['open_time'], ascending= True,inplace=True) + + self.command_OK = True + + return deleted_orders + + """ if ok==True and resp[0:5]=="F065^" and resp[-1]=="!": + nbr = resp[resp.index('^',3)+1:resp.index('^',5)] + if int(nbr) != 0: + df = pd.read_table(io.StringIO(resp[resp.index('^',5)+1:-1]), sep='$', lineterminator='^', + header=None, + names=np.array(self.columnsDeletedOrders[1:])[:,0], + dtype=self.columnsDeletedOrders[1:] + ).fillna('') + # no time conversion + # df.open_time = pd.to_datetime(df.open_time, unit='s').dt.tz_localize(TZ_SERVER).dt.tz_convert(TZ_UTC) + # sort by open_time ascending + df.sort_values(by=['open_time'], ascending= True,inplace=True) + return df + else: + # return empty dataframe + return self.create_empty_DataFrame( + self.columnsDeletedOrders, 'id') + else: + # error + if not ok: + self.command_OK = False + return None + else: + x = resp.split('^') + self.command_return_error = ERROR_DICT['99901'] + self.command_OK = False + return None """ + + def Get_deleted_orders_within_window(self, + date_from: datetime = datetime(2021, 3, 25, tzinfo = pytz.timezone("Etc/UTC")), + date_to: datetime = datetime.now()) -> pd.DataFrame: + + """ + Retrieves all deleted pending orders within time window. + Open and close time of order must be within the time window + + Args: + date_from: date to start retrieving orders from + date_to: date to stop retrieving to + Returns: + data array(panda) with all position information: + ticket, + instrument, + order_type, + magic_number, + volume, + open_price, + open_time, + stop_loss, + take_profit, + delete_price, + delete_time, + comment + """ + + + # reset/set parameters + self.command_return_error = '' + self.date_from = date_from + self.date_to = date_to + + # get all pending orders + self.command = 'F064^3^' + self.date_from.strftime( + '%Y/%m/%d/%H/%M/%S') + '^' + self.date_to.strftime('%Y/%m/%d/%H/%M/%S') + '^' + ok, resp = self.send_command(self.command) + + if self.debug: + print(resp) + + if not ok: + self.command_OK = False + return None + + deleted_orders = self.create_empty_DataFrame( + self.columnsDeletedOrders, 'id') + + x = resp.split('^') + if (str(x[0]) != 'F064'): + self.command_return_error = ERROR_DICT['99901'] + self.command_OK = False + return None + + del x[0:2] + x.pop(-1) + + for value in range(0, len(x)): + y = x[value].split('$') + + rowOrder = { + 'ticket': int( y[0]), 'instrument': self.get_universal_instrument_name( (y[1])), 'order_type': str( y[2]), + 'magic_number': int(y[4]), 'volume': float( y[5]), 'open_price': float( y[6]), 'open_time': int(y[7]), + 'stop_loss': float( y[8]), 'take_profit': float( y[9]), 'delete_price': float(y[10]), 'delete_time': int( y[11]), + 'comment': str( y[12])} + + df_add = pd.DataFrame([rowOrder]) + deleted_orders = pd.concat([deleted_orders, df_add], ignore_index=True) + + deleted_orders.sort_values(by=['open_time'], ascending= True,inplace=True) + + self.command_OK = True + + return deleted_orders + + """ if ok==True and resp[0:5]=="F064^" and resp[-1]=="!": + nbr = resp[resp.index('^',3)+1:resp.index('^',5)] + if int(nbr) != 0: + df = pd.read_table(io.StringIO(resp[resp.index('^',5)+1:-1]), sep='$', lineterminator='^', + header=None, + names=np.array(self.columnsDeletedOrders[1:])[:,0], + dtype=self.columnsDeletedOrders[1:] + ).fillna('') + # no time conversion + # df.open_time = pd.to_datetime(df.open_time, unit='s').dt.tz_localize(TZ_SERVER).dt.tz_convert(TZ_UTC) + # sort by open_time ascending + df.sort_values(by=['open_time'], ascending= True,inplace=True) + return df + else: + # return empty dataframe + return self.create_empty_DataFrame( + self.columnsDeletedOrders, 'id') + else: + # error + if not ok: + self.command_OK = False + return None + else: + x = resp.split('^') + self.command_return_error = ERROR_DICT[str(x[3])] + self.command_OK = False + return None """ + + def Get_all_orders(self) -> pd.DataFrame: + + """ + Retrieves all pending orders. + + Args: + + Returns: + data array(panda) with all order information: + ticket, + instrument, + order_type, + magic number, + volume/lotsize, + open price, + open_time, + stop_loss, + take_profit, + comment + """ + + # reset parameters + self.command_return_error = '' + + # get all pending orders + ok, resp = self.send_command("F060^1^") + + if self.debug: + print(resp) + + if not ok: + self.command_OK = False + return None + + orders = self.create_empty_DataFrame(self.columnsOpenOrders, 'id') + x = resp.split('^') + if str(x[0]) != 'F060': + self.command_return_error = ERROR_DICT['99901'] + self.command_OK = False + return None + + del x[0:2] + x.pop(-1) + + for value in range(0, len(x)): + y = x[value].split('$') + + rowOrder = { + 'ticket': int( y[0]), 'instrument': self.get_universal_instrument_name(str(y[1])), 'order_type': str(y[2]), 'magic_number': int(y[3]), + 'volume': float( y[4]), 'open_price': float( y[5]), 'stop_loss': float( y[6]), 'take_profit': float( y[7]), 'comment': str(y[8])} + df_add = pd.DataFrame([rowOrder]) + orders = pd.concat([orders, df_add], ignore_index=True) + + orders.sort_values(by=['open_time'], ascending= True,inplace=True) + + self.command_OK = True + + return orders + + """ if ok==True and resp[0:5]=="F060^" and resp[-1]=="!": + nbr = resp[resp.index('^',3)+1:resp.index('^',5)] + if int(nbr) != 0: + df = pd.read_table(io.StringIO(resp[resp.index('^',5)+1:-1]), sep='$', lineterminator='^', + header=None, + names=np.array(self.columnsOpenOrders[1:])[:,0], + dtype=self.columnsOpenOrders[1:] + ).fillna('') + # no time conversion + # df.open_time = pd.to_datetime(df.open_time, unit='s').dt.tz_localize(TZ_SERVER).dt.tz_convert(TZ_UTC) + # sort by open_time ascending + df.sort_values(by=['open_time'], ascending= True,inplace=True) + return df + else: + # return empty dataframe + return self.create_empty_DataFrame( + self.columnsOpenOrders, 'id') + else: + # error + if not ok: + self.command_OK = False + return None + else: + x = resp.split('^') + self.command_return_error = ERROR_DICT['99901'] + self.command_OK = False + return None """ + + def Get_all_open_positions(self) -> pd.DataFrame: + + """ + Retrieves all open positions, market orders for MT4. + + Args: + none + + Returns: + data array(panda) with all position information: + ticket, + instrument, + order_ticket, for MT5 deal ticket, for MT4 order ticket + position_type, + magic_number, + volume/lotsize, + open_price, + open_time, + stopp_loss, + take_profit, + comment, + profit, + swap, + commission + """ + # reset parameters + self.command_return_error = '' + self.command = 'F061^1^' + + # get all open positions + ok, resp = self.send_command(self.command) + + if self.debug: + print(resp) + + if not ok: + self.command_OK = False + return None + + positions = self.create_empty_DataFrame( + self.columnsOpenPositions, 'id') + x = resp.split('^') + if (str(x[0]) != 'F061'): + self.command_return_error = ERROR_DICT['99901'] + self.command_OK = False + return None + + del x[0:2] + x.pop(-1) + for value in range(0, len(x)): + y = x[value].split('$') + + rowPosition = { + 'ticket': int( y[0]), 'instrument': self.get_universal_instrument_name( (y[1])), 'order_ticket': int(y[2]), 'position_type': str( y[3]), + 'magic_number': int(y[4]), 'volume': float( y[5]), 'open_price': float( y[6]), 'open_time': int(y[7]), + 'stop_loss': float( y[8]), 'take_profit': float( y[9]), 'comment': str(y[10]), 'profit': float( y[11]), + 'swap': float( y[12]), 'commission': float( y[13])} + + df_add = pd.DataFrame([rowPosition]) + + positions = pd.concat([positions, df_add], ignore_index=True) + + positions.sort_values(by=['open_time'], ascending= True,inplace=True) + + self.command_OK = True + + return positions + + """ if ok==True and resp[0:5]=="F061^" and resp[-1]=="!": + nbr = resp[resp.index('^',3)+1:resp.index('^',5)] + if int(nbr) != 0: + df = pd.read_table(io.StringIO(resp[resp.index('^',5)+1:-1]), sep='$', lineterminator='^', + header=None, + names=np.array(self.columnsOpenPositions[1:])[:,0], + dtype=self.columnsOpenPositions[1:] + ).fillna('') + # no time conversion + # df.open_time = pd.to_datetime(df.open_time, unit='s').dt.tz_localize(TZ_SERVER).dt.tz_convert(TZ_UTC) + # sort by open_time ascending + df.sort_values(by=['open_time'], ascending= True,inplace=True) + return df + else: + # return empty dataframe + return self.create_empty_DataFrame( + self.columnsOpenPositions, 'id') + else: + # error + if not ok: + self.command_OK = False + return None + else: + x = resp.split('^') + self.command_return_error = ERROR_DICT['99901'] + self.command_OK = False + return None """ + + def Get_closed_positions_within_window(self, + date_from: datetime = datetime(2021, 3, 20, tzinfo = pytz.timezone("Etc/UTC")), + date_to: datetime = datetime.now()) -> pd.DataFrame: + + """ + Retrieves all closed positions/orders within time window. + Open and close time must be within the time window + + Args: + date_from: date to start retrieving orders from + date_to: date to stop retrieving to + Returns: + data array(panda) with all position information: + ticket, + instrument, + order_ticket, + position_type, + magic_number, + volume, + open_price, + open_time, + stop_loss, + take_profit, + close_price, + close_time, + comment, + profit, + swap, + commission + """ + self.command_return_error = '' + self.date_from = date_from + self.date_to = date_to + self.command = 'F062^3^' + self.date_from.strftime( + '%Y/%m/%d/%H/%M/%S') + '^' + self.date_to.strftime('%Y/%m/%d/%H/%M/%S') + '^' + + + ok, resp = self.send_command(self.command) + + if self.debug: + print(resp) + + if not ok: + self.command_OK = False + return None + + closed_positions = self.create_empty_DataFrame( + self.columnsClosedPositions, 'id') + + x = resp.split('^') + if str(x[0]) != 'F062': + self.command_return_error = ERROR_DICT['99901'] + self.command_OK = False + return None + + del x[0:2] + x.pop(-1) + + for value in range(0, len(x)): + y = x[value].split('$') + rowClosedPosition = { + 'position_ticket': int(y[0]), 'instrument': self.get_universal_instrument_name(str( y[1])), 'order_ticket': int( y[2]), + 'position_type': str( y[3]), 'magic_number': int( y[4]), 'volume': float( y[5]), 'open_price': float( y[6]), + 'open_time': int( y[7]), 'close_price': float(y[8]), 'close_time': int( y[9]), 'comment': str( y[10]), + 'profit': float( y[11]), 'swap': float( y[12]), 'commission': float( y[13])} + + df_add = pd.DataFrame([rowClosedPosition]) + + positions = pd.concat([positions, df_add], ignore_index=True) + + closed_positions.sort_values(by=['open_time'], ascending= True,inplace=True) + + self.command_OK = True + + return closed_positions + + """ if ok==True and resp[0:5]=="F062^" and resp[-1]=="!": + nbr = resp[resp.index('^',3)+1:resp.index('^',5)] + if int(nbr) != 0: + df = pd.read_table(io.StringIO(resp[resp.index('^',5)+1:-1]), sep='$', lineterminator='^', + header=None, + names=np.array(self.columnsClosedPositions[1:])[:,0], + dtype=self.columnsClosedPositions[1:] + ).fillna('') + # no time conversion + # df.open_time = pd.to_datetime(df.open_time, unit='s').dt.tz_localize(TZ_SERVER).dt.tz_convert(TZ_UTC) + # sort by open_time ascending + df.sort_values(by=['open_time'], ascending= True,inplace=True) + return df + else: + # return empty dataframe + return self.create_empty_DataFrame( + self.columnsClosedPositions, 'id') + else: + # error + if not ok: + self.command_OK = False + return None + else: + x = resp.split('^') + self.command_return_error = ERROR_DICT['99901'] + self.command_OK = False + return None """ + + def Get_all_closed_positions(self) -> pd.DataFrame: + """ + Retrieves all closed positions/orders. + For MT4 all must be visible in the history tab of the MT4 terminal + + Args: + + Returns: + data array(panda) with all position information: + ticket, + instrument, + order_ticket, + position_type, + magic_number, + volume, + open_price, + open_time, + stop_loss, + take_profit, + close_price, + close_time, + comment, + profit, + swap, + commission + """ + self.command_return_error = '' + + self.command = 'F063^1^' + ok, resp = self.send_command(self.command) + + if self.debug: + print(resp) + + if not ok: + self.command_OK = False + return None + + if self.debug: + print(resp) + + closed_positions = self.create_empty_DataFrame( + self.columnsClosedPositions, 'id') + + x = resp.split('^') + if str(x[0]) != 'F063': + self.command_return_error = ERROR_DICT['99901'] + self.command_OK = False + return None + + del x[0:2] + x.pop(-1) + + for value in range(0, len(x)): + y = x[value].split('$') + rowClosedPosition = { + 'ticket': int(y[0]), 'instrument': self.get_universal_instrument_name(str( y[1])), 'order_ticket': int( y[2]), + 'position_type': str( y[3]), 'magic_number': int( y[4]), 'volume': float( y[5]), 'open_price': float( y[6]), + 'open_time': int( y[7]), 'stop_loss': float((y[8])), 'take_profit': float((y[9])), 'close_price': float(y[10]), + 'close_time': int( y[11]), 'comment': str( y[12]), + 'profit': float( y[13]), 'swap': float( y[14]), 'commission': float( y[15])} + + df_add = pd.DataFrame([rowClosedPosition]) + + closed_positions = pd.concat([closed_positions, df_add], ignore_index=True) + + closed_positions.sort_values(by=['open_time'], ascending= True,inplace=True) + + self.command_OK = True + + return closed_positions + + def Open_order(self, + instrument: str = '', + ordertype: str = 'buy', + volume: float = 0.01, + openprice: float = 0.0, + slippage: int = 5, + magicnumber: int = 0, + stoploss: float = 0.0, + takeprofit: float = 0.0, + comment: str = '', + market: bool = False + ) -> int: + """ + Open an order. + + Args: + instrument: instrument + ordertype: type of order, buy, sell, buy stop, sell stop, buy limit, sell limit + volume: order volume/lot size + open price: open price for order, 0.0 for market orders + slippage: allowed slippage + magicnumber: magic number for this order + stoploss: order stop loss price, actual price, so not relative to open price + takeprofit: order take profit, actual price, so not relative to open price + comment: order comment + market: true, must be in watch list + Returns: + int: ticket number. If -1, open order failed + """ + + self.command_return_error = '' + self.instrument_name_universal = instrument.upper() + # check the command for '^' , '$', '!' character + # these are not allowed, used as delimiters + comment.replace('^', '') + comment.replace('$', '') + comment.replace('!', '') + broker_instrument = self.get_broker_instrument_name(self.instrument_name_universal) + if (self.instrument == 'none' or self.instrument == None): + self.command_return_error = 'Instrument not known, check brookerlookuptable' + self.command_OK = False + self.order_return_message = 'Instrument not known, check brookerlookuptable' + return int(-1) + + self.command = 'F070^11^' + self.get_broker_instrument_name(self.instrument_name_universal) + '^' + ordertype + '^' + str(volume) + '^' + \ + str(openprice) + '^' + str(slippage) + '^' + str(magicnumber) + '^' + str(stoploss) + '^' + str(takeprofit) + '^' + str(comment) + '^' + str(market) + '^' + #print(self.command) + ok, dataString = self.send_command(self.command) + if not ok: + self.command_OK = False + return int(-1) + + if self.debug: + print(dataString) + + x = dataString.split('^') + if str(x[0]) != 'F070': + self.command_return_error = ERROR_DICT[str(x[3])] + self.command_OK = False + self.order_return_message = ERROR_DICT[str(x[3])] + self.order_error = int(x[4]) + return int(-1) + + self.command_OK = True + + if (int(x[1]) == 3): + self.order_return_message = str(x[2]) + self.order_error = int(x[4]) + return int(x[3]) + + def Close_position_by_ticket(self, + ticket: int = 0) -> bool: + """ + Close a position. + + Args: + ticket: ticket of position to close + + Returns: + bool: True or False + """ + self.command_return_error = '' + self.command = 'F071^2^' + str(ticket) + '^' + ok, dataString = self.send_command(self.command) + if not ok: + self.command_OK = False + return False + + if self.debug: + print(dataString) + + x = dataString.split('^') + if str(x[0]) != 'F071': + self.command_return_error = ERROR_DICT[str(x[3])] + self.command_OK = False + self.order_return_message = ERROR_DICT[str(x[3])] + self.order_error = int(x[4]) + return False + + return True + + def Close_position_partial_by_ticket(self, + ticket: int = 0, + volume_to_close: float = 0.01) -> bool: + """ + Close a position partial. + + Args: + ticket: ticket of position to close + volume_to_close: volume part to close, must be small then order volume + Returns: + bool: True or False + """ + self.command_return_error = '' + self.command = 'F072^3^' + \ + str(ticket) + '^' + str(volume_to_close) + '^' + + ok, dataString = self.send_command(self.command) + if not ok: + self.command_OK = False + return False + + if self.debug: + print(dataString) + + x = dataString.split('^') + if str(x[0]) != 'F072': + self.command_return_error = ERROR_DICT[str(x[3])] + self.command_OK = False + self.order_return_message = ERROR_DICT[str(x[3])] + #self.order_error = ERROR_DICT[str(x[3])] + return False + + return True + + def CloseBy_position_by_ticket(self, + ticket: int = 0, + ticket_opposite: int = 0) -> bool: + """ + Close a position. + + Args: + ticket: ticket of position to close + ticket_opposite: opposite ticket for closing + + Returns: + bool: True or False + """ + self.command_return_error = '' + self.command = 'F074^3^' + str(ticket) + '^' + str(ticket_opposite) + '^' + ok, dataString = self.send_command(self.command) + if not ok: + self.command_OK = False + return False + + if self.debug: + print(dataString) + + x = dataString.split('^') + if str(x[0]) != 'F074': + self.command_return_error = ERROR_DICT[str(x[3])] + self.command_OK = False + self.order_return_message = ERROR_DICT[str(x[3])] + self.order_error = int(x[4]) + return False + + return True + + def Close_positions_async(self, + instrument: str = '***', + magic_number: int = -1) -> bool: + + """ + Close a position. + + Args: + instrument: close only positions with this instrument, default all (***) + magic_number: close only positions with this magic number, default all (-1) + + Returns: + bool: True or False + """ + self.magicNumber = magic_number + self.command_return_error = '' + + if (instrument == '***'): + self.command = 'F091^3^' + str(instrument) + '^' + str(magic_number) + '^' + else: + self.instrument_name_universal = instrument + self.command = 'F091^3^' + str(self.get_broker_instrument_name(self.instrument_name_universal)) + '^' + str(magic_number) + '^' + ok, dataString = self.send_command(self.command) + if not ok: + self.command_OK = False + return False + + if self.debug: + print(dataString) + + x = dataString.split('^') + if str(x[0]) != 'F091': + self.command_return_error = ERROR_DICT[str(x[3])] + self.command_OK = False + self.order_return_message = ERROR_DICT[str(x[3])] + self.order_error = int(x[3]) + return False + + return True + + def Delete_order_by_ticket(self, + ticket: int = 0) -> bool: + """ + Delete an order. + + Args: + ticket: ticket of order(pending) to delete + + Returns: + bool: True or False + """ + self.command_return_error = '' + self.command = 'F073^2^' + str(ticket) + '^' + ok, dataString = self.send_command(self.command) + if not ok: + self.command_OK = False + return False + + if self.debug: + print(dataString) + + x = dataString.split('^') + if str(x[0]) != 'F073': + self.command_return_error = ERROR_DICT[str(x[3])] + self.command_OK = False + self.order_return_message = ERROR_DICT[str(x[3])] + self.order_error = int(x[4]) + return False + + return True + + def Set_sl_and_tp_for_position(self, + ticket: int = 0, + stoploss: float = 0.0, + takeprofit: float = 0.0) -> bool: + """ + Change stop loss and take profit for a position. + + Args: + ticket: ticket of position to change + stoploss; new stop loss value, must be actual price value + takeprofit: new take profit value, must be actual price value + + Returns: + bool: True or False + """ + self.command_return_error = '' + self.command = 'F075^4^' + \ + str(ticket) + '^' + str(stoploss) + '^' + str(takeprofit) + '^' + ok, dataString = self.send_command(self.command) + if not ok: + self.command_OK = False + return False + + if self.debug: + print(dataString) + + x = dataString.split('^') + if str(x[0]) != 'F075': + self.command_return_error = ERROR_DICT[str(x[3])] + self.command_OK = False + self.order_return_message = ERROR_DICT[str(x[3])] + self.order_error = int(x[4]) + return False + + self.command_OK = True + return True + + def Set_sl_and_tp_for_order(self, + ticket: int = 0, + stoploss: float = 0.0, + takeprofit: float = 0.0) -> bool: + """ + Change stop loss and take profit for an order. + + Args: + ticket: ticket of order to change + stoploss; new stop loss value, must be actual price value + takeprofit: new take profit value, must be actual price value + + Returns: + bool: True or False + """ + self.command_return_error = '' + self.command = 'F076^4^' + \ + str(ticket) + '^' + str(stoploss) + '^' + str(takeprofit) + '^' + ok, dataString = self.send_command(self.command) + if not ok: + self.command_OK = False + return False + + if self.debug: + print(dataString) + + x = dataString.split('^') + if str(x[0]) != 'F076': + self.command_return_error = ERROR_DICT[str(x[3])] + self.command_OK = False + self.order_return_message = ERROR_DICT[str(x[3])] + self.order_error = int(x[4]) + return False + + self.command_OK = True + return True + + def Reset_sl_and_tp_for_position(self, + ticket: int = 0) -> bool: + """ + Reset stop loss and take profit for a position. + + Args: + ticket: ticket of position to change + + Returns: + bool: True or False + """ + self.command_return_error = '' + self.command = 'F077^2^' + str(ticket) + '^' + ok, dataString = self.send_command(self.command) + if not ok: + self.command_OK = False + return False + + if self.debug: + print(dataString) + + x = dataString.split('^') + if str(x[0]) != 'F077': + self.command_return_error = ERROR_DICT[str(x[3])] + self.command_OK = False + self.order_return_message = ERROR_DICT[str(x[3])] + self.order_error = int(x[4]) + return False + + self.command_OK = True + return True + + def Reset_sl_and_tp_for_order(self, + ticket: int = 0) -> bool: + """ + Reset stop loss and take profit for an order. + + Args: + ticket: ticket of order to change + + + Returns: + bool: True or False + """ + self.command_return_error = '' + self.command = 'F078^2^' + str(ticket) + '^' + ok, dataString = self.send_command(self.command) + if not ok: + self.command_OK = False + return False + + if self.debug: + print(dataString) + + x = dataString.split('^') + if str(x[0]) != 'F078': + self.command_return_error = ERROR_DICT[str(x[3])] + self.command_OK = False + self.order_return_message = ERROR_DICT[str(x[3])] + self.order_error = int(x[4]) + return False + + self.command_OK = True + return True + + def Change_settings_for_pending_order(self, + ticket: int = 0, + price: float = -1.0, + stoploss: float = -1.0, + takeprofit: float = -1.0) -> bool: + """ + Change settings for a pending order. + + Args: + ticket: ticket of order to change + price: new price value, if value=-1.0 no change + stoploss: new stop loss value, if value=-1.0 no change + takeprofit: new take profit value, if value=-1.0 no change + + Returns: + bool: True or False + + """ + self.command_return_error = '' + self.command = 'F079^5^' + str(ticket) + '^' + str(price) + '^' + str(stoploss) + '^' + str(takeprofit) + '^' + + ok, dataString = self.send_command(self.command) + if not ok: + self.command_OK = False + return False + + if self.debug: + print(dataString) + + x = dataString.split('^') + if str(x[0]) != 'F079': + self.command_return_error = ERROR_DICT[str(x[3])] + self.command_OK = False + self.order_return_message = ERROR_DICT[str(x[3])] + self.order_error = int(x[4]) + return False + + self.command_OK = True + return True + + def Set_global_variable(self, global_name: str = '', global_value: float = 0.0) -> bool: + """ + Set global variable. + + Args: + global_name: name of global variable + global_value: value of global variable + + Returns: + bool: True or False + """ + self.command_return_error = '' + self.command = 'F080^3^' + global_name + '^' + str(global_value) + '^' + ok, dataString = self.send_command(self.command) + if not ok: + self.command_OK = False + return False + + if self.debug: + print(dataString) + + x = dataString.split('^') + if str(x[0]) != 'F080': + self.command_return_error = ERROR_DICT[str(x[3])] + self.command_OK = False + self.order_return_message = ERROR_DICT[str(x[3])] + #self.order_error = int(x[4]) + return False + + self.command_OK = True + return True + + def Get_global_variable(self, global_name: str = 'GlobalVariableName') -> float: + """ + Get global variable. + + Args: + global_name: name of global variable + + Returns: + value of global variable + """ + + self.command_return_error = '' + self.command = 'F081^1^' + global_name + '^' + ok, dataString = self.send_command(self.command) + if not ok: + self.command_OK = False + return False + + if self.debug: + print(dataString) + + x = dataString.split('^') + if str(x[0]) != 'F081': + self.command_return_error = ERROR_DICT[str(x[3])] + self.command_OK = False + self.order_return_message = ERROR_DICT[str(x[3])] + #self.order_error = int(x[4]) + return False + + self.command_OK = True + return float(x[3]) + + def Get_logfile(self, date: datetime = datetime.now()) -> pd.DataFrame: + """ + Get logfile. + + Args: + date: logfile date + + Returns: + dataframe: logfile records + """ + + self.command_return_error = '' + self.order_return_message = '' + self.date_to = date + self.command = 'F082^2^' + self.date_to.strftime('%Y/%m/%d/%H/%M/%S') + '^' + ok, resp = self.send_command(self.command) + if not ok: + self.command_OK = False + return False + + if self.debug: + print(resp) + + if ok==True and resp[0:5]=="F082^" and resp[-1]=="!": + nbr = resp[resp.index('^',3)+1:resp.index('^',5)] + if int(nbr) != 0: + df = pd.read_table(io.StringIO(resp[resp.index('^',5)+1:-1]), sep='$', lineterminator='^', + header=None, + names=np.array(self.columnsLogInfo[1:])[:,0], + dtype=self.columnsLogInfo[1:] + ).fillna('') + # no time conversion + + return df + else: + # return empty dataframe + return self.create_empty_DataFrame( + self.columnsLogInfo, 'id') + + else: + # error + if not ok: + self.command_OK = False + return None + else: + x = resp.split('^') + self.command_return_error = ERROR_DICT[str(x[3])] + self.command_OK = False + #self.order_return_message = ERROR_DICT[str(x[3])] + #self.order_error = int(x[4]) + return None + + def Switch_autotrading_on_off(self, on_off: bool = True) -> bool: + """ + Switch autotrading on or off. + + Args: + on_off: True or False + Returns: + bool: True or False + """ + + self.command_return_error = '' + if (on_off): + self.command = 'F084^2^On^' + else: + self.command = 'F084^2^Off^' + ok, dataString = self.send_command(self.command) + if not ok: + self.command_OK = False + return False + x = dataString.split('^') + if str(x[0]) != 'F084': + return False + else: + return True + + def send_command(self, + command): + self.command = command + self.authorization_code + "^" "!" + self.timeout = False + #print(self.command) + #print(self.socket) + #self.sock.send(bytes(self.command, "utf-8")) + try: + self.sock.send(bytes(self.command, "utf-8")) + data_received = '' + while True: + data_received = data_received + self.sock.recv(500000).decode() + if data_received.endswith('!'): + break + return True, data_received + except socket.timeout as msg: + self.timeout = True + self.connected = False + self.command_return_error = 'Unexpected socket communication error' + print(msg) + return False, None + + def get_timeframe_value(self, + timeframe: str = 'D1') -> int: + + self.tf = 16408 # mt5.TIMEFRAME_D1 + timeframe.upper() + if timeframe == 'MN1': + self.tf = 49153 # mt5.TIMEFRAME_MN1 + if timeframe == 'W1': + self.tf = 32769 # mt5.TIMEFRAME_W1 + if timeframe == 'D1': + self.tf = 16408 # mt5.TIMEFRAME_D1 + if timeframe == 'H12': + self.tf = 16396 # mt5.TIMEFRAME_H12 + if timeframe == 'H8': + self.tf = 16392 # mt5.TIMEFRAME_H8 + if timeframe == 'H6': + self.tf = 16390 # mt5.TIMEFRAME_H6 + if timeframe == 'H4': + self.tf = 16388 # mt5.TIMEFRAME_H4 + if timeframe == 'H3': + self.tf = 16387 # mt5.TIMEFRAME_H3 + if timeframe == 'H2': + self.tf = 16386 # mt5.TIMEFRAME_H2 + if timeframe == 'H1': + self.tf = 16385 # mt5.TIMEFRAME_H1 + if timeframe == 'M30': + self.tf = 30 # mt5.TIMEFRAME_M30 + if timeframe == 'M20': + self.tf = 20 # mt5.TIMEFRAME_M20 + if timeframe == 'M15': + self.tf = 15 # mt5.TIMEFRAME_M15 + if timeframe == 'M12': + self.tf = 12 # mt5.TIMEFRAME_M12 + if timeframe == 'M10': + self.tf = 10 # mt5.TIMEFRAME_M10 + if timeframe == 'M6': + self.tf = 6 # mt5.TIMEFRAME_M6 + if timeframe == 'M5': + self.tf = 5 # mt5.TIMEFRAME_M5 + if timeframe == 'M4': + self.tf = 4 # mt5.TIMEFRAME_M4 + if timeframe == 'M3': + self.tf = 3 # mt5.TIMEFRAME_M3 + if timeframe == 'M2': + self.tf = 2 # mt5.TIMEFRAME_M2 + if timeframe == 'M1': + self.tf = 1 # mt5.TIMEFRAME_M1 + + return self.tf + + def get_broker_instrument_name(self, + instrumentname: str = '') -> str: + self.intrumentname = instrumentname + try: + # str result = + # (string)self.instrument_conversion_list.get(str(instrumentname)) + return self.instrument_conversion_list.get(str(instrumentname)) + except BaseException: + return 'none' + + def get_universal_instrument_name(self, + instrumentname: str = '') -> str: + self.instrumentname = instrumentname + try: + for item in self.instrument_conversion_list: + key = str(item) + value = self.instrument_conversion_list.get(item) + if (value == instrumentname): + return str(key) + except BaseException: + return 'none' + return 'none' + + def create_empty_DataFrame(self, + columns, index_col) -> pd.DataFrame: + index_type = next((t for name, t in columns if name == index_col)) + df = pd.DataFrame({name: pd.Series(dtype=t) for name, + t in columns if name != index_col}, + index=pd.Index([], + dtype=index_type)) + cols = [name for name, _ in columns] + cols.remove(index_col) + return df[cols] + + columnsOpenOrders = [ + ('id', int), + ('ticket', int), + ('instrument', str), + ('order_type', str), + ('magic_number', int), + ('volume', float), + ('open_price', float), + ('open_time', int), + ('stop_loss', float), + ('take_profit', float), + ('comment', str)] + + columnsDeletedOrders = [ + ('id', int), + ('ticket', int), + ('instrument', str), + ('order_type', str), + ('magic_number', int), + ('volume', float), + ('open_price', float), + ('open_time', int), + ('stop_loss', float), + ('take_profit', float), + ('delete_price', float), + ('delete_time', int), + ('comment', str)] + + columnsOpenPositions = [ + ('id', int), + ('ticket', int), + ('instrument', float), + ('order_ticket', int), + ('position_type', str), + ('magic_number', int), + ('volume', float), + ('open_price', float), + ('open_time', int), + ('stop_loss', float), + ('take_profit', float), + ('comment', str), + ('profit', float), + ('swap', float), + ('commission', float)] + + columnsClosedPositions = [ + ('id', int), + ('ticket', int), + ('instrument', str), + ('order_ticket', int), + ('position_type', str), + ('magic_number', int), + ('volume', float), + ('open_price', float), + ('open_time', int), + ('stop_loss', float), + ('take_profit', float), + ('close_price', float), + ('close_time', int), + ('comment', str), + ('profit', float), + ('swap', float), + ('commission', float)] + + columnsLogInfo = [ + ('id', int), + ('index', int), + ('time', str), + ('comment', str) ] + + From b59362b7f56575017e047199defc3a15830a8ca2 Mon Sep 17 00:00:00 2001 From: Emonts <64263524+Branly76@users.noreply.github.com> Date: Fri, 16 Aug 2024 18:16:58 +0200 Subject: [PATCH 3/3] Add files via upload --- Pytrader_MT5_EA_V3.02b.ex5 | Bin 0 -> 249712 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Pytrader_MT5_EA_V3.02b.ex5 diff --git a/Pytrader_MT5_EA_V3.02b.ex5 b/Pytrader_MT5_EA_V3.02b.ex5 new file mode 100644 index 0000000000000000000000000000000000000000..012fc723a9a65a7930066049031fd807f6a82f59 GIT binary patch literal 249712 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�#WC_s{X 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

0bi9F$`hw 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

tVa357ebx0N)2cC}W znj7h|GC-QbK7O;a5891P(D}Kh<`i62+7 ziH}>_>SU>e5DT0N{2E*>|6LbumW&k~q1yVUhAxwn$rGE=*6G>Wq5FM{&|r2(dsR=X zJW-iOZ8eAYEr;NfwaQDElF>2(h$Se>c)WAa20d5NK$9= zQFMwLE>lDSH#N1q$k~QhusyXVFX**zLV_kV|0{3UqBssCT7nIMZ9Q}m zfe!XkAW4%aG~+IrKD>?vQ-2hGLsolP7(69$W%S|>z^|Z>{!T&!lk=u3%w2YJNumr# zd9tq)@N!RBRG%Y?THWK$d*xYr2yJS97agdZwSAW0>fE$dFXk}#;^}=Zrc$5BogWyM zBCh=~>pcUrQ_T;58L?dwBTf|#Nm}jp&Ik)J*6*L#QiRVKo2Wd7Q@SKrazNN}E6K(9 z762l@RLs7O8J_tI#M!rbm3m9XCoC^^9Nh*PYOQopcRO>wlF1 zz5@;QPLWgI1z1`?62E~uArcpi87ZnTMnB{xu!9M;gKp*U6oM}Riv8OlKo*I?SQTm9 zoxVJ)R8E^#vO@Q5J36XiIng&4dY;&K#j#%+{<5{teAJr*!rOd1Zh)Q1?ecs3%W;Mk zMID}5J!;7%e4zHGfX9+VM`m@dwg_{_hKL_0YDO!_Q!jS-xFhAm8U}JnfVg!rht>#< zqv9n@%x@RD<;7J!ht{ES`NQVN+y&2eN>%x*pBx*Jc_As(jQ}v?`&~Z=0H?|AvA6y| z&`ebThaNQw6PsYz98y@W?o*5N2N5M^^yeayxIb;_qPgvw35V;M|HayIO z9{U#aO&cnkTrlJAx}`_kVZVJ09wjKliKuv=ZXyyAR>(@YwywKovnB=?dC2spw-l|0 z-if!k)@PMWw4y*E$^}diM=z_ibncDcs3zEu?V;6*N;a(liW8F$?bi#Kx53LzW zzZXI@a$Ee$|NX-twN(}V?ug{eI?K?YK+XOnQc?tZEX!V5I&QFW70z~ZkMlQDxrjRl zgN>K4gYzR0%gwwjM*5;u!6XF3_>brD%jw1l?Joz&=k~eX?Qjw44m#Bm>Y`K%8g43D zAIu-zkLLQPj`Y)$W-Ri_8GZC6rS>eB43|C@kzsl}nFA*^OG-#%Cpf!0mCH~IwpOFr z9Jnk7NLv;wlUD={0Pcb1)|-)kMfA&-tBHL}YX`=g#>xg}?eQi&)bg!0I$E=wTFqOW z@B_9e%p1UJENm?rwu{){QXdrm5l97fS7aQOLN_{Z+3kEGy!wULFYYZ!mJme6M5S3U z5jc`14Dk?#_Cq2z??|>JMl2n7INo25SBT zPj0vr>5wDf{G@)D97F&w5lT=h&4@~SxP03vC+Z#Yi)DA)aEF-;y$7E`*=mJQ13Ta^ z3OOBp!X5E~eDH7TGogcgNiBwe19mKm?3~cBoSlpvxBp-vpnWX`!J4}LaVnxhmDvxi z&{DV;Q+1?hXR0wU|6c3Nw5a}MT$%Xel8>a9_1Kr^rqBX8OP)quVkl@G^csdzU_46d zB9L_yFHj@%y|JEi*bcMM@--eqU0k(FIF~_2D|K7-f#thPZ5{^*2y`!cMG4_YwwSlA zFp$>u1B@n0QK6d7URZu5%4NtAfEW-W_McEJ-qSW^95Fz{glr+K5ScHy{EB_NMZ)}t z$RZQ!lCPCR7)q1)lQ<>ibvMW#ur~<@+?4?G6Ke*C?%5Cmv$kalCXbm%A$AlfS|6l= z!-#8bKn5bIPn6BFULQ$0*yZ%9{F-xYfl%ty{en)atMWR@p0m3sX;1jTL2Hy%0AWqS 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 c55b;<2