GH GambleHub

FX: conversie și riscuri valutare

1) De ce să gestionați FX în iGaming

Raportarea exactă a P&L: unde apare profitul/pierderea FX (depozite, concluzii, decontare PSP, rezerve).
Echitabil ND/GRR/NGR: monedă unică de raportare fără „reevaluări retroactive”.
Lichiditate și fluxul de numerar: finanțare în moneda A, plăți în B - au nevoie de prognoză și acoperire.
Conformitate/taxe: originea transparentă a cursurilor și auditul urmelor.

2) Puncte cheie în care se naște FX

1. Portofel de joc vs valută de depozit: normalizare în portofel/raportare valută.
2. Captură/decontare la PSP: un curs „istoric” este înregistrat pentru ND.
3. Finanțarea (creditarea către bancă): este posibil un alt curs/monedă și un efect secundar FX.
4. Retrageri: Conversia atunci când este plătită jucătorului.
5. Rulare de rezervă și sancțiuni schemă: write-off/releases poate fi într-o monedă diferită.
6. Crypto: scor VWAP/mediană la soluționare/finanțare.

3) Surse de curs și norme de normalizare

Sursa FX: furnizori prioritari de referință (de exemplu, CME/Refinitiv/BCE), rezerve - bancă/PSP.
Politica de cotare: 'mid',' bid/ask 'или' mid ± spread_bps'. Pentru contabilitate, mijlocul + explicit „spread _ bps” este mai des folosit.
Timestamp: curs la momentul evenimentului de recunoaștere (de obicei "settled _ at' pentru ND; opțional "finanțat _ at' pentru banca de contabilitate).
Fără reinstalare: ND din trecut nu sunt supraestimate atunci când se schimbă ratele; reval se face separat ca FX nerealizat.
Precizie: stocați 8-10 caractere în cursul FX, sume monetare - în unități minore (numere întregi) + scară.

4) Formule și exemple

4. 1. Conversie de bază

Let 'amount _ original' in 'ccy _ orig', raporting valute 'ccy _ rep', rate 'fx (ccy_orig→ccy_rep)':

amount_reporting = round(amount_original fx, scale_ccy_rep)

4. 2. Rata încrucișată (prin valută de ancorare, de exemplu EUR)


fx(GBP→UAH) = fx(GBP→EUR) fx(EUR→UAH)

Este important să se păstreze traseul cursului (triangulare) în „meta” pentru audit.

4. 3. Split spread și comision PSP

Dacă PSP s-a convertit:

fx_effective = settlement_amount_in_rep / original_amount spread_bps  = (fx_effective / fx_reference - 1) 10_000 fee_fx    = settlement_fee_in_rep (если отдельно)

Păstrați FX eficient și FX de referință pentru a măsura marja implicită PSP.

4. 4. Exemplu (lanț dublu de conversie)

Jucătorul va depune 100 GBP. Raportare - EUR.
На 'settled _ at': 'GBP→EUR = 1. 1700 '→' ND _ rep = 117. 00 EUR ".
PSP finanțează banca în USD mâine: 'GBP→USD = 1. 3000 ', banca deține un cont în USD.
Pentru contabilitatea FI, fixați rata secundară "USD→EUR" la "finanțat _ at' (de exemplu, 0. 9200) pentru a vedea FX-ul realizat între decontare și finanțare dacă poziția în numerar este supraevaluată.

5) DCC, conversia PSP și „cine decide rata”

DCC (Conversie valutară dinamică) pe partea comerciant/PSP: cursul este afișat jucătorului în avans, dar marja este mai mare.
PSP-conversie: PSP acceptă moneda jucătorului, o convertește în moneda comerciantului la propria rată. Transparența răspândirii este critică.
Comerciant-conversie: comerciantul acceptă multi-valută (multi-MID/multi-cont), conversia este efectuată de bancă/comerciant la cea mai bună rată (de obicei mai profitabilă, dar mai dificilă din punct de vedere operațional).
Recomandare: fixați conversion_owner ('DCC', 'PSP', 'MERCHANT') și comparați TCO (spread + fee).

6) Cripto: Evaluare și volatilitate

Scorul VWAP într-o fereastră scurtă în jurul valorii de "settled _ at' (de exemplu, ± 5 minute), indicând sursa (schimb/furnizor).
Magazin: 'price _ usd',' price _ eur ',' source ',' window ',' pair '(de exemplu,' USDT/USDC/BTC ').
Pentru finanțare în grajduri/fiat, al doilea strat FX.
Specificitate: aderențe, delistare, taxe on-chain - luați în considerare în „meta” și alerte.

7) Contabilitate FX în raportare: realizată vs nerealizată

Realizat FX - diferența „închisă” de fluxul de numerar (între rata de recunoaștere și rata reală de schimb/primire).
FX nerealizat - reevaluarea soldurilor conturilor multicurrency/rezerva la sfarsitul zilei/lunii.
Postați către diferite conturi GL: 'FX _ realizat', 'FX _ nerealizat'.
Pentru ND/Produs Analytics, utilizați rata evenimentelor istorice (nu supraestimați).

8) Tipuri de expunere FX și cum să le închideți

Expunerea tranzacțiilor: neconcordanță între valutele de intrare/ieșire (depozit EUR → ieșire TRY).

