MT4 manager gRPC API dot net client example

MT4 manager gRPC API dot net client example

API methods browser

MT4 manager proto file

Install dot net 6 SDK to run an example

This example has a dynamic client libraries generation provided by grpc tools nuget.

Once you run a dotnet build command, libraries would be generated in the bin/debug/net6.0 folder.

You can use a reference to it in you code.

Input your credentials for server, before runnig

Ready to run example.

using Grpc.Net.Client;
using Mng4Grpc;

var channel = GrpcChannel.ForAddress("");
var mainControllerClient = new MainController.MainControllerClient(channel);
var connectionResponse = mainControllerClient.Connect(new ConnectRequest()
    Password = "",
    User = 1,
    Server = "",
if (connectionResponse.Error != null)
    throw new Exception(connectionResponse.Error.Message);

Console.WriteLine("Connect response: " + connectionResponse.Result);

var accountsListReply = mainControllerClient.AccountsList(new AccountsRequest()
    Id = connectionResponse.Result

if (accountsListReply.Error != null)
    throw new Exception(accountsListReply.Error.Message);

var accountIds = accountsListReply.Result;
Console.WriteLine($"Accounts found: {accountIds?.Count.ToString() ?? 0.ToString()}");
if (accountIds != null)
    foreach (var accountId in accountIds)
        Console.WriteLine($"Account id: {accountId.ToString()}");
        var accountDetailsReply = mainControllerClient.AccountDetails(new AccountDetailsRequest()
            Id = connectionResponse.Result,
            Login = accountId
        if (accountDetailsReply.Error != null)
            throw new Exception(accountDetailsReply.Error.Message);

        var accountDetails = accountDetailsReply.Result;
        if (accountDetails != null)
            Console.WriteLine($"Account name: {accountDetails.Name}");
            Console.WriteLine($"Account credit: {accountDetails.Credit}");
            Console.WriteLine($"Account balance: {accountDetails.Balance}");
            Console.WriteLine($"Account status: {accountDetails.Status}");

Leave a Reply

Your email address will not be published. Required fields are marked *