Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
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())
Ejemplo n.º 3
0
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
Ejemplo n.º 5
0
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
Ejemplo n.º 6
0
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
Ejemplo n.º 7
0
    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())
Ejemplo n.º 8
0
    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())
Ejemplo n.º 9
0
    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
Ejemplo n.º 10
0
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
Ejemplo n.º 11
0
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)
Ejemplo n.º 12
0
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))
Ejemplo n.º 13
0
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))
Ejemplo n.º 14
0
# 显示有关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)