-
Notifications
You must be signed in to change notification settings - Fork 3
/
data-example.json
121 lines (112 loc) · 11.3 KB
/
data-example.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
// Опциональные поля, не содержащие значения, равные 'null' или пустой строке, должны отсутствовать.
{
"version": "1.1.0", // версия формата, строка, в формате "x.y.z", в потоке байтов или в файле это поле должно встречаться первым в объекте
"end": 1607817600, // дата-время конца периода (включительно), который покрывается файлом (int, unix timestamp)
"start": 1577836800, // опционально дата-время начала периода (включительно), который покрывается файлом (int, unix timestamp)
"generated": 1623082700, // дата-время создания (int, unix timestamp)
"generated-by": "investbook", // предлагаю использовать как заголовок и заодно отметку об источнике данных
"accounts": [ // Счета, встречающиеся в файле
{
"id": 1,
"account-number": "U7654321", // опционально, номер счёта в финансовой организации
"type": "investment", // тип счёта (законченный список): "investment", "bank", "savings" (домашние наличные накопления)
"valuation": 0.0, // оценка стоимости активов на конец периода
"valuation-currency": "RUB" // символьный код валюты оценки ISO 4217
}
],
"assets": [ // Активы, встречающиеся в файле
{
// одно или более из полей: symbol, name, isin - должно присутствовать обязательно
"id": 1, // уникальный для данной выгрузки идентификатор id (int)
"type": "stock", // тип актива (законченный список): 'money', 'stock', etf', 'adr' (depositary receipt), 'gdr', 'bond', 'futures', 'option', 'fx-contract' (foreign exchange market contracts), 'warrant', 'security' (if unknown: stock, etf or bond), 'derivative' (if unknown futures or option), 'asset' (for common goods, use if none of prev items is suitable)
"symbol": "AMZN", // тикер, краткое имя, для money - символьный код по ISO 4217 (для срочных и валютных контрактов, а также money - обязательно, для остальных - опционально)
"name": "AMAZON.COM INC", // опционально, полное наименование
"isin": "US0231351067", // опционально
"exchange": "NASDAQ" // опционально, где торгуется, 'NASDAQ', 'NYSE', 'MOEX', 'TSX', 'LSE' etc
},
{
"id": 2,
"type": "money",
"symbol": "RUB",
"name": "Российский рубль"
}
],
"cash-balances": [ // Денежные остатки на конец периода (на момент, указанный в поле 'end')
{
"account": 1,
"cash": [
{
"value": 123.45,
"currency": "RUB" // символьный код валюты ISO 4217
}
]
}
],
"trades": [ // Сделки
{
"id": 1,
"trade-id": "26XYZ324", // номер сделки в системе учета брокера, строка
"timestamp": 1548447900, // дата-время сделки (int, unix timestamp), может отсутствовать, если есть settlement
"settlement": 1548447900, // дата-время поставки (int, unix timestamp), может отсутствовать, если есть timestamp
"account": 2, // на каком счете из раздела 'accounts' учитывать
"asset": 3, // с каким активом из раздела 'assets' заключена
"count": 5, // количество, если '+', то это покупка, если '-' то это продажа, может быть целым числом или вещественным в случае дробных акций
"price": 69.2215, // цена бумаги/контракта (за единицу) в валюте сделки, для облигации - без НКД (для деривативов - опциональное)
"accrued-interest": 11.12, // НКД одной облигации на момент сделки в валюте (обязательное поле для облигаций)
"currency": "USD", // символьный код валюты сделки ISO 4217 (может отсутствовать, если значение price равно null или поле price отсутствует)
"quote": 123.17, // котировка. Для облигации в процентах, для деривативов в пунктах (для облигаций - опциональное, для деривативов - обязательное)
"fee": 0.0, // комиссия сделки. Если отрицательное значение, значит возврат комиссии
"fee-currency": "RUB", // символьный код валюты комиссии ISO 4217
"description": "Исполнение опциона" // опционально
}
],
"payments": [ // Выплаты, привязанные к бумагам
{
"id": 1,
"payment-id": "С123", // опционально, строка, идентификатор выплаты в системе учета брокера
"account": 1, // на какой счёт выплачено (из таблицы 'accounts')
"asset": 1, // бумага, по которой произведена выплата (из таблицы 'assets'), если неизвестно, выплата должна быть сохранена в 'cash-flows'
"type": "dividend", // тип выплаты (законченный список): 'dividend', 'coupon', 'bond-amortization' (амортизация, но не погашение облигации, погашения должны учитываться в 'trades'), 'variation-margin', 'fee' (комиссия брокера, например депозитарная, привязанная к бумаге), 'interest' (процентный доход, например по вкладу), other
"count": 10, // количество бумаг (шт), по которым произведена выплата, положительное или отрицательное число (например, для деривативов), может быть целым числом или вещественным в случае дробных акций
"timestamp": 1578082800, // дата-время выплаты (unix timestamp)
"amount": 1600.20, // сумма выплаты (до выплаты налога), отрицательное значения для удержания (например вариационной маржи)
"currency": "USD", // символьный код валюты ISO 4217
"tax": 208.00, // (опционально) размер уплаченного налога
"tax-currency": "RUB", // (опционально, если отсутствует поле tax) символьный код валюты ISO 4217
"description": "Дивиденды за 2021 год" // опционально, произвольный комментарий
}
],
"cash-flows": [ // Списания-зачисления денег по неторговым операциям
{
"id": 1,
"flow-id": "B178", // опциональный идентификатор в системе учета брокера/банка
"account": 1, // на какой счёт выплачено (из объекта 'accounts')
"timestamp": 1578073286, // дата-время операции
"amount": -43.21, // положительные числа для зачисления, отрицательные - для списаний
"currency": "RUB", // символьный код валюты ISO 4217
"type": "tax", // тип операции (законченный список): cash, fee, tax, bond-amortization, bond-redemption, coupon, dividend, variation-margin, interest, other
"description": "Описание, например, кто списал" // опционально
}
],
"transfers": [ // Ввод, вывод ценных бумаг, сплиты акций, обмен валюты не биржевым способом (например банковской операцией)
// Если выполняется сплит акций, то нужно сохранять 2 (или более) объекта с одинаковым transfer-id на каждый сплит (событие списания и зачисления)
{
"id": 1,
"transfer-id": "A123", // строка, идентификатор операции (обязательное для сплитов, для остальных событий - опциональное)
"account": 1, // счёт из объекта 'accounts'
"timestamp": 1581322108, // дата-время операции
"asset": 10, // идентификатор актива
"count": 1, // количество бумаг, '+' для зачисления на счет, '-' для списания со счета, может быть целым числом или вещественным в случае дробных акций (шт)
"fee-account": 1, // (опционально) счет списания комиссии
"fee": 35.12, // (опционально) комиссия
"fee-currency": "RUB", // (опционально) символьный код валюты ISO 4217
"description": "Произвольное описание" // опционально
}
],
"vnd-ABC": { // vnd-investbook, vnd-jal, vnd-izi-invest и т.п.
// Поля специфичные для ПО ABC, где ABC - произвольное наименование приложения, выполняющего экспорт полей.
// Поля могут парситься приложениями, отличными от ABC, на свой страх и риск.
// Приложение ABC может менять состав полей на свое усмотрение, без согласования с другими участниками, поддерживающими формат.
}
// наличие других полей не должно приводить к падению парсера
}