metaapi.cloud-sdk
Version:
SDK for MetaApi, a professional cloud forex API which includes MetaTrader REST API and MetaTrader websocket API. Supports both MetaTrader 5 (MT5) and MetaTrader 4 (MT4). CopyFactory copy trading API included. (https://metaapi.cloud)
192 lines (158 loc) • 4.37 kB
TypeScript
import MetatraderAccountApi from "./metatraderAccountApi"
import ProvisioningProfileApi from "./provisioningProfileApi"
import MetatraderAccountGeneratorApi from "./metatraderAccountGeneratorApi"
import LatencyMonitor from "./latencyMonitor"
import { SynchronizationThrottlerOpts } from "../clients/metaApi/synchronizationThrottler"
import { PacketLoggerOpts } from "../clients/metaApi/packetLogger"
import TokenManagementApi from "./tokenManagementApi"
/**
* MetaApi MetaTrader API SDK
*/
export default class MetaApi {
/**
* Enables using Log4js logger with extended log levels for debugging instead of
* console.* functions. Note that log4js configuration performed by the user.
*/
static enableLog4jsLogging(): void;
/**
* Constructs MetaApi class instance
* @param {string} token authorization token
* @param {MetaApiOpts} opts application options
*/
constructor(token: string, opts?: MetaApiOpts);
/**
* Returns provisioning profile API
* @returns {ProvisioningProfileApi} provisioning profile API
*/
get provisioningProfileApi(): ProvisioningProfileApi;
/**
* Returns MetaTrader account API
* @return {MetatraderAccountApi} MetaTrader account API
*/
get metatraderAccountApi(): MetatraderAccountApi;
/**
* Returns MetaTrader account generator API
* @return {MetatraderAccountGeneratorApi} MetaTrader account generator API
*/
get metatraderAccountGeneratorApi(): MetatraderAccountGeneratorApi;
/**
* Returns MetaApi application latency monitor
* @return {LatencyMonitor} latency monitor
*/
get latencyMonitor(): LatencyMonitor;
/**
* Returns token management API
* @returns {TokenManagementApi} token management API
*/
get tokenManagementApi(): TokenManagementApi;
/**
* Closes all clients and connections and stops all internal jobs
*/
close(): void;
}
/**
* MetaApi options
*/
export declare type MetaApiOpts = {
/**
* application id
*/
application?: string,
/**
* domain to connect to, default is agiliumtrade.agiliumtrade.ai
*/
domain?: string,
/**
* region to connect to
*/
region?: string,
/**
* timeout for socket requests in seconds
*/
requestTimeout?: number,
/**
* timeout for connecting to server in seconds
*/
connectTimeout?: number,
/**
* packet ordering timeout in seconds
*/
packetOrderingTimeout?: number,
/**
* packet logger options
*/
packetLogger?: PacketLoggerOpts,
/**
* an option to enable latency tracking
*/
enableLatencyMonitor?: boolean,
/**
* an option to enable latency tracking
*/
enableLatencyTracking?: boolean,
/**
* options for synchronization throttler
*/
synchronizationThrottler?: SynchronizationThrottlerOpts,
/**
* options for request retries
*/
retryOpts?: RetryOpts,
/**
* option to use a shared server
*/
useSharedClientApi?: boolean,
/**
* subscriptions refresh options
*/
refreshSubscriptionsOpts?: RefreshSubscriptionsOpts,
/**
* a timeout in seconds for throttling repeat unsubscribe
* requests when synchronization packets still arrive after unsubscription, default is 10 seconds
*/
unsubscribeThrottlingIntervalInSeconds?: number,
/**
* MT account generator API request timeout. Default is 4 minutes
*/
accountGeneratorRequestTimeout?: number,
/**
* if set to true, unused data will not be cleared (for use in debugging)
*/
keepHashTrees?: boolean
}
/**
* Subscriptions refresh options
*/
export declare type RefreshSubscriptionsOpts = {
/**
* minimum delay in seconds until subscriptions refresh request,
* default value is 1
*/
minDelayInSeconds?: number,
/**
* maximum delay in seconds until subscriptions refresh request,
* default value is 600
*/
maxDelayInSeconds?: number
}
/**
* Request retry options
*/
export declare type RetryOpts = {
/**
* maximum amount of request retries, default value is 5
*/
retries?: number,
/**
* minimum delay in seconds until request retry, default value is 1
*/
minDelayInSeconds?: number,
/**
* timeout in minutes for long running requests, default 10
*/
longRunningRequestTimeoutInMinutes?: number,
/**
* maximum delay in seconds until request retry, default value is 30
*/
maxDelayInSeconds?: number
}