GH GambleHub

FX: ryzyko konwersji i ryzyko walutowe

1) Dlaczego zarządzać FX w iGaming

Dokładna sprawozdawczość P&L: gdzie powstaje zysk/strata FX (depozyty, wnioski, rozrachunek PSP, rezerwy).
Fair ND/GRR/NGR: wspólna waluta sprawozdawcza bez „rewaluacji wstecznych”.
Płynność i przepływy pieniężne: finansowanie w walucie A, płatności w B - prognoza potrzeb i zabezpieczenie.
Zgodność/podatki: przejrzyste pochodzenie kursów i kontrola śladów.

2) Kluczowe punkty, w których rodzi się FX

1. Portfel gry vs waluty depozytu: normalizacja w portfelu/sprawozdawczości waluty.
2. Przechwytywanie/rozliczanie w PSP: kurs „historyczny” jest rejestrowany dla WP.
3. Finansowanie (zasilanie banku): możliwa jest inna stawka/waluta oraz drugorzędny efekt walutowy.
4. Wypłaty: Konwersja po zapłacie graczowi.
5. Rezerwy bieżące i kary systemowe: odpisy/zwolnienia mogą być dokonywane w innej walucie.
6. Krypta: wynik VWAP/mediana rozrachunku/finansowania.

3) Źródła kursu i zasady normalizacji

Źródło FX: priorytetowi dostawcy referencyjni (na przykład CME/Refinitiv/EBC), rezerwa - bank/PSP.
Polityka cytowania: "mid", "bid/ask" ила "mid ± spread_bps'. Do celów księgowych częściej stosuje się mid + explicit 'spread _ bps'.
Znacznik czasu: kurs w czasie zdarzenia rozpoznawczego (zwykle „settled _ at” dla ND; opcjonalnie „funded _ at” dla banku księgowego).
Brak przywrócenia: dawne ND nie są przeceniane w przypadku zmiany stóp procentowych; reval odbywa się oddzielnie jako niezrealizowany FX.
Dokładność: przechowywać 8-10 znaków w kursie FX, kwoty pieniężne - w małych jednostkach (liczby całkowite) + skali.

4) Wzory i przykłady

4. 1. Podstawowa konwersja

Niech 'amount _ original' in 'ccy _ orig', sprawozdawcza waluta 'ccy _ rep', kurs 'fx (ccy_orig→ccy_rep)':

amount_reporting = round(amount_original fx, scale_ccy_rep)

4. 2. Kurs krzyżowy (poprzez walutę kotwicową, np. EUR)


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

Ważne jest przechowywanie trasy kursu (triangulacji) w 'meta' do kontroli.

4. 3. Split spread i prowizja PSP

Jeżeli PSP sam się przekonwertował:

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

Przechowywać skuteczny FX i referencyjny FX do pomiaru domyślnego marginesu PSP.

4. 4. Przykład (podwójny łańcuch konwersji)

Gracz wpłaci 100 GBP. Sprawozdawczość - EUR.
На 'settled _ at': 'GBP → EUR = 1. 1700 '→' ND _ dep = 117. 00 EUR ".
PSP finansuje bank w USD jutro: "GBP → USD = 1. 3000 ', bank posiada konto w USD.
W przypadku rachunkowości FI należy ustalić stopę drugorzędną „USD → EUR” na „funded _ at” (na przykład 0. 9200) w celu sprawdzenia zrealizowanej FX między rozrachunkiem a finansowaniem w przypadku przeceny pozycji pieniężnej.

5) DCC, konwersja PSP i „kto decyduje o kursie”

DCC (dynamiczna konwersja walut) po stronie handlowca/PSP: kurs jest wyświetlany graczowi z góry, ale marża jest wyższa.
PSP-konwersja: PSP akceptuje walutę gracza, przelicza ją na walutę handlowca po własnym kursie. Przejrzystość rozprzestrzeniania się jest krytyczna.
Przeliczenie handlowca: handlowiec akceptuje walutę wielofunkcyjną (multi-MID/multi-account), konwersję przeprowadza bank/przedsiębiorca w najlepszym kursie (zwykle bardziej dochodowym, ale trudniejszym operacyjnie).
Zalecenie: naprawić conversion_owner („DCC”, „PSP”, „MERCHANT”) i porównać TCO (spread + opłata).

6) Krypta: wycena i zmienność

Wynik VWAP w krótkim oknie wokół 'settled _ at' (na przykład ± 5 minut), wskazując źródło (exchange/provider).
Przechowywać: 'price _ usd',' price _ eur ',' source ',' window ',' para '(na przykład' USDT/USDC/BTC').
Do finansowania w stajniach/fiat, druga warstwa FX.
Specyfika: przyczepności, odchylenia, opłat łańcuchowych - uwzględniać w „meta” i wpisach.

7) Rachunkowość FX w sprawozdawczości: zrealizowane vs niezrealizowane

Zrealizowany FX - różnica „zamknięta” według przepływów pieniężnych (między kursem ujęcia a rzeczywistym kursem wymiany/paragonu).
Niezrealizowany FX - aktualizacja wyceny sald na rachunkach/rezerwach wielokrotności na koniec dnia/miesiąca.
Post do różnych kont GL: 'FX _ realizowane', 'FX _ niezrealizowane'.
W przypadku ND/Product Analytics należy zastosować wskaźnik zdarzeń historycznych (nie przeceniać).

8) Typy ekspozycji FX i jak je zamknąć

Ekspozycja transakcyjna: niedopasowanie walut wejściowych/wyjściowych (depozyt EUR → produkcja TRY).

Środki: zabezpieczenie naturalne (wybierz walutę płatności), szybka koperta zgodnie z zasadami.
Ekspozycja tłumaczenia: multi-rachunki i rezerwy w różnych walutach → EoD/EoM reval.
Ekspozycja ekonomiczna: długoterminowa zależność marży od kursu (GEO-mixes, dostawcy gier).

