Order flow és delta
P2 · 07LeckePiszkozat

Footprint és tick-adat: amit Pine nem tud

Tény

Az árszintenkénti bontás tick-adatot igényel, és ez az egyetlen pont a modulban, ahol a szerszám korlátja szab határt a tudásnak — a kérdés nem az, hogy jobb-e, hanem hogy megéri-e neked.

P2-07 · footprint-es-tick-adat
Min alapul Tény— A kontraktus-specifikációból vagy a tőzsdei szabályokból ellenőrizhető.
Szint Haladó
Becsült idő 30 perc
InstrumentumokMNQ · NQ
Indikátor GBR Quant X-Ray delta
Verzió 0.1
Frissítve 2026-10-17
Szerző darthtrader

Előfeltételek

1. Az állítás

A modul eddigi hat leckéje becsült adaton állt. Ezt a nyitóban kimondtuk, és minden leckében megismételtük. Ez a lecke arról szól, mi az, amit a becslés elvileg sem tud megadni, és mit kapsz cserébe, ha valódi tick-adatra váltasz.

A válasz rövid: a bar-szint alatti felbontást. Minden eddigi szabályunk egy barhoz rendelt egyetlen delta-számot. A footprint ezzel szemben megmutatja, hogy a baron belül, árszintenként hogyan oszlott meg a forgalom. Ebből olyan dolgok lesznek láthatók, amiket bar-szinten nem lehet közelíteni, csak helyettesíteni.

Ez a lecke TÉNY besorolású: szerszámokról és definíciókról szól, nem jövedelmezőségről.

2. Piaci mechanika

Mi a footprint. Egy gyertya, amelynek a belsejében minden árszinthez két szám tartozik: mennyit kötöttek ott a bid oldalon (agresszív eladás) és mennyit az ask oldalon (agresszív vétel). A gyertya alakja ugyanaz marad, de a belseje olvashatóvá válik.

Honnan jön az adat. A tőzsde kötésenkénti adatfolyamából. Ehhez a platformnak élő vagy archivált tick-adatra van szüksége, és ez jellemzően külön előfizetés — a CME adatdíja és a platform díja két külön tétel.

Miért nem lehet ezt Pine-ban közelíteni. A Pine egy bart lát, és legfeljebb alacsonyabb időkeretre tud lekérdezni. Egy 5 perces barhoz 1 perces bontás tartozik — az is csak öt alrészlet, nem kötésenkénti adat. Az árszintenkénti bontáshoz nem kisebb időegységre, hanem más dimenzióra kellene bontani: árra. Ezt alacsonyabb időkeretű gyertyákból nem lehet visszaállítani, mert azokban is csak nyitó-záró-csúcs-mélypont van, nem az, hogy melyik áron mennyi kötés történt melyik oldalon.

Mit nyersz ezzel konkrétan. Három dolgot, amit eddig nem tudtunk mérni: az árszintenkénti egyensúlytalanságot, a befejezetlen aukciót a bar szélén, és az abszorpciót azon a szinten, ahol történt — nem pedig egy háromsávos ablak átlagában, ahogy a P2-04-ben kényszerből csináltuk.

Mit nem nyersz. Nem nyersz előrejelzést. A footprint felbontást ad, nem jóslást, és a nagyobb felbontás több mintát is jelent, amiben könnyebb utólag magyarázatot találni. A szebb adat önmagában nem véd meg az illesztéstől.

3. Szabályosított definíció

FogalomDefiníció
Footprint cellaegy (bar, árszint) páros: bid_volumen és ask_volumen
Átlós egyensúlytalanságegy árszint ask-volumene legalább 3× az eggyel lejjebbi szint bid-volumene (vagy fordítva)
Halmozott egyensúlytalanságlegalább 3 egymás fölötti, azonos irányú átlós egyensúlytalanság
Bar-POCaz a szint a baron belül, ahol a legnagyobb volt az összforgalom
Befejezetlen aukcióa bar csúcsán vagy alján mindkét oldalon történt kötés
Szint-abszorpciónagy agresszió egy szinten, miközben az ár onnan N baron belül < 2 tickkel lép el

Miért átlós az összehasonlítás. Mert egy kötésnek két oldala van: aki az ask áron vesz, az azzal a bid oldallal kötött, amelyik eggyel lejjebb állt. Az azonos szinten lévő bid és ask összehasonlítása két olyan számot vetne össze, amelyek nem egymás ellenfelei.

A 3× arány konvenció. Nem törvény, hanem a footprint platformok elterjedt alapértéke. Mint minden ilyen szám, ez is paraméter, amit rögzíteni kell és mérni lehet.

Befejezetlen aukció. Ha a bar legmagasabb árán mind a bid, mind az ask oldalon volt kötés, akkor ott az aukció nem fejeződött be — nem volt egyetlen „utolsó vevő", aki után már senki. Az elterjedt vélekedés szerint az ár később visszatér befejezni. Ez mérhető állítás, és nincs megmérve.

4. Számolás / kód

Pine-ban ez nem megy, Pythonban viszont néhány sor — ha van tick-adatod:

python
import pandas as pd


def build_footprint(ticks: pd.DataFrame, freq: str = "5min",
                    tick_size: float = 0.25) -> pd.DataFrame:
    """ticks: 'price', 'size', 'bid', 'ask' oszlopok, időbélyeg indexszel.
    Visszaad: (bar, szint) indexű tábla bid/ask volumennel."""
    df = ticks.copy()
    df["level"] = (df["price"] / tick_size).round() * tick_size
    df["bar"] = df.index.floor(freq)

    df["ask_vol"] = df["size"].where(df["price"] >= df["ask"], 0)
    df["bid_vol"] = df["size"].where(df["price"] <= df["bid"], 0)

    return (df.groupby(["bar", "level"])[["bid_vol", "ask_vol"]]
              .sum()
              .sort_index())


