Public/MT4/Get-MT4ReportsRequest.ps1

function Get-MT4ReportsRequest {
    <#
    .SYNOPSIS
        Get closed-trade reports
    #>

    [CmdletBinding()]
    param(
        [Parameter()][string] $TradePlatform,
        [Parameter()][string] $From,
        [Parameter()][string] $To,
        [Parameter()][int[]] $Logins,
        [Parameter()][string] $Name,
        [Parameter()][Nullable[guid]] $CacheId,
        [Parameter()][int] $CacheTimeout,
        [Parameter()][string] $IdempotencyKey
    )
    $q = @{}
    if ($PSBoundParameters.ContainsKey('From')) { $q['from'] = $From }
    if ($PSBoundParameters.ContainsKey('To')) { $q['to'] = $To }
    if ($PSBoundParameters.ContainsKey('Logins')) { $q['logins'] = $Logins }
    if ($PSBoundParameters.ContainsKey('Name')) { $q['name'] = $Name }
    $reqArgs = @{ Method = 'Get'; Path = "/api/v2/MT4/{tradePlatform}/ReportsRequest"; TradePlatform = $TradePlatform; Query = $q }
    if ($PSBoundParameters.ContainsKey('CacheId')) { $reqArgs.CacheId = $CacheId }
    if ($PSBoundParameters.ContainsKey('CacheTimeout')) { $reqArgs.CacheTimeout = $CacheTimeout }
    if ($PSBoundParameters.ContainsKey('IdempotencyKey')) { $reqArgs.IdempotencyKey = $IdempotencyKey }
    Invoke-MyWebApiRequest @reqArgs
}