Back to Ccxt

Symbols

wiki/examples/php/symbols.md

4.5.522.3 KB
Original Source
php
<?php

include './ccxt.php';
include 'Console/Table.php';

date_default_timezone_set('UTC');

function style ($s, $style) { return $style . $s . "\033[0m"; }
function green     ($s) { return style ($s, "\033[92m"); }
function blue      ($s) { return style ($s, "\033[94m"); }
function yellow    ($s) { return style ($s, "\033[93m"); }
function red       ($s) { return style ($s, "\033[91m"); }
function pink      ($s) { return style ($s, "\033[95m"); }
function bold      ($s) { return style ($s, "\033[1m"); }
function underline ($s) { return style ($s, "\033[4m"); }
function dump ($s) { echo implode (' ', func_get_args ()) . "\n"; }

$exchanges = \ccxt\Exchange::$exchanges;

function print_supported_exchanges () {
   $exchanges = \ccxt\Exchange::$exchanges;
   dump ('Supported exchanges:', green (implode (', ', $exchanges)));
}

function tabulate ($headers, $rows) {
   $tbl = new Console_Table();
   $tbl->setHeaders ($headers);
   $tbl->addData ($rows);
   return $tbl->getTable ();
}

function market_table_helper ($market) {
   return array (
       $market['id'],
       $market['symbol'],
       $market['base'],
       $market['quote'],
       $market['taker'],
       $market['maker'],
       json_encode ($market['precision']),
       json_encode ($market['limits']),

   );
}

if (count ($argv) > 1) {

   $id = $argv[1];

   $exchange_found = in_array ($id, $exchanges);

   if ($exchange_found) {

       dump ('Instantiating', green ($id), 'exchange');

       // instantiate the exchange by id
       $exchange = '\\ccxt\\' . $id;
       $exchange = new $exchange ();

       // load all markets from the exchange
       $markets = $exchange->load_markets ();

       // output a list of all market symbols
       dump (green ($id), 'has', count ($exchange->symbols), 'symbols:', yellow (implode (', ', $exchange->symbols)));

       // output a table of all markets
       @dump (tabulate(array('id', 'symbol', 'base', 'quote', 'taker', 'maker', 'precision', 'limits'), array_map ('market_table_helper', $markets)));

   } else {

       dump ('Exchange', red ($id), 'not found');
       print_supported_exchanges ();
   }

} else {

   dump ('Usage: php -f', __FILE__,  green ('id'));
   print_supported_exchanges ();

}

?>