FX: konwersiýa we hümmet töwekgelçiligi
1) Näme üçin iGaming-de FX dolandyrmaly?
Takyk P & L-hasabat: FX-girdeji/ýitginiň ýüze çykýan ýeri (goýumlar, netijeler, PSP settlment, ätiýaçlyklar).
Adalatly ND/GRR/NGR: "yza gaýdyp gaýtadan bahalandyrmazdan" ýekeje hasabat currency.
Likwidlik we keş-fow: A walýutasynda funding, B-de tölegler - çaklama we hedge gerek.
Komplayens/salgytlar: kurslaryň aç-açan gelip çykyşy we yzlaryň barlagy.
2) FX döreýän esasy nokatlar
1. Oýun gapjygy vs depozit walýutasy: gapjygyň/hasabatyň walýutasynda kadalaşmagy.
2. PSP-de capture/settle: ND üçin "taryhy" kurs ýazylýar.
3. Funding (banka geçirmek): başga bir walýuta/walýuta hümmeti we ikinji derejeli FX täsiri bolup biler.
4. Withdrawals: Oýunça töläniňizde öwrülişik.
5. Rolling ätiýaçlygy we shemalaryň jerimeleri: hasapdan çykarmak/goýbermek başga walýutada bolup biler.
6. Kripto: settle/funding pursatynda VWAP/median boýunça baha.
3) Kurslaryň çeşmeleri we kadalaşmagyň kadalary
FX çeşmesi: ileri tutulýan üpjün edijiler-salgylanmalar (mysal üçin, CME/Refinitiv/ECB), ätiýaçlyk bank/PSP.
Quote policy: `mid`, `bid/ask` или `mid ± spread_bps`. Hasap üçin köplenç mid + aýdyň 'spread _ bps' ulanylýar.
Timestamp: Tanalýan pursat üçin kurs (adatça ND üçin 'settled _ at'; bank-hasap üçin goşmaça 'funded _ at').
No restatement: öňki ND-ler kurslar üýtgände aşa baha berilmeýär; reval unrealized FX hökmünde aýratyn edilýär.
Takyklygy: FX-kursda 8-10 belgini saklamak, pul mukdary - minor units (integers) + scale.
4) Formulalar we mysallar
4. 1. Esasy konwersiýa
Goý 'amount _ original' v 'ccy _ orig', hasabat walýutasy 'ccy _ rep', kurs 'fx (ccy_orig→ccy_rep)':
amount_reporting = round(amount_original fx, scale_ccy_rep)
4. 2. Kross-kurs (EUR ýaly walýuta-labyr arkaly)
fx(GBP→UAH) = fx(GBP→EUR) fx(EUR→UAH)
Audit üçin "meta" -da kurslaryň ugruny (triangulation) saklamak möhümdir.
4. 3. PSP komissiýasyny bölmek
PSP özi öwrülen bolsa:
fx_effective = settlement_amount_in_rep / original_amount spread_bps = (fx_effective / fx_reference - 1) 10_000 fee_fx = settlement_fee_in_rep (если отдельно)
PSP implicit marjasyny ölçemek üçin effective FX we reference FX saklaň.
4. 4. Mysal (goşa öwrülişikli zynjyr)
Oýunçy 100 GBP goýumyny goýýar. Reporting — EUR.
На `settled_at`: `GBP→EUR = 1. 1700` → `ND_dep = 117. 00 EUR`.
PSP ertir banky USD bilen maliýeleşdirýär: 'GBP → USD = 1. 3000 ', bank USD-de hasap saklaýar.
FI-hasaba almak üçin "USD → EUR" -a 'funded _ at' (mysal üçin 0. 9200), eger pul pozisiýasy artykmaç baha berlen bolsa, settle we funding arasynda realized FX görmek üçin.
5) DCC, PSP-öwrülişik we "kursy kim kesgitleýär"
DCC (Dynamic Currency Conversion) söwdanyň/PSP tarapynda: nyrh oýunçy üçin öňünden görkezilýär, ýöne marja has ýokary.
PSP-conversion: PSP oýunçynyň puluny kabul edýär, öz hümmeti boýunça söwdanyň puluna öwürýär. Sprediň aç-açanlygy möhümdir.
Merchant-conversion: merchant multiwalýut (multi-MID/multi-hasaplar) kabul edýär, konwersiýa bank/trejeri tarapyndan iň gowy kurs boýunça ýerine ýetirilýär (adatça has girdejili, ýöne has çylşyrymly operasiýa).
Maslahat: conversion_owner belläň ('DCC', 'PSP', 'MERCHANT') we TCO-ny deňeşdiriň (spred + fee).
6) Kripto: baha bermek we üýtgewsizlik
"settled _ at" töweregindäki gysga penjire üçin VWAP boýunça baha bermek (mysal üçin ± 5 minut), çeşmesini görkezmek bilen (bir exchangea/üpjün ediji).
Saklaň: 'price _ usd', 'price _ eur', 'source', 'window', 'pair' (mysal üçin 'USDT/USDC/BTC').
Stabllarda/fiatda pul ýygnamak üçin - FX-iň ikinji gatlagy.
Aýratynlygy: yslanmalar, delistingler, on-chain fees - "meta" we alertlerde göz öňünde tutuň.
7) Hasabatda FX hasaby: realized vs unrealized
Realized FX - pul akymynyň "ýapylan" tapawudy (ykrar etmegiň hümmeti bilen hakyky alyş-çalyş/girdejiniň hümmetiniň arasynda).
"Unrealized FX" - günüň/aýyň ahyrynda köp walýutaly hasaplardaky/ätiýaçlykdaky galyndylaryň gaýtadan bahalandyrylmagy.
Dürli GL hasaplary boýunça paýlaň: 'FX _ realized', 'FX _ unrealized'.
ND/azyk analitikasy üçin wakanyň taryhy ugruny ulanyň (artykmaç baha bermäň).
8) FX-ekspozisiýanyň görnüşleri we olary nädip ýapmaly
Transaction exposure: giriş/çykyş walýutalarynyň gabat gelmezligi (EUR goýumy → TRY çykyşy).
Çäreler: natural hedge (tölegleriň walýutalygyny saýlamak), düzgünler boýunça çalt konwert.
Translation exposure: dürli walýutalarda multi-hasaplar we ätiýaçlyklar → EoD/EoM reval.
Economic exposure: marjanyň hümmetine uzak möhletleýin garaşlylygy (GEO-mikslar, oýun üpjün edijiler).
Çäreler: forwards/NDF, options (collars), GEO we üpjün edijileriň deňagramlylygy.
9) Dolandyryjy prosesler we syýasatlar
FX policy: her bir walýuta boýunça açyk pozisiýa üçin çäklendirmeler (mysal üçin, hepdelik dolanyşygyň 20% -inden köp bolmaly däldir).
Execution rules: geleşigiň iň az mukdary, praga spredleri, kontragentleriň sanawy.
Forecasting: Walýutalar boýunça arassa zerurlygyň 7/30/90 günlük çaklamasy (goýumlar − netijeler − salgytlar − HOZ).
Hedge accounting (zerur bolsa): gatnaşyklary resminamalaşdyrmak "hedge-position töwekgelçilik".
Dynç alyş senenamasy: funding/rolling ätiýaçlygyna we FX-iň "ýapylmagyna" täsir edýär.
10) Maglumatlar we model (ýönekeýleşdirilen)
payments. transactions (
id, user_id, provider, method, type, status,
amount_original, currency_original, -- event amount and currency amount_wallet, wallet_currency, -- domestic gaming currency (if different)
reporting_currency, amount_reporting, - the sum in reporting currency of fx_source, fx_pair, fx_timestamp, fx_rate, - a course at the time of the event (usually settled_at)
fx_quote_type, fx_spread_bps, fx_reference_rate -- measurement of spread/quotation type settled_at, funded_at, conversion_owner, meta
)
treasury. funding_receipts (
funding_id, provider, bank_account, currency, amount,
received_at, value_date, fx_to_reporting, amount_reporting, meta
)
treasury. fx_reval_ledger (
id, date, currency, position_amount, rate_eod, amount_reporting_eod,
prev_rate_eod, reval_diff, type -- UNREALIZED/REALIZED
)
11) Deňeşdirmek we hil gözegçiligi
11. 1. "Biziň" kurslarymyzy PSP/Bank bilen utgaşdyrmak
'fx _ effective' -ni 'fx _ reference' -le deňeşdiriň.
Eger '| spread _ bps |> threshold' (mysal üçin, maýorlar üçin> 80 bps).
11. 2. Kurslaryň çeşmesi
Stale-rates: eger 'now - fx_timestamp> X minut' waka gelende - alert we gyssagly çeşme.
Triangulation gapma-garşylyklary: 'fx (A → B) fx (B → C)' vs 'fx (A → C)' - alert, bps görnüşindäki gapma-garşylygy ýazga alyň.
12) SQL şablonlarynyň mysallary
12. 1. Hasabat puluna geleşikleriň kadalaşmagy
sql
INSERT INTO dw. transactions_flat (...)
SELECT t. id, t. user_id, t. provider, t. method, t. type, t. status,
t. amount_original, t. currency_original,
t. reporting_currency,
ROUND(t. amount_original r. fx_rate, c. scale) AS amount_reporting,
r. source AS fx_source, r. pair AS fx_pair, r. fx_rate,
r. quote_type AS fx_quote_type, r. spread_bps,
t. settled_at, t. funded_at, t. conversion_owner, t. meta
FROM raw. transactions t
JOIN ref. fx_rates r
ON r. pair = CONCAT(t. currency_original, '/', t. reporting_currency)
AND r. ts = (SELECT MAX(ts) FROM ref. fx_rates
WHERE pair=r. pair AND ts <= t. settled_at)
JOIN ref. currencies c ON c. code = t. reporting_currency
WHERE t. settled_at BETWEEN:from AND:to;
12. 2. FX effekti PSP (effective vs reference)
sql
SELECT provider, method, DATE(settled_at) AS d,
SUM(amount_reporting) AS amount_rep_ref,
SUM(settlement_amount_in_rep) AS amount_rep_eff,
(SUM(settlement_amount_in_rep) - SUM(amount_reporting)) AS fx_slippage,
10000 (SUM(settlement_amount_in_rep) / NULLIF(SUM(original_amountfx_reference_rate),0) - 1) AS spread_bps
FROM dw. fx_settlement_view
WHERE settled_at BETWEEN:from AND:to
GROUP BY 1,2,3
ORDER BY d;
12. 3. Köp walýuta galyndylaryny gündelik gaýtadan bahalandyrmak (unrealized FX)
sql
INSERT INTO treasury. fx_reval_ledger (date, currency, position_amount, rate_eod, amount_reporting_eod, prev_rate_eod, reval_diff, type)
SELECT
:eod_date AS date,
bal. currency,
bal. amount AS position_amount,
r_eod. fx_rate AS rate_eod,
bal. amount r_eod. fx_rate AS amount_reporting_eod,
COALESCE(l. prev_rate_eod, r_eod. fx_rate) AS prev_rate_eod,
bal. amount (r_eod. fx_rate - COALESCE(l. prev_rate_eod, r_eod. fx_rate)) AS reval_diff,
'UNREALIZED'::text
FROM treasury. balances bal
JOIN ref. fx_rates_eod r_eod
ON r_eod. pair = CONCAT(bal. currency, '/',:rep_ccy) AND r_eod. date =:eod_date
LEFT JOIN LATERAL (
SELECT rate_eod AS prev_rate_eod
FROM treasury. fx_reval_ledger
WHERE currency = bal. currency AND date =:eod_date - INTERVAL '1 day'
ORDER BY date DESC LIMIT 1
) l ON TRUE;
13) KPI we daşbordlar
FX Slippage (bps): PSP/usul/MID boýunça effective vs reference tapawudy.
Realized FX P&L (gün/hepde/aý) we Unrealized FX (EoD/EoM).
Walýutalar boýunça açyk FX Pozisiýasy vs syýasat çäkleri.
Hedge Ratio: örtülen pozisiýanyň paýy (forwards/NDF/options).
Stale-rate Incidents и Triangulation Mismatch.
Spread% of Volume (processed volume degişlilikde FX-iň bahasy näçeräk).
14) Alertler we bosagalar
Stale rates: häzirki kurs ýok> Traffigiň iň ýokary nokadynda n minut - P1.
Spread spike: 'spread _ bps' maýorlar/minorlar üçin bosagadan ýokary - P2.
Açyk pozisiýa breach: islendik walýuta boýunça çäkden ýokary - P1.
FX P&L şok: gündelik realized FX aşakda − X σ taryhy - derňew.
Crypto price gap: VWAP penjiresinden bökmek> Y% - konwertiň çeşmesini üýtgetmek/duruzmak.
15) Iň oňat amallar (gysgaça)
1. ND we azyk metriklerini settled-kurs boýunça ykrar ediň, retrospektiw gaýtadan baha bermezden.
2. FI/trederi üçin ikinji kursy funded_at saklaň - realized FX görersiňiz.
3. Elmydama conversion_owner, fx_source, quote_type, spread_bps ýazyň.
4. Logirlemek bilen labyr (EUR/USD) arkaly triangulation ediň.
5. GL derejesinde realized we unrealized bölüň.
6. Kripto - bir tike däl-de, VWAP penjiresini ulanyň.
7. Stale rates-de alertleri we PSP-iň anomal ýaýramagyny awtomatlaşdyryň.
8. Walýutalar boýunça arassa zerurlygy çaklaň we natural hedge + forward/NDF ulanyň.
16) Girizmegiň çek-sanawy
- Kurslaryň gollanmasy 'ref. EOD we intraday bilen fx_rates', çeşmäni saklamak we quote type.
- Витрины `transactions_flat`, `fx_settlement_view`, `funding_receipts`.
- Triangulation mehanikasy we kurslaryň ugry.
- FX iki derejeli buhgalteriýa (ND/Product vs FI/treader).
- Köp walýuta galyndylarynyň gündelik revaly.
- KPI dashbordlary (slippage, open position, FX P&L).
- FX syýasaty: pozisiýalaryň çäkleri, kontragentleriň ak sanawy, alertleriň çäkleri.
- Hedging (forwards/NDF/options) we resminama dolanyşygy.
Gysgaça maglumat
"iGaming" -de FX diňe "hümmeti mukdaryna köpeltmek" däl. Bu tutuş ulgam: anyk ykrar nokatlary, aç-açan kurs çeşmeleri, bölünen hasaba alyş realized/unrealized, PSP spred gözegçiligi we dolandyrylýan açyk pozisiýa. Adaty FX gollanmasyny, "settle" kadalaşmagyny, reval-proseduralaryny we düşnükli FX syýasatyny girizip, P & L-den üýtgewsizligi aýyrýarsyňyz we pul akymlaryny öňünden aýdyp bilersiňiz.