Структура файла с экспортом биржевых курсов валют
Для организации структуры файла используется JSON формат данных.
Все начинается с такой конструкции:
Пробелы и отступы в примерах используются исключительно для удобства их восприятия.
Потом нужно указать список из валют, которые фигурируют в заявках. Список должен состоять из пар номер валюты: код валюты. Номер валюты не может быть 0, и должен состоять из цифр от 0 до 9, и/или букв от a до z. В качестве номера валюты можно использовать ее номер из БД или порядковый номер появления ее в файле (например: 1, 2, ..., 9, a, ..., z, 10, ..., 1a, ...). Все это должно выглядеть примерно так:
Как видно из примера выше, валюты указываются в currencies, там указано три валюты: доллары, рубли и биткоины.
Дальше, приступаем к указанию валютных пар. Они указываются особым образом, который показан в следующем примере.
Как уже можно заметить, все валютные пары указываются в такой последовательности: trade -> номер валюты продажи -> for -> номер валюты покупки.
Только такая последовательность, никакой другой быть не должно.
Теперь, для каждой валютной пары указываем список ордеров. Каждый ордер указывается в таком виде: [курс, сумма] (без пробела).
Курс должен быть кратным 1, то есть либо 1 = Х, либо Х = 1, Х при этом должен быть числом, большим или равным 1. Как сделать курс кратным 1, описано здесь. Курс берется из Х, причем, если он в виде 1 = Х то, со знаком минус.
Сумма, это объем валюты, доступный для покупки/продажи по этому курсу.
Количество знаков после запятой в курсе должно быть не более 6, с округлением в меньшую сторону. Количество знаков после запятой в суммах криптовалют должно быть не более 8-ми, а для всех остальных не больше 2-х.
В примере ниже указаны следующие ордера на покупку/продажу валюты:
- доллар – рубль по курсу 1 = 55.9690, на сумму 9339.99 рублей;
- доллар – рубль по курсу 1 = 55.8823, на сумму 19870.26 рублей;
- доллар – биткоин по курсу 8712.9922 = 1, на сумму 0.1065 биткоина;
- доллар – биткоин по курсу 8830.23641 = 1, на сумму 0.8 биткоина;
- рубль – доллар по курсу 59.56108 = 1, на сумму 99.13 долларов;
- рубль – доллар по курсу 59.61286 = 1, на сумму 50.47 долларов;
- рубль – биткоин по курсу 566500.90958 = 1, на сумму 1.3452 биткоина;
- рубль – биткоин по курсу 569378.662418 = 1, на сумму 5.5746 биткоина;
- биткоин – доллар по курсу 1 = 8544.39197 на сумму 942.98 долларов;
- биткоин – доллар по курсу 1 = 8541.743498, на сумму 2938 долларов.
Как курс сделать кратным?
Берем меньшее из двух чисел и делим на него каждое число курса. Например:
- Такой курс 20 = 1254.1286, станет таким 1 = 62.70643 (оба числа поделили на 20).
- Такой курс 8.7435 = 0.3712, станет таким 23.554687 = 1 (оба числа поделили на 0.3712).