Skip to content

Latest commit

 

History

History
90 lines (75 loc) · 2.5 KB

File metadata and controls

90 lines (75 loc) · 2.5 KB

MetaApi REST Terminal API

$terminal = $metaapi->terminal(region: 'london');

The REST terminal API is grouped by resource:

$terminal->state();
$terminal->history();
$terminal->marketData();
$terminal->margin();
$terminal->trading();
$terminal->credits();

Read trading terminal state:

$terminal->state()->accountInformation('account-id');
$terminal->state()->positions('account-id');
$terminal->state()->position('account-id', 'position-id');
$terminal->state()->orders('account-id');
$terminal->state()->order('account-id', 'order-id');
$terminal->state()->serverTime('account-id');

Retrieve historical data:

$terminal->history()->historyOrdersByTicket('account-id', 'ticket');
$terminal->history()->historyOrdersByPosition('account-id', 'position-id');
$terminal->history()->historyOrdersByTimeRange(
    'account-id',
    '2020-09-08 22:21:36.000',
    '2020-09-09 22:21:36.000',
    offset: 0,
    limit: 1000
);
$terminal->history()->dealsByTicket('account-id', 'ticket');
$terminal->history()->dealsByPosition('account-id', 'position-id');
$terminal->history()->dealsByTimeRange(
    'account-id',
    '2020-09-08 22:21:36.000',
    '2020-09-09 22:21:36.000'
);

Retrieve market data:

$terminal->marketData()->symbols('account-id');
$terminal->marketData()->symbolSpecification('account-id', 'EURUSD');
$terminal->marketData()->symbolPrice('account-id', 'EURUSD', keepSubscription: true);
$terminal->marketData()->candle('account-id', 'EURUSD', '1m');
$terminal->marketData()->tick('account-id', 'EURUSD');
$terminal->marketData()->orderBook('account-id', 'EURUSD');
$terminal->marketData()->historicalCandles('account-id', 'EURUSD', '1m');
$terminal->marketData()->historicalTicks('account-id', 'EURUSD');

Calculate margin and trade:

$terminal->margin()->calculate('account-id', [
    'symbol' => 'GBPUSD',
    'type' => 'ORDER_TYPE_BUY',
    'volume' => 0.1,
    'openPrice' => 1.25,
]);

$terminal->trading()->trade('account-id', [
    'actionType' => 'ORDER_TYPE_BUY',
    'symbol' => 'EURUSD',
    'volume' => 0.01,
]);

$terminal->trading()->createMarketBuyOrder('account-id', 'EURUSD', 0.01);
$terminal->trading()->createMarketSellOrder('account-id', 'EURUSD', 0.01);
$terminal->trading()->modifyPosition('account-id', 'position-id', stopLoss: 1.09);
$terminal->trading()->closePosition('account-id', 'position-id');
$terminal->trading()->cancelOrder('account-id', 'order-id');

Retrieve CPU credit usage:

$credits = $terminal->credits()->usage('account-id');