Ebben a posztban igyekszem ismét segíteni egy hasznos kis szkripttel.
Bizonyára sok kezdő kereskedő számára gondot okoz az, hogy kiszámolja: az éppen nyitott pozíciói egy bizonyos jövőbeli árfolyamértéken mekkora profitot/veszteséget jelentenek majd. Ennek kiszámításához nyújt segítséget a ProfitCalculator nevű szkriptem.
Eredetileg a szkript csak az éppen nyitott pozíciók jövőbeli nyereségét/veszteségét írta ki, de úgy gondoltam ez így nem elég, így nekiültem és sikerült jó pár funkcióval kiegészítenem a szkriptet. Fontos ugyanis az, hogy a kalkulátort így olyanok is tudják használni akik egyszerre csak egy irányba kereskednek, és olyanok is akiknek mindkét típusú pozíciójuk van egy időben.
Telepítés
A zip fájl tartalmát a választott terminál Rendszermappa\MQL4\Scripts\ könyvtárába másoljátok be. (A Rendszermappáról és annak szerepéről korábbi bejegyzésemben olvashatsz bővebben.) Ha a terminált fut, szükséges azt újraindítani! Az újraindítás után a Navigátorban a Scriptek résznél találjátok majd a szkriptet ProfitCalculator néven.
Használat
A szkriptet először – mint minden expertet és szkriptet – demó környezetben próbáljátok ki. Válasszatok ki egy tetszőleges chartot, majd az instrumentumon nyissatok egy buy vagy sell pozíciót!
A Navigátorból a Scriptek résznél kattintsatok duplán a ProfitCalculator sorra! Ezt követően a chart bal alsó sarkában megjelenik pár sornyi szöveg sárga színnel, valamint egy sárga szaggatott vonal az éppen aktuális árfolyamnál. A vonal kijelölésével (alapbeállítás szerint dupla klikk) és arrébb húzásával tudjátok megadni a kívánt jövőbeli árfolyamot, amely alapján a szkript ki fogja tudni számolni, hogy az adott árfolyamon milyen floating értéket látnátok az instrumentum nyitott pozícióinak nyereség/veszteség értékei alapján.
Értelemszerűen ha nincs egyetlen nyitott pozíciótok sem, a szkript okafogyottá válik és minden kiírt értéke nulla lesz. Amennyiben azonban van nyitott pozíciótok, körülbelül a következőt kell látnotok:
Nézzük, mit is jelentenek a kiírt szövegcímkék!
Összes / BUY / SELL lot:
Az instrumentum összes (lot + sell) nyitott lotjainak összértéke / instrumentum nyitott buy pozícióinak összértéke / instrumentum nyitott sell pozícióinak összértéke
SELL P/L:
Az instrumentum nyitott sell pozíciói profitjainak / veszteségeinek összege.
BUY P/L:
Az instrumentum nyitott buy pozíciói profitjainak / veszteségeinek összege.
Távolság:
Távolság pipben az aktuális árfolyamtól. Pozitív érték ha az aktuális árfolyam felett és negatív ha az aktuális árfolyam alatt van a sárga vonal.
P/L pipenként:
Megmutatja, hogy egy pip elmozdulás a számla bázisdevizája szerint mekkora nyereséget/veszteséget jelent az aktuális pozíciók nagyságára vetítve. A példában egy pont elmozdulás 6 USD nyereséget vagy veszteséget jelent. Következésképp a floatingunk – természetesen csak az adott instrumentum nyitott pozícióira származtatva – csak 6 többszöröse lehet, dollárban.
Amennyiben értéke nulla, egyenlő mennyiségű sell és buy lotunk van nyitva – vagyis az általuk képviselt floating érték csak a swapok kapcsán változhat hosszabb távon.
P/L GBPUSD:
Az aktuális instrumentum összes nyitott pozíciójának floatingja a sárga szaggatott vonal által meghatározott árfolyamérték alapján. A példában az aktuális árfolyamtól felfelé 42 pipre 174 USD hasznunk lesz, mivel 0.5 buy pozíciónk van nyitva 0.1 sell ellenében.
A szkript nem csak keresztárfolyamokra, hanem CFD és FUTURES instrumentumokra is működik, mivel mindig az adott instrumentum paraméterei alapján számol. A program a spreadet is figyelembe veszi.
A szkript a távolságot mindig a chart lehető legkisebb ábrázolt egységében (azaz pontban) méri, és a számításokat is ezen adat alapján végzi el. Így ne lepődjetek meg, ha bizonyos instrumentumok esetében – ahol egy tick árváltozás nem egyezik meg a chart skálájának legkisebb egységével – olyan profit/loss értékeket is kaptok, amelyek egyébként biztosan nem jelennek meg soha floatingként.
Például az arany (a legtöbb brókernél GOLD) esetében az árfolyam mindig x.10 -re, x.20-ra, stb. végződik, azaz nincsen x.11, x.12, stb. árfolyamérték – annak ellenére, hogy a terminálban jelölhetőek. Nyilván a vonal húzogatásakor figyelni kell arra, hogy csak a legkisebb árfolyamelmozdulással (0.1) osztható árfolyamértéken helyezzük el a vonalat.
Ismétlem, ez csak azon instrumentumoknál lényeges, ahol egy árváltozás minimális értéke nem egy, hanem több pip. A számolás minden esetben helyes, de az adott értékek előfordulása már csak a megfelelő oszthatóság esetén lesz lehetséges. Példa: 0.1 lot méretű GOLD esetében egy 1 pip árfolyamelmozdulás 10 cent árváltozást jelentene, azonban mivel a legkisebb valós árfolyamelmozdulás legkevesebb 10 pip, a floatingunk mindig csak minimum 1 dollárral csökkenhet vagy növekedhet. A szkript ennek ellenére kiírhat például 1.10, 1.20, 1.30, stb. értékeket a fent taglalt jelenség miatt.
A keresztárfolyamok esetében a fenti jelenség tárgytalan, hiszen ott általában a legkisebb árelmozdulás egy pip. (EURUSD esetében 0.0001 pont – azaz 1 pip – a legkisebb árfolyamelmozdulás, és minden árfolyam maradék nélkül osztható ezzel a számmal)
Ráadásul a legkisebb elmozdulási egység nem mindig egyezik meg 1 pipnyi elmozdulással – erre a legegyszerűbb példa az, amikor brókerünk a szokásos 4 tizedesjegy helyett 5 tizedesjegy pontosságot szolgáltat. Az EURUSD esetében itt 0.00001 elmozdulás 1 „igazi” pipnek csupán a tized része.
Leírva bonyolultabban hangzik, próbálgassátok a szkriptet és megértitek miről van szó.
Paraméterek
A szkript a következő lehetséges beállításokat rejti magában (a C0, C01, stb. paraméterek csak magyarázatként funkcionálnak) :
MagicNumber
A megadott magic számú pozíciókat veszi csak alapul. Amennyiben a paraméter értéke 0, akkor minden pozícióval számolunk
Frissítve: a 0.5-ös új verzióban a MagicNumber paraméter működése egy kicsit megváltozott. Ha -1 (alapértelmezés), akkor az összes pozíciót alapul veszi az adott instrumentumon belül; ha 0 akkor pedig csak azokat, amelyeknek nincsen magic száma. Így egy robot futtatása mellett nyitott kézi menedzselő pozícióinkat is külön vizsgálhatjuk.
OverrideCalcMode
Ritkán előfordulhat, hogy bizonyos instrumentumokra helyezve a szkript nem számol pontosan. Ezeknél az instrumentumoknál érdemes kipróbálni, hogy megjavul-e a számítás, ha ezen paraméter értéke true.
Az esetek 99%-ban ehhez a paraméterhez nem kell nyúlni, értéke mindig lehet false.
LabelFontColor
Frissítve: A szövegcímkék színe, hogy ne csak fekete alapszínű chartokon lehessen használni a szkriptet.
Frissítve: A letölthető fájlban van egy alapból kék színnel ellátott változat is, a fehér háttérrel kereskedők számára (hogy ne kelljen mindig állítgatni)
Letöltés
Visszajelzés
Természetesen várom visszajelzéseiteket és kommentjeiteket a szkripttel, illetve a paraméterek magyarázatával kapcsolatban! Túl sokat nem teszteltem a CFD és FUTURES instrumentumok kapcsán, így ha azok esetében esetleg hibás számítást tapasztaltok, mindenképpen írjátok meg!
Akinek pedig tetszik a cucc, az nyomjon Like-ot és kommenteljen! Nem nagy kérés egy jó kis szkriptért cserébe:)
Frissítés
2012. 02. 28 – javítva egy spread okozta eltérés sell pozíciók számítása esetén
2010. 12. 06 – javítva egy hiba; függő megbízásokat többé nem számolja bele a lotokba a szkript
2011. 07. 20 – a szkript pontosabban számol CFD és FUTURES instrumentumokon, illetve a P/L pipenként számítása is javítva lett
Haló mester,
Letöltöttem a kütyüt, tetszik a jószág.
Amit észrevettem, hogy a lotokba beleszámolja a függő megbízásokat is nem csak a nyitott pozikat. Lehet hogy ez direkt van, nemtudom.
Csak ennyi. Köszi
Jogosnak tűnik a hibajelentés, meg fogom nézni és javítom majd! Köszi!
Javítottam a hibát, most már nem számolja bele a függő megbízások lotjait!
Szia Radu!
Köszi a scriptet, nagyon hasznos. Egy kérdés, kérés: azt nem lehetne esetleg megoldani, hogy a megjelenített adatokat magic-számonként is kijelezze?
Felírom a tennivalók közé, de szerintem leghamarabb az ünnepek után vagy jövőre tudok előrukkolni vele.
Köszönöm, várok türelemmel!
Frissítettem a bejegyzést, próbáld ki a magic számos változatot!
Nagyon gyors voltál, én pedig lassú! Csak ma láttam, hogy frissítetted! Hálás köszönet!
Szia Radu!
Nagyon tetszik ez a script :)
Nagy kérés lenne ha a világos hátterű felhasználóknak feltennél egy fekete változatot? Kicsit zavaró a mentést minden alkalommal betölteni, hogy fekete legyen.
Vagy narancssárga ami fekete és fehér háttérnél is jól látszik.
Módosítottam a zip fájlt – most már találsz benne egy alapértelmezésként kék színnel ellátott szkriptet is!
Cserébe lájkot meg megosztást kérek!:)
Köszi, így már tökéletes!
Lájkolóm nincsen, viszont a témában érdekelteknek mesélek rólad és az oldalról! :)
Köszi, teljesen jó! :)
Szia Radu
Most kezdtem keresni az MT4 hez segédletet, mert szerintem elég nehézkes a kezelése. Ehhez rendkívül hasznosak a progijaid örülök, hogy rátaláltam. Én az Oanda webtraderhez hasonló segédletet kerestem a neten amikor az oldalra akadtam. Azaz grafikus order be és sp/tp mozgathatóság grafikusan. Viszont találtam valami hasonlót a tiedhez metatraderlibrary.com/tradetools.php, de ezt is lehetne még fejlesztgetni. köszi a szkriptet
Nincs mit. Köszi a tippeket, jó cuccok! A jövőben nálam is lesznek majd hasonló expertek/szkriptek.
Találtam egy megoldást a DragDrop segédet, ez is nagyszerű.
forum.tozsde.hu/tozsdei-elemzo-programok/207-metatrader-4-a.html
Erre a drag kérdésre még az MT5 íroi sem gondoltak.
Köszi a tippet, érdekes. Az az egy bajom van vele, hogy a működési üzenetek oroszul vannak. Drag&drop megoldást egyébként én is szoktam használni a projektekben, egész elfogadható megoldássá nőheti ki magát, ha jól használja az ember.
frissen regisztrált Tag vagyok és nagyon örülök, hogy rátaláltam erre az oldalra. Már néhány éve foglalkozom Robotolással és végre van egy olyan hely, ahol kellő mennyiségű ismeret áll rendelkezésre az úttörők számára. Gratulálok és köszönöm.
Köszönöm a visszajelzést!
Szia Radu, köszönöm a scriptet nagyon hasznos. További sikeres fejlesztéseket!
Szia!Régen voltam az oldaladon ez idáig minden programodat használtam tökéletesen működött de most a Profit calkulátor nem a pontos értéket mutatja !Letöltöttem az ujjat állítgattam de így sem !Kb 10 eur eltérést látok a sell poziknál a pillanatnyi árfolyamnál és a számlán lévőnél!Tudok ezen valahogy állítani?Köszi
Írd meg a pontos környezetet: bróker neve, instrumentum. Enélkül nem tudom reprodukálni az esetleges hibát.
Ellenőrizd a verziószámot is, hogy a legfrissebb szkript (0.7) van-e nálad!
Igen az új verzió van mert ma töltöttem le és a réginél is így jelezte.Környezet:MT4 Broker:Insta forex Instrumentum:Gbp-Usd
Szia!Tudtál valamit kezdeni vele?
Szólok, ha rá tudtam nézni – leghamarabb holnap vagy jövő hét elején. Addig próbálgasd ki több instrumentumon, hogy ott jelentkezik-e a hiba.
ok!
Megnéztem de a többin is így mutatja!Ha csak egy pozi van nyitva akkor pontos de ha több akkor van gond.
Letöltöttem, köszönöm.