Skip to content

PowerShell

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

$headers=@{}
$headers.Add("Accept", "application/json")
$response = Invoke-WebRequest -Uri 'http://127.0.0.1:81/v1/quote?symbol=EURUSD' -Method GET -Headers $headers

Example 2: Send buy order

$headers=@{}
$headers.Add("Content-Type", "application/json")
$headers.Add("Accept", "application/json")
$response = Invoke-WebRequest -Uri 'http://127.0.0.1:81/v1/order?symbol=EURUSD&volume=0.01&type=ORDER_TYPE_BUY' -Method POST -Headers $headers

Example 3: Stream EURUSD price using websockets

$headers=@{}
$headers.Add("Content-Type", "application/json")
$headers.Add("Accept", "application/json")
$response = Invoke-RestMethod -Uri 'http://127.0.0.1:81/v1/track/prices?symbols=EURUSD' -Method POST -Headers $headers

#Show the response to see if the request was successful
$response | ConvertTo-Json

# Configure WebSocket URI
$uri = [System.Uri]::new("ws://127.0.0.1:81")

# Create WebSocket client
$client = [System.Net.WebSockets.ClientWebSocket]::new()

# Connect to server
try {
    Write-Host "Connecting to $uri..."
    $client.ConnectAsync($uri, [System.Threading.CancellationToken]::None).Wait()
}
catch {
    Write-Host "Connection error: $_" -ForegroundColor Red
    exit
}

# Receive buffer and message container
$buffer = New-Object byte[] 4096
$result = ""

try {
    Write-Host "Connected. Waiting for data (Press Ctrl+C to exit)..." -ForegroundColor Green

    # Main receive loop
    while ($client.State -eq 'Open') {
        # Receive data chunk
        $receiveResult = $client.ReceiveAsync(
            [System.ArraySegment[byte]]$buffer,
            [System.Threading.CancellationToken]::None
        ).GetAwaiter().GetResult()

        # Decode UTF-8 message
        $result += [System.Text.Encoding]::UTF8.GetString($buffer, 0, $receiveResult.Count)

        # Display complete messages
        if ($receiveResult.EndOfMessage) {
            Write-Host "Received data: $result"
            $result = ""
        }
    }
}
finally {
    # Cleanup connection
    if ($client.State -eq 'Open') {
        $client.CloseAsync(
            [System.Net.WebSockets.WebSocketCloseStatus]::NormalClosure,
            "Client closing connection",
            [System.Threading.CancellationToken]::None
        ).GetAwaiter().GetResult()
    }
    $client.Dispose()
}