Măsuri: gard viu natural (selectați moneda plăților), plic rapid în conformitate cu regulile.
Expunerea la traducere: conturi multiple și rezerve în valute diferite → revalorizarea EoD/EoM.
Expunerea economică: dependența pe termen lung a marjei de curs (GEO-mixuri, furnizori de jocuri).

Măsuri: forwards/NDF, opțiuni (gulere), OUG de echilibrare și furnizori.

9) Procese și politici de comori

Politica FX: limite privind poziția deschisă pentru fiecare monedă (de exemplu, nu mai mult de 20% din cifra de afaceri săptămânală).
Reguli de execuție: volumul minim al tranzacției, spread-uri de prag, lista contrapărților.
Prognoză: 7/30/90 de zile prognoza cererii nete pe valută (depozite − concluzii − taxe − OREX).
Contabilitate de gard viu (dacă este necesar): documentarea poziției de gard viu ↔ a relațiilor de risc.
Calendar de vacanță: Afectează finanțarea/rezerva de rulare și FX „închide”.

10) Date și model (simplificat)


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) Reconcilierea și controlul calității

11. 1. Coordonarea cursurilor „noastre” cu PSP/bancă

Potriviți 'fx _ effective' (de la decontare) la 'fx _ reference' (din directorul dvs.).
Alertă dacă „| spread _ bps |> prag” (de exemplu,> 80 bps pentru majors).

11. 2. Calitatea sursei cursului

Ratele vechi: dacă „acum - fx_timestamp> X minute” când sosește evenimentul - alertă și sursă de urgență.
Inconsecvențe triangulație: „fx (A→B) fx (B→C)” vs „fx (A→C)” - alertă, log discrepanța în bps.

12) Exemple de șabloane SQL

12. 1. Normalizarea tranzacțiilor în valută de raportare

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. Descompunerea efectului PSP FX (referință efectivă vs)

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. Reevaluarea zilnică a soldurilor multicurrency (FX nerealizat)

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 și tablouri de bord

FX Slippage (bps): diferență de referință eficientă vs prin PSP/metodă/MID.
Realizat FX P&L (zi/săptămână/lună) și FX nerealizat (EoD/EoM).
Deschideți poziția FX în funcție de limitele politicii valutare vs.
Raportul gard viu (înainte/NDF/opțiuni).
Incidente vechi и nepotrivire de triangulare.
Răspândiți% din volum (cât costă FX în raport cu volumul procesat).

14) Alerte și praguri

Tarife vechi: fără curs curent> N minute în traficul de vârf - P1.
Spread spike: 'spread _ bps' peste pragul pentru majori/minori - P2.
Încălcarea poziției deschise: depășirea limitei pentru orice monedă - P1.
FX P&L șoc: zilnic realizat FX sub − X σ istoric - investigație.
Decalaj de preț cripto: salt> Y% din fereastra VWAP - întrerupător sursă/pauză plic.

15) Cele mai bune practici (scurt)

1. Recunoașteți valorile ND și ale produselor la rata stabilită, fără reevaluare retrospectivă.
2. Pentru FI/trejeri, păstrați al doilea curs pe funded_at - veți vedea realizat FX.
3. Întotdeauna repara , , .
4. Efectuați triangularea printr-o ancoră (EUR/USD) cu exploatarea forestieră.
5. Separat realizat și nerealizat la nivelul GL.
6. În cripto, utilizați o fereastră VWAP, nu o singură bifă.
7. Automatizarea alertelor la ratele vechi și răspândirea PSP anormală.
8. Previzionați cerințele nete în funcție de monedă și utilizați gard viu natural + forwards/NDF.

16) Lista de verificare a implementării

  • Referință curs "ref. fx_rates' cu EOD și intraday, sursa de stocare și tip citat.
  • Витрины 'tranzacții _ flat', 'fx _ settlement _ view', 'finanțare _ încasări'.
  • Mecanica triangulației și jurnalul traseului cursului.
  • Contabilitate FX cu două niveluri (ND/produs vs FI/trejeri).
  • Revalorizarea zilnică a soldurilor multicurrency.
  • Tablouri de bord KPI (alunecare, poziție deschisă, FX P&L).
  • Politica FX: limitele poziției, contrapărțile de listă albă, pragurile de alertă.
  • Procedura de acoperire (înainte/NDF/opțiuni) și fluxul de lucru.

Rezumat

FX în iGaming nu este doar o "înmulțire cu rata de sumă. "Acesta este un sistem întreg: puncte clare de recunoaștere, surse transparente de cursuri, contabilitate divizată realizată/nerealizată, control al răspândirii PSP și poziție deschisă gestionată. Prin implementarea manualului standard FX, a normalizării, a procedurilor de revalorizare și a politicilor FX ușor de înțeles cu instrumente de acoperire, eliminați volatilitatea din P&L și faceți fluxurile de numerar previzibile.

Contact

Contactați-ne

Scrieți-ne pentru orice întrebare sau solicitare de suport.Suntem mereu gata să ajutăm!

Telegram
@Gamble_GC
Pornește integrarea

Email-ul este obligatoriu. Telegram sau WhatsApp sunt opționale.

Numele dumneavoastră opțional
Email opțional
Subiect opțional
Mesaj opțional
Telegram opțional
@
Dacă indicați Telegram — vă vom răspunde și acolo, pe lângă Email.
WhatsApp opțional
Format: cod de țară și număr (de exemplu, +40XXXXXXXXX).

Apăsând butonul, sunteți de acord cu prelucrarea datelor dumneavoastră.