def connect(account=None, passw=None): #if not b3.connect(): #print(“Error on connection”, b3.last_error()) #exit(): if account == None and passw == None: res = mt5.initialize() else: res = mt5.initialize(login=account, password=passw) global ac, path, datapath, commonDatapath, company, platform, connected info = mt5.account_info() if info.margin_so_mode != mt5.ACCOUNT_MARGIN_MODE_RETAIL_NETTING: print( "It is NOT netting, but B3 should be netting trade mode!! Error!!" ) # B3 is Netting!! return False #elif info.margin_so_mode ==mt5.ACCOUNT_MARGIN_MODE_RETAIL_HEDGING: # print("It is hedding, not netting") #else: # print("It is something elese!!") #if info.margin_so_mode ==mt5.ACCOUNT_MARGIN_MODE_RETAIL_NETTING: # print("It is netting, not hedding") # B3 is Netting!! #elif info.margin_so_mode ==mt5.ACCOUNT_MARGIN_MODE_RETAIL_HEDGING: # print("It is hedding, not netting") #else: # print("It is something elese!!") if res: ac = mt5.terminal_info() path = ac.path datapath = ac.data_path commonDatapath = ac.commondata_path company = ac.company platform = ac.name connected = True return res
def print_terminal_info(): # request connection status and parameters print(mt5.terminal_info()) # request account info print(mt5.account_info()) # get data on MetaTrader 5 version print(mt5.version())
def terminal_info(): if not connected: print( "In order to use this function, you must be connected to the . Use function connect()" ) return term_info = mt5.terminal_info() return term_info
def __init__(self,symbol:str): # conecte-se ao MetaTrader 5 if not mt5.initialize(): print("initialize() failed") mt5.shutdown() # consultamos o estado e os parâmetros de conexão print(mt5.terminal_info()) # obtemos informações sobre a versão do MetaTrader 5 print(mt5.version()) self.symbol = symbol
def connect(): #if not se.connect(): #print(“Error on connection”, se.last_error()) #exit(): res = mt5.initialize() if not res: ac = mt5.terminal_info() path = ac.path datapath = ac.data_path commonDatapath = ac.commondata_path company = x.company platform = x.name return res
def connect(account=None, passw=None, mt5path=None): #if not se.connect(): #print(“Error on connection”, se.last_error()) #exit(): if account is None and passw is None: if mt5path is None: res = mt5.initialize() else: res = mt5.initialize(mt5path) else: account = int(account) if mt5path is None: res = mt5.initialize(login=account, password=passw) else: res = mt5.initialize(mt5path, login=account, password=passw) global ac, path, datapath, commonDatapath, company, platform, connected if res != True: if account is None: print('Error trying to connect to last account!!', ' Error code:', mt5.last_error()) else: print('Error trying to connect to account: ', account, ' Error code:', mt5.last_error()) return False info = mt5.account_info() if info.margin_so_mode != mt5.ACCOUNT_MARGIN_MODE_RETAIL_NETTING: print( "It is NOT netting, but the stock exchange should be netting trade mode!! Error!!" ) # B3 is also Netting!! return False #elif info.margin_so_mode ==mt5.ACCOUNT_MARGIN_MODE_RETAIL_HEDGING: # print("It is hedding, not netting") #else: # print("It is something elese!!") #if info.margin_so_mode ==mt5.ACCOUNT_MARGIN_MODE_RETAIL_NETTING: # print("It is netting, not hedding") # se is Netting!! #elif info.margin_so_mode ==mt5.ACCOUNT_MARGIN_MODE_RETAIL_HEDGING: # print("It is hedding, not netting") #else: # print("It is something elese!!") if res: ac = mt5.terminal_info() path = ac.path datapath = ac.data_path commonDatapath = ac.commondata_path company = ac.company platform = ac.name connected = True return res
def __init__(self, buyingCurrency, sellingCurrency, timeFrame, lotSize, cycleTime): logging.basicConfig(format='%(asctime)s,%(levelname)s,%(message)s', datefmt='%m/%d/%Y,%H:%M:%S') self.timeFrame = timeFrame self.logger = logging.getLogger('TraderLog') self.logger.setLevel(logging.DEBUG) self.advisorsList = list() if not mt5.initialize(): logger.error("initialize() failed, error code =" + mt5.last_error()[2]) mt5.shutdown() raise Exception(errorMsg) # request connection status and parameters print(mt5.terminal_info()) # get data on MetaTrader 5 version print(mt5.version())
def __init__(self): # Connect to MetaTrader5. Opens if not already open. # Logger self.__log = logging.getLogger(__name__) # Open MT5 and log error if it could not open if not MetaTrader5.initialize(): self.__log.error("initialize() failed") MetaTrader5.shutdown() # Print connection status self.__log.debug(MetaTrader5.terminal_info()) # Print data on MetaTrader 5 version self.__log.debug(MetaTrader5.version())
def init_terminal(self): print(Fore.YELLOW+'starting MetaTrader5 Terminal...') if not mt5.initialize(): print(Fore.RED+'failed to initialize with error:',mt5.last_error()) mt5.shutdown() os.system('taskkill /f /im terminal64.exe') return False else: print(Fore.GREEN+'MT5 terminal connected successfully!\n') print(Style.RESET_ALL) print(Back.GREEN+'TERMINAL INFORMATION') print(Style.RESET_ALL) for k,v in mt5.terminal_info()._asdict().items(): print('{:>50}'.format(k),v) return True
def inicializa_servidor_MT5(tipo_saida) -> bool: file_relat = define_saida_print(tipo_saida) isInitialized = False try: isInitialized = mt5.initialize() # initialize MetaTrader 5 except RuntimeError: print( "### ERRO ### Não consegiu logar no MT5, verifique credenciais...\n" ) return False if not isInitialized: print('### ERRO ### Não conseguiu inicializar o MT5...\n', file=file_relat) else: print('### OK ### MT5 inicializado com sucesso...\n', file=file_relat) # request connection status and parameters print(mt5.terminal_info(), "\n", file=file_relat) # get data on MetaTrader 5 version listaMT5 = mt5.version() print('Versão MT5 :', listaMT5[1], ' Data:', listaMT5[2], '\n', file=file_relat) return isInitialized
import pandas as pd from pandas.plotting import register_matplotlib_converters register_matplotlib_converters() import MetaTrader5 as mt5 account=40513145 authorized=mt5.login(account, password="******") # connect to MetaTrader 5 if not mt5.initialize(): mt5.initialize() # request connection status and parameters print(mt5.terminal_info()) # get data on MetaTrader 5 version print(mt5.version()) start_date=datetime(2021,1,27,10) end_date=datetime(2021,1,27,11) # request 1000 ticks from EURAUD #datetime(year,month,day,hour) euraud_ticks = mt5.copy_ticks_from("EURAUD", start_date, 1000, mt5.COPY_TICKS_ALL) # request ticks from AUDUSD within 2019.04.01 13:00 - 2019.04.02 13:00 audusd_ticks = mt5.copy_ticks_range("AUDUSD", start_date, end_date, mt5.COPY_TICKS_ALL) # get bars from different symbols in a number of ways eurusd_rates = mt5.copy_rates_from("EURUSD", mt5.TIMEFRAME_M1,start_date, 1000) eurgbp_rates = mt5.copy_rates_from_pos("EURGBP", mt5.TIMEFRAME_M1, 0, 1000)
import MetaTrader5 as mt5 #____________Initializing Metatrader5____________# mt5.initialize() print(mt5.version(), '\n') print(mt5.terminal_info(), '\n') print(mt5.account_info(), '\n') order = mt5.orders_get() #getting all pending orders #____________Calculating required Margin_________________# margin = mt5.order_calc_margin( mt5.ORDER_TYPE_BUY, order[0].symbol, order[0].volume_initial, order[0].price_open) #returns required margin in account currency print('\nMargin requirement for buying {0} @ {1} is ${2}'.format( order[0].symbol, order[0].price_open, margin)) #____________Calculating Profit/loss_____________# volatility = float(input('Enter the desired volatility in percentage: ')) percentage = volatility * (order[0].price_open / 100) profit = mt5.order_calc_profit( mt5.ORDER_TYPE_BUY, order[0].symbol, order[0].volume_initial, order[0].price_open, (order[0].price_open + percentage)) #returns potential P/L in account currency print('\n Profit on {0} at {1} with {2}% volatility is ${3}'.format( order[0].symbol, order[0].price_open, volatility, profit))
import MetaTrader5 as mt5 import pandas as pd mt5.initialize() #Connecting the program to MT5 print(mt5.version(), '\n') #Version info of MT5 software #___________Creating a terminal info dictionary____________# trm_dict = mt5.terminal_info()._asdict() #status info of the MT5 terminal for i in trm_dict: print("{0}: {1}".format(i, trm_dict[i])) #____________Creating an account info dictionary____________# account_dict = mt5.account_info()._asdict() #various information of the loggedin account for i in account_dict: print(i, ':', account_dict[i]) #_______________puttng info in a pandas DataFrame_______________# account_df = pd.DataFrame(list(account_dict.items()), columns=['property', 'value']) trm_df = pd.DataFrame(list(trm_dict.items()), columns=['property', 'value']) #_________________Brokerage account Login example_________________________# '''SYNTAX: mt5.login(loginID, server='server_name', password='******')''' loginID = 14000510 authentication = mt5.login(loginID, server='MetaQuotes-Demo', password='******') if authentication: print(mt5.account_info()) else: print("failed to login to trade account {0}".format(loginID))
# 显示有关MetaTrader 5程序包的数据 print("MetaTrader5 package author: ", mt5.__author__) print("MetaTrader5 package version: ", mt5.__version__) # 显示有关MetaTrader 5程序包的数据 print("MetaTrader5 package author: ", mt5.__author__) print("MetaTrader5 package version: ", mt5.__version__) # 建立与MetaTrader 5程序端的连接 if not mt5.initialize(): print("initialize() failed, error code =", mt5.last_error()) quit() # 显示有关MetaTrader 5版本的数据 print(mt5.version()) # 显示有关程序端设置和状态的信息 terminal_info = mt5.terminal_info() if terminal_info != None: # display the terminal data 'as is' print(terminal_info) # display data in the form of a list print("Show terminal_info()._asdict():") terminal_info_dict = mt5.terminal_info()._asdict() for prop in terminal_info_dict: print(" {}={}".format(prop, terminal_info_dict[prop])) print() # 将词典转换为DataFrame和print df = pd.DataFrame(list(terminal_info_dict.items()), columns=['property', 'value']) print("terminal_info() as dataframe:") print(df)