Мультивалюталык китептер жана курстар
1) "көп акча китептер" деген эмне
Китеп (ledger) - бир эле учурда бир нече валютада жүргүзүлгөн кош жазуусу бар транзакциялык леджер:- Кошелек китеп: оюнчу эсеби (оюн акча/акча).
- Settlement-китеп: PSP/эквайер менен эсептешүүлөр (орнотуунун валютасы).
- Treasury-китеп: банк эсептери, которуулар, хедж-бүтүмдөр.
- Отчеттук китеп: отчеттук валютадагы своп (мисалы, EUR) азык-түлүк метрикасын ретроспективдүү кайра баалоосуз.
Ар бир китеп операциянын валютасын, сунуштоо валютасын жана таануу учурундагы курсун белгилейт.
2) Валюталардын иерархиясы жана саясатчылар
1. Base/Reporting Currency - бирдиктүү отчеттук валюта (мисалы, EUR).
2. Wallet Currencies - капчыктардын валюталары (USD/EUR/TRY/UAH ж.б.).
3. Settlement Currencies - PSP жиберет (мисалы, USD).
4. Bank Currencies - соодагердин/казыналыктын эсебинин валютасы.
- Азык-түлүк көрсөткүчтөрү (ND/NGR/ARPPU) - окуянын тарыхый курсу боюнча (адатта 'settled _ at').
- Финансы/кредиторлор - кошумча 'funded _ at' жана 'payout _ at' курсун белгилешет.
- Азык-түлүк витриналарында "жашыруун" кайра баалоого тыюу салынат.
3) Курстар жана алардын булактары
Intraday reference (tick/minute): Refinitiv/ECB/банктар - нормалдаштыруу үчүн.
EOD (күндүн аягы): калдыктарды кайра баалоо үчүн (unrealized FX).
Effective FX: PSP/банк файлынан (конвертация фактысы).
Triangulation: казык аркылуу (EUR же USD) түздөн-түз котировка жок.
Quote policy: `mid` либо `bid/ask` → `mid ± spread_bps`. Спред өзүнчө сакталат.
Сактагыла: 'fx _ source', 'fx _ pair', 'fx _ rate', 'fx _ timestamp', 'quote _ type', 'spread _ bps', жана triangulation маршруту.
4) Таануу пункттары жана курстардын катмарлары
'authorize _ at' - курсу белгиленген эмес (эч кандай таануу басып жок).
'captured/settled _ at' - азык-түлүк катмары жана ND үчүн тарыхый курс.
'funded _ at' - банкка келип түшүү курсу (FI/treasury үчүн realized FX).
'payout _ at' - оюнчуга төлөөдө курс.
'eod' - калдыктарды кайра баалоо үчүн күндүн акырына карата курс (unrealized FX).
5) тактык, тегеректөө, минималдуу бирдиктер
Акча - бардык minor units (int) + 'scale' акча каталогунда.
Курстар - үтүрдөн кийин 8-10 белгиден кем эмес.
Тегеректөө: отчеттуулук үчүн банктык (half-even); UI - жергиликтүү эрежелер.
Өзүнчө талааларды жүргүзүү: 'amount _ original', 'amount _ wallet', 'amount _ reporting', 'amount _ effective'.
6) Double жазуу жана GL-карта (жөнөкөй)
Зымдарга мисалдар:6. 1. DEPOSIT_CAPTURED (GBP, отчеттук - EUR)
Dt: AR: PSP (GBP)
Ct: Player Balance (капчык боюнча GBP/EUR)
Ошол эле учурда 'fx _ rate _ settle (GBP → EUR)' жана 'amount _ reporting' жазылат.
6. 2. FUNDING_RECEIVED (банкка USD)
Дт: Bank USD
Кт: AR: PSP GBP (эквиваленти боюнча жабуу; айырмасы → Realized FX).
6. 3. WITHDRAWAL_PAID (TRY)
Дт: Liability: Player (TRY)
Кт: Bank TRY (же Bank EUR + конвертация; айырма - realized FX).
7) Маалыматтар архитектурасы (минималдуу модели)
ref. currencies (
code PK, scale, symbol, is_crypto, is_active
)
ref. fx_rates_intraday (
pair PK, ts PK, rate, quote_type, source, spread_bps, triangulation_meta
)
ref. fx_rates_eod (
pair PK, date PK, rate, source
)
ledger. entries (
entry_id PK, book, -- WALLET SETTLEMENT TREASURY REPORTING debit_account, credit_account,
amount_original, currency_original,
amount_reporting, reporting_currency,
fx_rate_at_settle, fx_source, fx_pair, fx_timestamp,
event_type, event_id, user_id, provider, method,
occurred_at, created_at, meta
)
treasury. funding_receipts (
funding_id PK, provider, bank_account,
currency, amount, fx_to_reporting, amount_reporting,
received_at, value_date, meta
)
treasury. balances (
date PK, account PK, currency PK, amount
)
dw. transactions_flat (
tx_id PK, user_id, provider, method, type, status,
amount_original, currency_original,
amount_reporting, reporting_currency, fx_rate_at_settle,
settled_at, funded_at, conversion_owner, meta
)
8) нормалдаштыруу агымы (ETL/ELT)
1. Ingest чийки → PSP статусун нормалдаштыруу.
2. 'settled _ at' from 'fx _ rates _ intraday' тарыхый курсун ыйгаруу.
3. керектүү китебине кош зым жазуу (wallet/settlement).
4. Өзүнчө импорт funding жана effective FX.
5. Күнүмдүк reval калдыктары 'fx _ rates _ eod' (treasury-китеп).
6. витриналарды куруу (ND/NGR/LTV) ретро-кайра баалоо жок.
9) Салыштыруу жана консистенттүүлүк
Tx → File: бардык captured/settled PSP файлына (суммалар/валюталар/даталар боюнча) кирген.
File → Tx: Бардык китептер/өткөргүчтөр чагылдырылган.
FX Reference vs Effective: эсептөө 'slippage _ bps'; эшиктен чыгуу үчүн алерт.
triangulation текшерүү: 'A → B → C' ≈ 'A → C' bps-толеранттуулук чегинде.
Демпотенттик: 'event _ id' жана 'idempotency _ key' - дубльдан коргоо.
10) Тез-тез сценарийлер жана аларды кантип жүргүзүү керек
Multi-wallet: Оюнчунун капчыгы депозитке караганда башка валютада болушу мүмкүн - сиздин курсу боюнча ички конвертацияны жасаңыз ('conversion _ owner =' MERCHANT 'саясаты).
PSP-conversion: сактагыла 'fx _ effective', 'fx _ reference' жана 'spread _ bps' PSP маржасын талдоо үчүн.
крипто: VWAP-терезе боюнча баа; funding stables - FX экинчи катмары.
Cross-wallet өткөрүп берүү: платформа ичинде кыймыл - FX-киреше жок, жөн гана китептердин ортосунда өткөрүп берүү.
11) SQL үлгүлөрү
11. 1. Тарыхый курс боюнча отчеттук валютадагы сумманы нормалдаштыруу
sql
SELECT t. tx_id,
t. amount_original,
t. currency_original,
r. rate AS fx_rate_at_settle,
ROUND(t. amount_original r. rate, rep. scale) AS amount_reporting
FROM raw. transactions t
JOIN ref. fx_rates_intraday r
ON r. pair = CONCAT(t. currency_original, '/',:reporting_ccy)
AND r. ts = (
SELECT MAX(ts) FROM ref. fx_rates_intraday
WHERE pair = r. pair AND ts <= t. settled_at
)
JOIN ref. currencies rep ON rep. code =:reporting_ccy
WHERE t. settled_at BETWEEN:from AND:to;
11. 2. PSP спред өлчөө (effective vs reference)
sql
SELECT provider, method, DATE(settled_at) AS d,
SUM(original_amount fx_reference_rate) AS ref_in_reporting,
SUM(settlement_amount_in_reporting) AS eff_in_reporting,
10000 (SUM(settlement_amount_in_reporting) /
NULLIF(SUM(original_amount fx_reference_rate),0) - 1) AS spread_bps
FROM dw. fx_settlement_view
WHERE settled_at BETWEEN:from AND:to
GROUP BY 1,2,3;
11. 3. EOD-калдыктарды кайра баалоо (unrealized FX)
sql
INSERT INTO treasury. fx_reval_ledger (date, currency, position_amount, rate_eod, amount_reporting_eod, reval_diff, type)
SELECT
:eod AS date, b. currency, b. amount,
e. rate AS rate_eod,
b. amount e. rate AS amount_reporting_eod,
b. amount (e. rate - COALESCE(l. rate_eod, e. rate)) AS reval_diff,
'UNREALIZED'
FROM treasury. balances b
JOIN ref. fx_rates_eod e
ON e. pair = CONCAT(b. currency, '/',:reporting_ccy) AND e. date =:eod
LEFT JOIN LATERAL (
SELECT rate_eod FROM treasury. fx_reval_ledger
WHERE currency=b. currency AND date=:eod - INTERVAL '1 day'
ORDER BY date DESC LIMIT 1
) l ON TRUE;
12) KPI жана дашборддор
FX Slippage (bps) PSP/ыкмасы/MID.
Realized FX P&L (funding/payout) и Unrealized FX (EOD/EOM).
Валюталар боюнча Open FX позициясы vs саясаттын лимиттери.
Hit-rate "өз убагында алынган" курстары (stale-rates окуялар).
PSP-conversion vs Merchant-conversion жана анын TCO үлүшү.
Тегеректөөнүн тактыгы (суммалардын четтөөсү ≥ 1 minor unit - желек).
13) Алерталар жана босоголор
Stale rate: окуя учурунда эч кандай курс → fallback-булак/retray.
Triangulation mismatch: айырмачылыктар> X bps.
Spread spike: 'spread _ bps' негизги/негизги боюнча босогодон жогору.
Open position breach: ар кандай валюта боюнча чектен ашуу.
Reval шок: күнүмдүк кайра <− X σ же> + X σ - ревю.
14) Best practices (кыска)
1. Катуу азык-түлүк катмарын бөлүп (тарыхый FX) жана FI/treasury (каражат/төлөм/кайра).
2. minor units колдонуу жана жогорку тактык менен курстарды сактоо.
3. Логин conversion_owner жана PSP маржасын өлчөө (effective vs reference).
4. окуялардын жана эки тараптуу салыштыруу (Tx → File жана File → Tx).
5. triangulation үчүн anchor-акча сактоо жана bps айырмачылыктарды тастыктоо.
6. Калдыктарды өзүнчө GL менен EOD жол-жобосу менен кайра баалоо.
7. settle/funding боюнча курстарды дайындоодо DST/таймзондорду эске алуу.
8. Үзгүлтүксүз тегеректөө сыноо (property-based tests scale чегинде).
15) Киргизүү чек-тизмеси
- тарыхый FX отчеттук акча жана саясат аныкталган.
- Курстардын булактары: intraday + EOD, fallback жана SLA жаңыртуулар.
- Моделдер 'ledger. entries`, `fx_rates_`, `funding_receipts`, `balances`, витрина `transactions_flat`.
- triangulation механизми жана log маршруту.
- Алерты: stale-rates, spread spike, triangulation mismatch, open position breach.
- Dashbord KPI жана PSP/банк менен салыштыруу актылары.
- Reval жол-жоболору жана GL үчүн өзүнчө realized/unrealized FX.
- Сыноо топтому тегеректөө жана сактоо тактыгы.
Резюме
Multivalyutnye китептер - бул катмарлардын бөлүнүү дисциплинасы: продукт үчүн тарыхый FX, трейдер үчүн иш жүзүндө, баланстар үчүн EOD кайра баалоо. Ачык-айкын курстардын булактары, так маалымат модели, кош жазуу жана автоматташтырылган салыштыруу менен сиз аналитикадан "валюталык ызы-чууну" алып саласыз, аудитти камсыз кыласыз жана глобалдык акча табууда башкарылуучу FX тобокелдигин аласыз.