Skip to content

C#

Important

All these source codes are only examples used for testing. We don't provide any guarantee or responsibility about it. Use these examples at your own risk.

Generate source code instantly

Select your desired programming language via our web interface to automatically retrieve code:

MTsocketAPI source code

Example 1: Get EURUSD price

using System.Net.Http.Headers;

var client = new HttpClient();
var request = new HttpRequestMessage
{
    Method = HttpMethod.Get,
    RequestUri = new Uri("http://127.0.0.1:81/v1/quote?symbol=EURUSD"),
    Headers =
    {
        { "Accept", "application/json" },
    },
};

using (var response = await client.SendAsync(request))
{
    response.EnsureSuccessStatusCode();
    var body = await response.Content.ReadAsStringAsync();
    Console.WriteLine(body);
}

Example 2: Send buy order

using System.Net.WebSockets;
using System.Text;

var client = new HttpClient();
var request = new HttpRequestMessage
{
    Method = HttpMethod.Post,
    RequestUri = new Uri("http://127.0.0.1:81/v1/order?symbol=EURUSD&volume=0.01&type=ORDER_TYPE_BUY"),
    Headers =
    {
        { "Accept", "application/json" },
    },
};

using (var response = await client.SendAsync(request))
{
    response.EnsureSuccessStatusCode();
    var body = await response.Content.ReadAsStringAsync();
    Console.WriteLine(body);
}

Example 3: Stream EURUSD price using websockets

var wsUrl = "ws://127.0.0.1:81";
using var clientWS = new ClientWebSocket();

try
{

    var client = new HttpClient();
    var request = new HttpRequestMessage
    {
        Method = HttpMethod.Post,
        RequestUri = new Uri("http://127.0.0.1:81/v1/track/prices?symbols=EURUSD"),
        Headers =
        {
            { "Accept", "application/json" },
        },
    };

    using (var response = await client.SendAsync(request))
    {
        response.EnsureSuccessStatusCode();
        var body = await response.Content.ReadAsStringAsync();
        Console.WriteLine(body);
    }

    // Connect to WebSocket server
    await clientWS.ConnectAsync(new Uri(wsUrl), CancellationToken.None);
    Console.WriteLine($"Connected to {wsUrl}");

    // Start receiving messages
    var buffer = new byte[4096];
    while (clientWS.State == WebSocketState.Open)
    {
        var result = await clientWS.ReceiveAsync(buffer, CancellationToken.None);

        if (result.MessageType == WebSocketMessageType.Close)
        {
            await clientWS.CloseAsync(WebSocketCloseStatus.NormalClosure,
                                  "Closing",
                                   CancellationToken.None);
            break;
        }

        // Handle message
        var message = Encoding.UTF8.GetString(buffer, 0, result.Count);
        Console.WriteLine($"Received: {message}");
    }
}
catch (Exception ex)
{
    Console.WriteLine($"Error: {ex.Message}");
}
finally
{
    if (clientWS.State == WebSocketState.Open)
    {
        await clientWS.CloseAsync(WebSocketCloseStatus.NormalClosure,
                              "Client closing",
                               CancellationToken.None);
    }
}