# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
"""Client and server classes corresponding to protobuf-defined services."""
import grpc

from . import mt5_term_api_market_info_pb2 as mt5__term__api__market__info__pb2


class MarketInfoStub(object):
    """The MarketInfo service provides information about the current state of the market
    """

    def __init__(self, channel):
        """Constructor.

        Args:
            channel: A grpc.Channel.
        """
        self.SymbolsTotal = channel.unary_unary(
                '/mt5_term_api.MarketInfo/SymbolsTotal',
                request_serializer=mt5__term__api__market__info__pb2.SymbolsTotalRequest.SerializeToString,
                response_deserializer=mt5__term__api__market__info__pb2.SymbolsTotalReply.FromString,
                )
        self.SymbolExist = channel.unary_unary(
                '/mt5_term_api.MarketInfo/SymbolExist',
                request_serializer=mt5__term__api__market__info__pb2.SymbolExistRequest.SerializeToString,
                response_deserializer=mt5__term__api__market__info__pb2.SymbolExistReply.FromString,
                )
        self.SymbolName = channel.unary_unary(
                '/mt5_term_api.MarketInfo/SymbolName',
                request_serializer=mt5__term__api__market__info__pb2.SymbolNameRequest.SerializeToString,
                response_deserializer=mt5__term__api__market__info__pb2.SymbolNameReply.FromString,
                )
        self.SymbolSelect = channel.unary_unary(
                '/mt5_term_api.MarketInfo/SymbolSelect',
                request_serializer=mt5__term__api__market__info__pb2.SymbolSelectRequest.SerializeToString,
                response_deserializer=mt5__term__api__market__info__pb2.SymbolSelectReply.FromString,
                )
        self.SymbolIsSynchronized = channel.unary_unary(
                '/mt5_term_api.MarketInfo/SymbolIsSynchronized',
                request_serializer=mt5__term__api__market__info__pb2.SymbolIsSynchronizedRequest.SerializeToString,
                response_deserializer=mt5__term__api__market__info__pb2.SymbolIsSynchronizedReply.FromString,
                )
        self.SymbolInfoDouble = channel.unary_unary(
                '/mt5_term_api.MarketInfo/SymbolInfoDouble',
                request_serializer=mt5__term__api__market__info__pb2.SymbolInfoDoubleRequest.SerializeToString,
                response_deserializer=mt5__term__api__market__info__pb2.SymbolInfoDoubleReply.FromString,
                )
        self.SymbolInfoInteger = channel.unary_unary(
                '/mt5_term_api.MarketInfo/SymbolInfoInteger',
                request_serializer=mt5__term__api__market__info__pb2.SymbolInfoIntegerRequest.SerializeToString,
                response_deserializer=mt5__term__api__market__info__pb2.SymbolInfoIntegerReply.FromString,
                )
        self.SymbolInfoString = channel.unary_unary(
                '/mt5_term_api.MarketInfo/SymbolInfoString',
                request_serializer=mt5__term__api__market__info__pb2.SymbolInfoStringRequest.SerializeToString,
                response_deserializer=mt5__term__api__market__info__pb2.SymbolInfoStringReply.FromString,
                )
        self.SymbolInfoMarginRate = channel.unary_unary(
                '/mt5_term_api.MarketInfo/SymbolInfoMarginRate',
                request_serializer=mt5__term__api__market__info__pb2.SymbolInfoMarginRateRequest.SerializeToString,
                response_deserializer=mt5__term__api__market__info__pb2.SymbolInfoMarginRateReply.FromString,
                )
        self.SymbolInfoTick = channel.unary_unary(
                '/mt5_term_api.MarketInfo/SymbolInfoTick',
                request_serializer=mt5__term__api__market__info__pb2.SymbolInfoTickRequest.SerializeToString,
                response_deserializer=mt5__term__api__market__info__pb2.SymbolInfoTickRequestReply.FromString,
                )
        self.SymbolInfoSessionQuote = channel.unary_unary(
                '/mt5_term_api.MarketInfo/SymbolInfoSessionQuote',
                request_serializer=mt5__term__api__market__info__pb2.SymbolInfoSessionQuoteRequest.SerializeToString,
                response_deserializer=mt5__term__api__market__info__pb2.SymbolInfoSessionQuoteReply.FromString,
                )
        self.SymbolInfoSessionTrade = channel.unary_unary(
                '/mt5_term_api.MarketInfo/SymbolInfoSessionTrade',
                request_serializer=mt5__term__api__market__info__pb2.SymbolInfoSessionTradeRequest.SerializeToString,
                response_deserializer=mt5__term__api__market__info__pb2.SymbolInfoSessionTradeReply.FromString,
                )
        self.MarketBookAdd = channel.unary_unary(
                '/mt5_term_api.MarketInfo/MarketBookAdd',
                request_serializer=mt5__term__api__market__info__pb2.MarketBookAddRequest.SerializeToString,
                response_deserializer=mt5__term__api__market__info__pb2.MarketBookAddReply.FromString,
                )
        self.MarketBookRelease = channel.unary_unary(
                '/mt5_term_api.MarketInfo/MarketBookRelease',
                request_serializer=mt5__term__api__market__info__pb2.MarketBookReleaseRequest.SerializeToString,
                response_deserializer=mt5__term__api__market__info__pb2.MarketBookReleaseReply.FromString,
                )
        self.MarketBookGet = channel.unary_unary(
                '/mt5_term_api.MarketInfo/MarketBookGet',
                request_serializer=mt5__term__api__market__info__pb2.MarketBookGetRequest.SerializeToString,
                response_deserializer=mt5__term__api__market__info__pb2.MarketBookGetReply.FromString,
                )


