Metastock fájlformátum
Hogyan tárolja az adatokat Metastock 7.0.
Van ilyen program, amelyet az Equis nevű Metastock fejlesztett ki. A program fő elgondolása az, hogy az internetről adatokat kap bármely eszköz (pénznem, állomány vagy index) idézeteiről, és azokat egy speciális formában (állomány chart) megjeleníti. Továbbá meg kell jegyezni, hogy a nagyon MetaStock Internet alapú szerver nem kötődik (nem benne foglalt), mert csinál másik program (downloader 's, a forgalmazó által), és ez annak a ténynek köszönhető, hogy az emberek működjenek együtt a különböző irodák és minden bróker "saját" módon adja ki az idézeteket.
Nos, és egyáltalán metasztokként, minden loudery-nek meg kell mentenie ezt az információt, amennyiben szükséges a metasztok.
Ezeket az adatokat rendszerint külön mappa tárolja (c: \ metastock adatok alapértelmezés szerint).
Ha valami van benne, majd megnyitja ezt a mappát, háromféle fájlt látunk:
- master fájl
- emaster fájl
- az F? .dat formátumú fájlok
A mesterfájl információkat tartalmaz arról, hogy hány eszközt tárol, milyen eszközöket tárol, nevét, szimbólumát, dátumát.
Amikor metastokban megnyílik egy új grafikon (biztonság). akkor a metastock megjeleníti a fájl párbeszédablakában található eszközök listáját. És ha ez a fájl nem létezik, a metasztok nem lát semmit.
Az emaster fájlt a metastock hozza létre minden egyes alkalommal, amikor elérte a mappát. A fájl jelenléte vagy hiánya nem befolyásolja a program teljesítményét. Ezért nem fogom ezt a leírást figyelembe venni. Nem kell nafig!
Az F? .dat formátumú fájlok tartalmaznak adatokat egy adott eszköz grafikonján. E fájlok számával azonnal meghatározhatja, hogy hány eszközt tárol a MetaStock. Meg kell jegyezni, hogy a masterfájl nélkül nem tudhatja meg, hogy milyen eszköz található az F? .dat fájlban.
Személy szerint én a forex piacon dolgozom, ezért ezeket a metaadatokat a forex pozícióktól kell figyelembe venni.
F? .dat fájlok leírása
Az F? .dat fájl a metaadat mappában tartalmaz adatokat az egyik eszközön. Amit pontosan az ugyanabban a mappában lévő master fájlban jeleznek. A kérdőjelet egy szám (általában 1-től az utolsó műszerig) helyettesíti. Ie ha csak EUR-t (10 perc) és EUR-t (1 óra) tölel le. akkor a mappában csak két fájl található: az F1.dat és az F2.dat.
Az egyértelműség kedvéért feltételesen osztjuk fel a fájlt rekordokra, azaz. a 28 bájt hosszú sorokra, ha például nappali, és napközben 32 bájt. ben van egy további mező "idő" - 4 byte. Továbbá ezeket a különbségeket 28 (32), azaz 28 - ez a napi (heti, havonta) hangszerekre írom, 32 - napközben.
Most, hogy megkönnyítsük a megértést, képzeljük el az F? .dat táblát, amelyben minden sor (rekord) 28 (32) bájtot tartalmaz, és minden sorban 4 (5) oszlopot tartalmaz 4 bájt. Olyan lesz ez így:
Az első rekordot véletlenül a tetejére vitték, az a tény, hogy nem tartalmaz adatokat a gyertyákról. És minden nullából áll, kivéve a 3 és 4 bájtot, amelyekben a rekordok száma (28 (32) byte) a fájlban kerül rögzítésre. A mi esetünkben ez megér egy hexadecimális szám 2, a harmadik byte - ez azt jelenti, hogy csak két rekordot a fájlban (az első, és ha szükséges, egy kettes és egy második, ahol az adatok a gyertya). Ha a bejegyzések száma 256 a FF, és ha 257 van a harmadik bájt lesz a 01 és a negyedik 01. Ez azt jelenti, hogy a fájlban lévő bejegyzések = 256 * száma 4 byte + száma a harmadik bájt. Lefejezték? így a két bájtban maximálisan 256 * 256 = 65536 rekordot lehet megadni. Megpróbáltam többet meghatározni, kezdett esküt Downloader (ez egy metastoka program). Ha megadja a rekordok számát, mint ami a fájlban ténylegesen van, akkor a metastock csak azt írja le, amit mond. Ie ha 2-t írtál (mint a példában), akkor a harmadik sorral kezdhetsz levelet írni a nagyanyádnak.
Most vegye figyelembe a második táblázatot a 2. táblázatból. Itt a gyertyatartó adatok jelennek meg (mindegyik rekordban csak egy gyertyát feliratoznak). Az első négy bájtban, ahogy érti, a dátum megjelent, a következő alkalommal stb. Mivel forex-ben dolgozom, a nyitott kamatmező mindig nulla (a mező összes byte-je = 0). Ha két gyertya volt a fájlban, egy harmadik sor kerülne hozzá a második képhez és hasonlatossághoz, és így tovább.
Itt kezdődik a szórakozás. Ie majd azt, amit két napig izzadtam. Az a tény, hogy annak megértéséhez, hogy melyik számot jelölik meg például a nyitott mezőben (a nyitóár), nem elég arra, hogy lefordítsa a hexáról. formátumban tizedesben. A Metastock a számokat formátumban rögzíti, ami számomra úgy tűnik, hogy az értékeket gyorsan átváltja egy törtrészre (valószínűleg a 1/8, 2/3, stb.). De hazafias emberként csak decimális számokat értek, és az összes további leírás rájuk irányul.
Az érthetőség érdekében a 2. táblázatban szereplő Open mezőt írjuk ki.
A 3. táblázatban feltüntetett bájtok száma egy decimális egységnek felel meg. Ha a nagybájt üresen marad (nulla), nem számít, hogy mit fognak írni a fennmaradó háromban, még decimálisan is nulla.
Miért van 81 egység? Igen, ezért:
A decimális 81-es szám a 129-es
ahol d1 az első (nagy rendű byte) tizedes értéke, azaz. 129
D az egész mező végső decimális értéke, azaz ebben az esetben a felfedezés ára, mint olyan.
Tehát 2 a (129-129) erejéig egyenlő 1-vel.
Ha nem 81 és 83, akkor:
A decimális szám 83 a 131.
2 a teljesítményhez (131-129) egyenlő 8-mal
Stb de ez a számítás helyes, ha az alsó három bájt üres.
Ha a mező értékei az 5. táblázatban vannak megadva.
Ez a kifejezés 1.5000.
Ha 40 helyett 40 zérus lenne, akkor D lenne 1.
Ne feledje, hogy 40 decimális 64 vagy 128/2, és
1-0,5 = 1/2. így a negyvenes szám azt jelenti, hogy az 1-hez hozzá kell adni a 64/128-ot (hatvan-négyszázharmincnyolc) az 1.-től.
a) Ha a 82 első bájt, azaz D = 2
És a második 20 decimális 32, majd a 2, akkor 32/128-ot kell hozzáadni a 2-ből.
T. D (végső) = 2+ (2 * 32/128) = 2,5.
b) Ha az első 85 byte (D = 16), a második 40, akkor
D (végső) = 16 + (16 * 64/128) = 24.
Pontosan ugyanaz a helyzet a harmadik és a negyedik bájttal.
Igaz, a partíció nem 128, hanem 256.
így a harmadik bájt azt mutatja meg, hogy hány kétszázötven darab százhuszonnyolcadik első bájtot kell hozzáadni a végeredményhez.
A negyedik bájt pedig megmutatja, hányat kell hozzáadni kétszázötven darabot az első bájt százhúszszázszázhúsznyolcadikjától.
Az utolsó bekezdés teljes megértéséhez azt javaslom, hogy többször is olvasson egy ceruzával a kezében.
És akkor is használhatja az e-fájlt, ahol már írt mindezen képletek, csak képesek vezetni az eredeti adatokat. Az átalakítás két változata létezik:
- A metastocktól a decimális formátumig
- Éppen ellenkezőleg.
Az állományban bemutatott algoritmusok nem tökéletesek, és csak pozitív számmal dolgoznak (mert nincsenek negatív árak és dátumok), és egyre nagyobb a pontosság csökkenése, pl. az egységnyi alacsony (4) bájt egy nagy első bájttal történő megváltoztatása a végeredményt akár tucatnyi, akár akár egyenként is megváltoztathatja. De kisebb értékekhez, például akár ezerig is, az alacsony sorrendű byte minimális változása a vessző után a hatodik számjegy maximális értékét fogja megváltoztatni. teljesen működik. Szeretném megjegyezni, hogy ez a hátrány nem vonatkozik az algoritmusomra, hanem a metasztok formátumára.
Most rájöttünk, hogyan írhatunk számokat a mezőkben (Nyílt, Magas, Alacsony, Zárás, Hangerő, Nyitott int).
Egy kicsit bonyolultabb helyzet a dátummal és az idővel.
Ha a dátum mezőből származó bájtok (a fenti módszerrel) egy tizedes alakra fordítanak, akkor egész számot kapunk. Rangsorai 1 YYMMDD formátumban lesznek. Az egység elején egy évszázad 1 mól 20, 0 -19).
Ahhoz, hogy megkapja a metastokovskaya dátumot, le kell fordítania (a fenti módszer szerint), amelynek számjegyei megfelelnek a HHMMSS-nek. Például az időmezőben rögzített 235900 decimális szám 23 óra 59 perc 00 másodperc, azaz a fenti példában (1. táblázat).
Azok számára, akik meg akarják érteni a metastok formátumot, a csatolt fájllal együtt kell dolgozniuk. FILE
Ezek a moldovaiak pite társai.
A fájl leírása Mester.
Miután foglalkoztam az előző fejezetgel, lépjünk át a master fájlra. Itt leszek röviden.
Ez a fájl 54 bájt hosszúságú bejegyzéseket tartalmaz. Minden rekord tartalmaz információkat egy diagram fájljáról, azaz F? .dat. Minden bejegyzés tartalmaz, de nem az első. Az első rekord zérusokat tartalmaz, kivéve az első négy és az utolsó négy bájtot. Az első olyan, mint a rekordok száma (de nem vagyok biztos benne), de nincsenek az utolsó értékek, minden alkalommal megváltoztatják a metastockot, amikor hozzáférnek a fájlhoz, így egyébként is leírhatják őket.
Most nézzünk egy példát a második (értelmes) rekordra. Minden későbbi rekord hasonló ahhoz.
Példa egy rekord bájtjairól