FX: konvertasiya və məzənnə riskləri
1) Niyə iGaming FX idarə
Dəqiq P & L-hesabat: FX-mənfəət/zərər (depozitlər, nəticələr, PSP qurulması, ehtiyatlar) yaranır.
Ədalətli ND/GRR/NGR: «geri hesabat» olmadan vahid hesabat currency.
Likvidlik və Cash Flow: A valyutasında funding, B-də ödənişlər - proqnoz və hedge lazımdır.
Komplayens/vergilər: kursların şəffaf mənşəyi və izlərin auditi.
2) FX doğulduğu əsas nöqtələr
1. Oyun cüzdanı vs depozit valyutası: cüzdan/hesabat valyutasında normallaşma.
2. PSP-də Capture/settle: ND üçün «tarixi» kurs qeyd olunur.
3. Funding (banka köçürmə): fərqli məzənnə/valyuta və ikincili FX effekti mümkündür.
4. Withdrawals: oyunçuya ödədikdə konvertasiya.
5. Rolling ehtiyat və cərimə sxemləri: debet/buraxılışlar başqa valyuta ola bilər.
6. Kriptovalyutası: settle/funding zamanı VWAP/median qiymətləndirilməsi.
3) Kursların mənbələri və normallaşdırma qaydaları
FX mənbəyi: prioritet olaraq istinad provayderləri (məsələn, CME/Refinitiv/ECB), ehtiyat - bank/PSP.
Quote policy: `mid`, `bid/ask` или `mid ± spread_bps`. Uçot üçün daha çox mid + aydın 'spread _ bps' istifadə olunur.
Timestamp: tanıma hadisəsi zamanı kurs (adətən ND üçün 'settled _ at'; bank uçotu üçün əlavə olaraq 'funded _ at').
No restatement: keçmiş ND kursları dəyişdikdə həddindən artıq qiymətləndirilmir; reval unrealized FX kimi ayrıca edilir.
Dəqiqlik: FX kursunda 8-10 işarə saxlayın, pul məbləğləri - minor units (integers) + scale.
4) Formullar və nümunələr
4. 1. Əsas konvertasiya
Qoy 'amount _ original' in 'ccy _ orig', hesabat valyutası 'ccy _ rep', məzənnə 'fx (ccy_orig→ccy_rep)':
amount_reporting = round(amount_original fx, scale_ccy_rep)
4. 2. Cross-kurs (EUR kimi valyuta-lövbər vasitəsilə)
fx(GBP→UAH) = fx(GBP→EUR) fx(EUR→UAH)
Audit üçün «meta» -da kursların marşrutunu (triangulation) saxlamaq vacibdir.
4. 3. Spread və PSP komissiyasının bölünməsi
PSP özü çevirsə:
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 marjasını ölçmək üçün effective FX və reference FX saxlayın.
4. 4. Nümunə (cüt çevirmə zənciri)
Oyunçu 100 GBP depozit edir. Reporting — EUR.
На `settled_at`: `GBP→EUR = 1. 1700` → `ND_dep = 117. 00 EUR`.
PSP sabah USD bankı maliyyələşdirir: 'GBP → USD = 1. 3000 ', bank USD hesab saxlayır.
FI uçotu üçün «USD → EUR» və «funded _ at» (məsələn, 0. 9200) pul mövqeyi həddən artıq qiymətləndirildikdə, settle və funding arasında realized FX görmək.
5) DCC, PSP konvertasiyası və «kursu kim həll edir»
DCC (Dynamic Currency Conversion) satıcı/PSP tərəfində: məzənnə oyunçuya əvvəlcədən göstərilir, lakin marj daha yüksəkdir.
PSP-conversion: PSP oyunçu valyutasını qəbul edir, öz məzənnəsi ilə ticarət valyutasına çevirir. Yayılmanın şəffaflığı kritikdir.
Merchant-conversion: merchant multi valyuta (multi-MID/multi-hesablar) qəbul edir, çevirmə bank/trejeri tərəfindən ən yaxşı məzənnə ilə həyata keçirilir (adətən daha sərfəli, lakin daha çətin əməliyyat).
Tövsiyə: conversion_owner ('DCC', 'PSP', 'MERCHANT') qeyd edin və TCO (spred + fee) ilə müqayisə edin.
6) Kripto: qiymətləndirmə və dəyişkənlik
'settled _ at' ətrafında qısa bir pəncərə üçün VWAP qiymətləndirilməsi (məsələn, 5 dəqiqə ±), mənbə (birja/provayder).
Saxlayın: 'price _ usd', 'price _ eur', 'source', 'window', 'pair' (məsələn, 'USDT/USDC/BTC').
Stables/fiat funding üçün - ikinci qat FX.
Spesifiklik: lehimləmə, delistinq, on-chain fees - «meta» və alertlərdə nəzərə alın.
7) Hesabatda FX uçotu: realized vs unrealized
Realized FX - pul axını ilə «bağlanmış» fərq (tanınma məzənnəsi ilə faktiki mübadilə/gəlir məzənnəsi arasında).
Unrealized FX - günün/ayın sonunda multivalyuta hesablarında/ehtiyatında qalıqların yenidən qiymətləndirilməsi.
Müxtəlif GL hesabları üzrə paylayın: 'FX _ realized', 'FX _ unrealized'.
ND/məhsul analitikası üçün tarixi hadisə kursundan istifadə edin (çox qiymətləndirməyin).
8) FX ekspozisiyasının növləri və onları necə bağlamaq olar
Transaction exposure: giriş/çıxış valyutalarının uyğunsuzluğu (EUR depoziti → TRY çıxışı).
Tədbirlər: natural hedge (ödənişlərin valyutalılığını seçmək), qaydalara uyğun tez zərf.
Translation exposure: müxtəlif valyutalarda multi-hesablar və ehtiyatlar → EoD/EoM reval.
Economic exposure: marjanın məzənnədən uzunmüddətli asılılığı (GEO qarışıqları, oyun təchizatçıları).
Tədbirlər: forwards/NDF, options (collars), GEO balans və təchizatçılar.
9) Trejeri prosesləri və siyasətləri
FX policy: hər bir valyuta üzrə açıq mövqe limitləri (məsələn, həftəlik dövriyyənin 20% -dən çox olmayan).
Execution rules: minimum əməliyyat həcmi, Praqa spreads, qarşı tərəflərin siyahısı.
Forecasting: 7/30/90 günlük valyuta xalis tələbat proqnozu (depozitlər − rüsumlar − vergilər − COZ).
Hedge accounting (lazım olduqda): «Hedge mövqeyi risk» münasibətlərinin sənədləşdirilməsi.
Tətil təqvimi: funding/rolling ehtiyat və «bağlanma» FX təsir edir.
10) Məlumatlar və model (sadələşdirilmiş)
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) Yoxlama və keyfiyyətə nəzarət
11. 1. PSP/Bank ilə «bizim» kursların əlaqələndirilməsi
'fx _ effective' (settlementdən) ilə 'fx _ reference' (bələdçinizdən) müqayisə edin.
Alert, əgər '| spread _ bps |> threshold' (məsələn, majorlar üçün> 80 bps).
11. 2. Kurs mənbəyinin keyfiyyəti
Stale-rates: əgər 'now - fx_timestamp> X dəqiqə' hadisə gəldikdə - alert və təcili mənbə.
Triangulation uyğunsuzluqları: 'fx (A → B) fx (B → C)' vs 'fx (A → C)' - alert, bps-də uyğunsuzluğu qeyd edin.
12) SQL şablon nümunələri
12. 1. Hesabat valyutasında əməliyyatların normallaşdırılması
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. PSP FX effektinin parçalanması (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. Multivalyuta qalıqlarının gündəlik yenidən qiymətləndirilməsi (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 və daşbordlar
FX Slippage (bps): PSP/metod/MID üzrə effective vs reference fərqi.
Realized FX P&L (gün/həftə/ay) və Unrealized FX (EoD/EoM).
Açıq FX Mövqe valyuta vs limitləri siyasət.
Hedge Ratio: örtülü mövqe payı (forwards/NDF/options).
Stale-rate Incidents и Triangulation Mismatch.
Spread% of Volume (processed volume nisbətən FX nə qədər dəyərlidir).
14) Alertlər və eşiklər
Stale rates: mövcud kurs yoxdur> trafikin zirvəsində n dəqiqə - P1.
Spread spike: 'spread _ bps' major/minor üçün eşik yuxarıda - P2.
Open position breach: hər hansı bir valyuta limitini aşmaq - P1.
FX P&L shock: gündəlik realized FX aşağıda − X σ tarixi - araşdırma.
Crypto price gap: sıçrayış> Y% VWAP pəncərə - mənbə keçid/zərf fasilə.
15) Best practices (qısa)
1. ND və ərzaq metriklərini retrospektiv yenidən qiymətləndirmə olmadan settled kursu ilə tanıyın.
2. FI/trejeri üçün ikinci kursu funded_at saxlayın - realized FX-i görəcəksiniz.
3. Həmişə conversion_owner, fx_source, quote_type, spread_bps qeyd edin.
4. Loging ilə lövbər (EUR/USD) vasitəsilə triangulation edin.
5. GL səviyyəsində realized və unrealized paylaşın.
6. Kriptovalyutada - VWAP pəncərəsindən istifadə edin, bir tik deyil.
7. Stale rates və anormal PSP yayılması üzərində alertləri avtomatlaşdırın.
8. Valyuta xalis ehtiyacını proqnozlaşdırın və natural hedge + forvard/NDF istifadə edin.
16) Giriş çek siyahısı
- 'ref. EOD və intraday ilə fx_rates', mənbə saxlama və quote type.
- Витрины `transactions_flat`, `fx_settlement_view`, `funding_receipts`.
- Triangulation mexanikası və kurs marşrutu jurnalı.
- FX iki səviyyəli uçot (ND/məhsul vs FI/trejeri).
- Multivalyuta qalıqları gündəlik reval.
- KPI daşbordları (slippage, open position, FX P&L).
- FX siyasəti: mövqe limitləri, kontragentlərin ağ siyahısı, alert həddi.
- Hedging proseduru (forwards/NDF/options) və sənəd dövriyyəsi.
Xülasə
iGaming-də FX yalnız «məbləğə vurma kursu» deyil. Bu bütöv bir sistemdir: aydın tanınma nöqtələri, şəffaf kurs mənbələri, bölünmüş uçot realized/unrealized, PSP yayılma nəzarəti və idarə olunan açıq mövqe. Standart FX kataloqunu, «settle» normallaşdırmasını, reval prosedurlarını və xedj alətləri ilə başa düşülən FX siyasətini tətbiq etməklə P & L-dən dəyişkənliyi aradan qaldırır və pul axınlarını proqnozlaşdırıla bilən edir.