Środki: forwards/NDF, opcje (kołnierze), równoważenie GEO i dostawców.

9) Procesy i polityka w zakresie skarbów

Polityka FX: limity pozycji otwartej dla każdej waluty (na przykład nie więcej niż 20% tygodniowego obrotu).
Zasady realizacji: minimalny wolumen transakcji, progi spreadów, lista kontrahentów.
Prognoza: 7/30/90-dniowa prognoza popytu netto według waluty (depozyty - wnioski - podatki - OREX).
Rachunkowość zabezpieczeń (w razie potrzeby): dokumentacja powiązań z pozycją zabezpieczającą i ryzykiem.
Kalendarz świąteczny: wpływa na finansowanie/rezerwę kroczącą i FX „zamknąć”.

10) Dane i model (uproszczone)


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) Uzgadnianie i kontrola jakości

11. 1. Koordynacja „naszych” kursów z PSP/bankiem

Dopasuj 'fx _ effective' (z rozrachunku) do 'fx _ reference' (z katalogu).
Alert jeśli '| spread _ bps |> threshold' (na przykład> 80 bps dla głównych).

11. 2. Jakość źródła kursu

Stale-stawki: jeśli 'teraz - fx_timestamp> X minut', gdy zdarzenie przyjdzie - alert i awaryjne źródło.
Triangulacja niespójności: 'fx (A → B) fx (B → C)' vs 'fx (A → C)' - alert, zaloguj rozbieżność w bps.

12) Przykłady szablonów SQL

12. 1. Normalizacja transakcji w walucie sprawozdawczej

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. Rozkład efektu PSP FX (skuteczny 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. Codzienna aktualizacja wyceny sald wielokrotności (niezrealizowana 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 i deski rozdzielcze

FX Slippage (bps): efektywna różnica referencyjna względem PSP/method/MID.
Zrealizowane FX P&L (dzień/tydzień/miesiąc) i Unrealized FX (EoD/EoM).
Otwórz pozycję FX według limitów walutowych vs.
Wskaźnik zabezpieczenia (do przodu/NDF/opcje).
Częstość zdarzeń w przypadku niedopasowania triangulacji.
Rozłożenie% objętości (ile kosztuje FX w stosunku do przetworzonej objętości).

14) Wpisy i progi

Stale stawki: brak bieżącego kursu> N minut w ruchu szczytowym - P1.
Spike spread: 'spread _ bps' powyżej progu dla majorów/nieletnich - P2.
Naruszenie otwartej pozycji: przekroczenie limitu dla dowolnej waluty - P1.

Wstrząs FX P&L: codziennie realizowane FX poniżej − X

Luka cenowa krypto: skok> Y% okna VWAP - przełącznik źródłowy/pauza koperty.

15) Najlepsze praktyki (krótkie)

1. Rozpoznać ND i metryki produktu w ustalonym tempie, bez retrospektywnej rewaluacji.
2. Dla FI/trejeri, zachować drugi kurs na funded_at - zobaczysz zrealizowane FX.
3. Zawsze naprawiaj conversion_owner, fx_source, quote_type, spread_bps.
4. Triangulacja przez kotwicę (EUR/USD) z rejestrowaniem.
5. Osobne zrealizowane i niezrealizowane na poziomie GL.
6. W kryptonimie użyj okna VWAP, a nie jednego kleszcza.
7. Zautomatyzuj wpisy do stałych stawek i nieprawidłowego rozprzestrzeniania się PSP.
8. Prognozować zapotrzebowanie netto według waluty i stosować naturalne zabezpieczenie + forwards/NDF.

16) Lista kontrolna wdrażania

  • Szkolenie Reference 'ref. fx_rates' z EOD i intraday, source storage i quote type.
  • Витрина „transactions _ flat”, „fx _ settlement _ view”, „funding _ receipts”.
  • Mechanika triangulacji i dziennik trasy kursu.
  • Księgowość FX dwupoziomowa (ND/produkt vs FI/trejeri).
  • Dzienna korekta sald wielokrotności.
  • Deski rozdzielcze KPI (poślizg, pozycja otwarta, FX P&L).
  • Polityka FX: limity pozycji, kontrahenci z białej listy, progi alarmowe.
  • Procedura zabezpieczenia (forwards/NDF/options) i przepływ pracy.

Podsumowanie

FX w iGaming jest nie tylko "mnożyć przez stawkę sumy. "Jest to cały system: jasne punkty rozpoznawania, przejrzyste źródła kursów, podzielone rachunkowość zrealizowane/niezrealizowane, PSP rozprzestrzeniania kontroli i zarządzane otwartej pozycji. Dzięki wdrożeniu standardowego podręcznika FX, uregulowaniu normalizacji, rewizji procedur i zrozumiałych zasad FX za pomocą instrumentów zabezpieczających usuwasz zmienność z P&L i sprawiasz, że przepływy pieniężne są przewidywalne.

Contact

Skontaktuj się z nami

Napisz do nas w każdej sprawie — pytania, wsparcie, konsultacje.Zawsze jesteśmy gotowi pomóc!

Telegram
@Gamble_GC
Rozpocznij integrację

Email jest wymagany. Telegram lub WhatsApp są opcjonalne.

Twoje imię opcjonalne
Email opcjonalne
Temat opcjonalne
Wiadomość opcjonalne
Telegram opcjonalne
@
Jeśli podasz Telegram — odpowiemy także tam, oprócz emaila.
WhatsApp opcjonalne
Format: kod kraju i numer (np. +48XXXXXXXXX).

Klikając przycisk, wyrażasz zgodę na przetwarzanie swoich danych.