class MarketInfoServicer(object):
    """The MarketInfo service provides information about the current state of the market
    """

    def SymbolsTotal(self, request, context):
        """Returns the number of available (selected in Market Watch or all) symbols
        https://www.mql5.com/en/docs/marketinformation/symbolstotal
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SymbolExist(self, request, context):
        """Checks if a symbol with a specified name exists
        https://www.mql5.com/en/docs/marketinformation/symbolexist
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SymbolName(self, request, context):
        """Returns the name of a symbol
        https://www.mql5.com/en/docs/marketinformation/symbolname 
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SymbolSelect(self, request, context):
        """Selects a symbol in the Market Watch window or removes a symbol from the window
        https://www.mql5.com/en/docs/marketinformation/symbolselect
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SymbolIsSynchronized(self, request, context):
        """The function checks whether data of a selected symbol in the terminal are synchronized with data on the trade server.
        https://www.mql5.com/en/docs/marketinformation/symbolissynchronized
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SymbolInfoDouble(self, request, context):
        """Returns the corresponding property of a specified symbol. Immediately returns the property value.
        https://www.mql5.com/en/docs/marketinformation/symbolinfodouble
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SymbolInfoInteger(self, request, context):
        """Returns the corresponding property of a specified symbol. 
        https://www.mql5.com/en/docs/marketinformation/symbolinfointeger
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SymbolInfoString(self, request, context):
        """Returns the corresponding property of a specified symbol. Immediately returns the property value
        https://www.mql5.com/en/docs/marketinformation/symbolinfostring  
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SymbolInfoMarginRate(self, request, context):
        """Returns the margin rates depending on the order type and direction
        https://www.mql5.com/en/docs/marketinformation/symbolinfomarginrate
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SymbolInfoTick(self, request, context):
        """The function returns current prices of a specified symbol in a variable of the MqlTick type
        https://www.mql5.com/en/docs/marketinformation/symbolinfotick
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SymbolInfoSessionQuote(self, request, context):
        """Allows receiving time of beginning and end of the specified quoting sessions for a specified symbol and day of week
        https://www.mql5.com/en/docs/marketinformation/symbolinfosessionquote
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SymbolInfoSessionTrade(self, request, context):
        """Allows receiving time of beginning and end of the specified trading sessions for a specified symbol and day of week
        https://www.mql5.com/en/docs/marketinformation/symbolinfosessiontrade
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def MarketBookAdd(self, request, context):
        """Provides opening of Depth of Market for a selected symbol, and subscribes for receiving notifications of the DOM changes
        https://www.mql5.com/en/docs/marketinformation/marketbookadd
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def MarketBookRelease(self, request, context):
        """Provides closing of Depth of Market for a selected symbol, and cancels the subscription for receiving notifications of the DOM changes
        https://www.mql5.com/en/docs/marketinformation/marketbookrelease
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def MarketBookGet(self, request, context):
        """Returns a structure array MqlBookInfo containing records of the Depth of Market of a specified symbol
        https://www.mql5.com/en/docs/marketinformation/marketbookget
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_MarketInfoServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'SymbolsTotal': grpc.unary_unary_rpc_method_handler(
                    servicer.SymbolsTotal,
                    request_deserializer=mt5__term__api__market__info__pb2.SymbolsTotalRequest.FromString,
                    response_serializer=mt5__term__api__market__info__pb2.SymbolsTotalReply.SerializeToString,
            ),
            'SymbolExist': grpc.unary_unary_rpc_method_handler(
                    servicer.SymbolExist,
                    request_deserializer=mt5__term__api__market__info__pb2.SymbolExistRequest.FromString,
                    response_serializer=mt5__term__api__market__info__pb2.SymbolExistReply.SerializeToString,
            ),
            'SymbolName': grpc.unary_unary_rpc_method_handler(
                    servicer.SymbolName,
                    request_deserializer=mt5__term__api__market__info__pb2.SymbolNameRequest.FromString,
                    response_serializer=mt5__term__api__market__info__pb2.SymbolNameReply.SerializeToString,
            ),
            'SymbolSelect': grpc.unary_unary_rpc_method_handler(
                    servicer.SymbolSelect,
                    request_deserializer=mt5__term__api__market__info__pb2.SymbolSelectRequest.FromString,
                    response_serializer=mt5__term__api__market__info__pb2.SymbolSelectReply.SerializeToString,
            ),
            'SymbolIsSynchronized': grpc.unary_unary_rpc_method_handler(
                    servicer.SymbolIsSynchronized,
                    request_deserializer=mt5__term__api__market__info__pb2.SymbolIsSynchronizedRequest.FromString,
                    response_serializer=mt5__term__api__market__info__pb2.SymbolIsSynchronizedReply.SerializeToString,
            ),
            'SymbolInfoDouble': grpc.unary_unary_rpc_method_handler(
                    servicer.SymbolInfoDouble,
                    request_deserializer=mt5__term__api__market__info__pb2.SymbolInfoDoubleRequest.FromString,
                    response_serializer=mt5__term__api__market__info__pb2.SymbolInfoDoubleReply.SerializeToString,
            ),
            'SymbolInfoInteger': grpc.unary_unary_rpc_method_handler(
                    servicer.SymbolInfoInteger,
                    request_deserializer=mt5__term__api__market__info__pb2.SymbolInfoIntegerRequest.FromString,
                    response_serializer=mt5__term__api__market__info__pb2.SymbolInfoIntegerReply.SerializeToString,
            ),
            'SymbolInfoString': grpc.unary_unary_rpc_method_handler(
                    servicer.SymbolInfoString,
                    request_deserializer=mt5__term__api__market__info__pb2.SymbolInfoStringRequest.FromString,
                    response_serializer=mt5__term__api__market__info__pb2.SymbolInfoStringReply.SerializeToString,
            ),
            'SymbolInfoMarginRate': grpc.unary_unary_rpc_method_handler(
                    servicer.SymbolInfoMarginRate,
                    request_deserializer=mt5__term__api__market__info__pb2.SymbolInfoMarginRateRequest.FromString,
                    response_serializer=mt5__term__api__market__info__pb2.SymbolInfoMarginRateReply.SerializeToString,
            ),
            'SymbolInfoTick': grpc.unary_unary_rpc_method_handler(
                    servicer.SymbolInfoTick,
                    request_deserializer=mt5__term__api__market__info__pb2.SymbolInfoTickRequest.FromString,
                    response_serializer=mt5__term__api__market__info__pb2.SymbolInfoTickRequestReply.SerializeToString,
            ),
            'SymbolInfoSessionQuote': grpc.unary_unary_rpc_method_handler(
                    servicer.SymbolInfoSessionQuote,
                    request_deserializer=mt5__term__api__market__info__pb2.SymbolInfoSessionQuoteRequest.FromString,
                    response_serializer=mt5__term__api__market__info__pb2.SymbolInfoSessionQuoteReply.SerializeToString,
            ),
            'SymbolInfoSessionTrade': grpc.unary_unary_rpc_method_handler(
                    servicer.SymbolInfoSessionTrade,
                    request_deserializer=mt5__term__api__market__info__pb2.SymbolInfoSessionTradeRequest.FromString,
                    response_serializer=mt5__term__api__market__info__pb2.SymbolInfoSessionTradeReply.SerializeToString,
            ),
            'MarketBookAdd': grpc.unary_unary_rpc_method_handler(
                    servicer.MarketBookAdd,
                    request_deserializer=mt5__term__api__market__info__pb2.MarketBookAddRequest.FromString,
                    response_serializer=mt5__term__api__market__info__pb2.MarketBookAddReply.SerializeToString,
            ),
            'MarketBookRelease': grpc.unary_unary_rpc_method_handler(
                    servicer.MarketBookRelease,
                    request_deserializer=mt5__term__api__market__info__pb2.MarketBookReleaseRequest.FromString,
                    response_serializer=mt5__term__api__market__info__pb2.MarketBookReleaseReply.SerializeToString,
            ),
            'MarketBookGet': grpc.unary_unary_rpc_method_handler(
                    servicer.MarketBookGet,
                    request_deserializer=mt5__term__api__market__info__pb2.MarketBookGetRequest.FromString,
                    response_serializer=mt5__term__api__market__info__pb2.MarketBookGetReply.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'mt5_term_api.MarketInfo', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


 # This class is part of an EXPERIMENTAL API.
class MarketInfo(object):
    """The MarketInfo service provides information about the current state of the market
    """

    @staticmethod
    def SymbolsTotal(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/mt5_term_api.MarketInfo/SymbolsTotal',
            mt5__term__api__market__info__pb2.SymbolsTotalRequest.SerializeToString,
            mt5__term__api__market__info__pb2.SymbolsTotalReply.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SymbolExist(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/mt5_term_api.MarketInfo/SymbolExist',
            mt5__term__api__market__info__pb2.SymbolExistRequest.SerializeToString,
            mt5__term__api__market__info__pb2.SymbolExistReply.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SymbolName(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/mt5_term_api.MarketInfo/SymbolName',
            mt5__term__api__market__info__pb2.SymbolNameRequest.SerializeToString,
            mt5__term__api__market__info__pb2.SymbolNameReply.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SymbolSelect(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/mt5_term_api.MarketInfo/SymbolSelect',
            mt5__term__api__market__info__pb2.SymbolSelectRequest.SerializeToString,
            mt5__term__api__market__info__pb2.SymbolSelectReply.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SymbolIsSynchronized(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/mt5_term_api.MarketInfo/SymbolIsSynchronized',
            mt5__term__api__market__info__pb2.SymbolIsSynchronizedRequest.SerializeToString,
            mt5__term__api__market__info__pb2.SymbolIsSynchronizedReply.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SymbolInfoDouble(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/mt5_term_api.MarketInfo/SymbolInfoDouble',
            mt5__term__api__market__info__pb2.SymbolInfoDoubleRequest.SerializeToString,
            mt5__term__api__market__info__pb2.SymbolInfoDoubleReply.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SymbolInfoInteger(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/mt5_term_api.MarketInfo/SymbolInfoInteger',
            mt5__term__api__market__info__pb2.SymbolInfoIntegerRequest.SerializeToString,
            mt5__term__api__market__info__pb2.SymbolInfoIntegerReply.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SymbolInfoString(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/mt5_term_api.MarketInfo/SymbolInfoString',
            mt5__term__api__market__info__pb2.SymbolInfoStringRequest.SerializeToString,
            mt5__term__api__market__info__pb2.SymbolInfoStringReply.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SymbolInfoMarginRate(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/mt5_term_api.MarketInfo/SymbolInfoMarginRate',
            mt5__term__api__market__info__pb2.SymbolInfoMarginRateRequest.SerializeToString,
            mt5__term__api__market__info__pb2.SymbolInfoMarginRateReply.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SymbolInfoTick(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/mt5_term_api.MarketInfo/SymbolInfoTick',
            mt5__term__api__market__info__pb2.SymbolInfoTickRequest.SerializeToString,
            mt5__term__api__market__info__pb2.SymbolInfoTickRequestReply.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SymbolInfoSessionQuote(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/mt5_term_api.MarketInfo/SymbolInfoSessionQuote',
            mt5__term__api__market__info__pb2.SymbolInfoSessionQuoteRequest.SerializeToString,
            mt5__term__api__market__info__pb2.SymbolInfoSessionQuoteReply.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SymbolInfoSessionTrade(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/mt5_term_api.MarketInfo/SymbolInfoSessionTrade',
            mt5__term__api__market__info__pb2.SymbolInfoSessionTradeRequest.SerializeToString,
            mt5__term__api__market__info__pb2.SymbolInfoSessionTradeReply.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def MarketBookAdd(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/mt5_term_api.MarketInfo/MarketBookAdd',
            mt5__term__api__market__info__pb2.MarketBookAddRequest.SerializeToString,
            mt5__term__api__market__info__pb2.MarketBookAddReply.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def MarketBookRelease(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/mt5_term_api.MarketInfo/MarketBookRelease',
            mt5__term__api__market__info__pb2.MarketBookReleaseRequest.SerializeToString,
            mt5__term__api__market__info__pb2.MarketBookReleaseReply.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def MarketBookGet(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/mt5_term_api.MarketInfo/MarketBookGet',
            mt5__term__api__market__info__pb2.MarketBookGetRequest.SerializeToString,
            mt5__term__api__market__info__pb2.MarketBookGetReply.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