def diagonal_imbalances(fp_bar: pd.DataFrame, ratio: float = 3.0) -> pd.DataFrame:
    """Egy bar footprintjére: átlós egyensúlytalanságok szintenként."""
    out = fp_bar.copy().sort_index()
    out["bid_below"] = out["bid_vol"].shift(1)       # eggyel lejjebbi szint
    out["ask_above"] = out["ask_vol"].shift(-1)      # eggyel feljebbi szint

    out["buy_imb"]  = out["ask_vol"] >= ratio * out["bid_below"].replace(0, pd.NA)
    out["sell_imb"] = out["bid_vol"] >= ratio * out["ask_above"].replace(0, pd.NA)
    return out[["bid_vol", "ask_vol", "buy_imb", "sell_imb"]]


def stacked(imb: pd.Series, n: int = 3) -> pd.Series:
    """Legalább n egymás fölötti azonos irányú egyensúlytalanság."""
    run = imb.astype("boolean").fillna(False)
    return run.rolling(n).sum() >= n

Három megjegyzés. Az első: a level kerekítés a tick-méretre az, ami a cellákat létrehozza — ha ezt elrontod, szétkenődik a profil. A második: a besorolatlan kötéseket (amelyek a bid és az ask között köttek) itt is kihagyjuk, ahogy a P0-06-ban. A harmadik: ez a kód tick-adatot vár. Ha nincs, nincs mit futtatni — és ez a lecke lényege.

5. A bizonyíték

Besorolás: TÉNY a definíciókra és a szerszám korlátaira. Ami nem tény, és ezért nincs állítva: hogy a footprint-alapú belépők jobbak lennének.

A mérés, ami eldönti, megéri-e neked. Ez nem kereskedési mérés, hanem beruházási döntés, és így is kell kezelni:

  1. Egyezés-mérés. Futtasd le ugyanarra a hónapra a Pine becsült deltáját és a valódi tick-deltát. Bontsd nyugodt és nagy tartományú barokra. Ha a két adat a te időkeretedben lényegében együtt mozog, akkor a footprint nem új információt ad, hanem ugyanazt szebben.

  2. Különbség-mérés. Azokat a jeleket nézd, ahol a két adat ellentétes irányt ad. Hány ilyen van, és mi történt utánuk? Ez a footprint tényleges hozzáadott értéke — nem az, ahol egyetértenek.

  3. Költségoldal. A platform- és adatdíj havi összegét vesd össze azzal, amit a P0-02-ben kiszámoltál: hány pont ez a te méreteddel. A footprint akkor éri meg, ha legalább ennyivel javít.

Első tévhit: „a footprint megmutatja, mit csinálnak a nagyok". Azt mutatja, melyik áron mennyi kötés történt melyik oldalon. A szereplők kilétéről és szándékáról nincs adat — ugyanaz a határ, mint a P2-04-ben.

Második tévhit: „a halmozott egyensúlytalanság megbízható jel". A 3× arány és a 3 szint konvenció, nem mérés. Amíg nincs mintaszám, ugyanolyan hipotézis, mint a modul többi mintázata — azzal a különbséggel, hogy ezt látványosabb nézni.

Harmadik tévhit: „a befejezetlen aukciót az ár visszatér befejezni". Elterjedt, intuitív, és tudtommal senki nem közölt rá mintaszámot MNQ-n. Ha megméred, publikálható tartalom lesz belőle.

Negyedik tévhit — és ez a drága: „ha jobb adatom lesz, jobban fogok kereskedni". A jobb adat nagyobb keresési teret is jelent. Több cella, több mintázat, több lehetőség utólag magyarázatot találni. A felbontás növelése nem helyettesíti a mérési fegyelmet; inkább megnöveli az igényét.

6. Végrehajtás

  1. Ne válts platformot mérés nélkül. Előbb az egyezés-mérés, utána a döntés.

  2. Ha váltasz, mérj újra mindent. A P2 összes korábbi statisztikája becsült adatra vonatkozik; tick-adaton más számok jönnek.

  3. Tartsd külön a két statisztikát. Soha ne add össze a becsült és a tick-adaton mért eredményeket.

  4. A 3× és a 3 szint a tiéd legyen. Írd le a saját értékeidet, és mérd őket, ne a platform alapértelmezését vedd át vakon.

  5. A P2-04 abszorpciós szabályát írd át szint-alapúra, ha van tick-adatod. Ott kényszerből dolgoztunk bar-ablakkal; itt már nem kell.

7. Gyakorlat

  • Feladat 1. Nézz végig egy nyitást footprint nézetben (próbaverzió is elég). Írj le három olyan dolgot, amit bar-szinten nem láttál volna.

  • Feladat 2. Keress egy bart befejezetlen aukcióval a szélén. Mi történt utána?

  • Feladat 3. Számold ki, hány pont a havi platform- és adatdíj a te méreteddel.

  • Feladat 4. Ha van tick-adatod, futtasd le a build_footprint függvényt egy napra, és vesd össze a bar-deltát a Pine becslésével. Mekkora az eltérés a nagy tartományú barokon?

Ellenőrzési kritérium: meg tudod mondani, hány pontba kerül havonta a footprint a te méreteddel, és tudod a saját mérésedből, hány olyan bar van naponta, ahol a becsült és a valódi delta ellentétes irányt ad. Ez a két szám dönti el a kérdést, nem az, hogy melyik nézet tetszik jobban.