Hozzászólások
-
SzerzőBejegyzés
-
Hozzászólás: Mely sablonok vannak betöltve #5203
Kedves István! Nem tudok sajnos olyan funkcióról, amellyel a kérdésed megoldható lenne – sem manuálisan, sem szoftveresen nincs mód arra, hogy MT4-ben megállapítsuk, mely sablon van aktuálisan a chartra helyezve.
Tudomásom szerint nem lehet külső forrásból adatokat importálni Tickstory-ba, hol láttál ilyesmit? Kizárólag a Dukascopy szerveréről származhatnak adatok. A többi kérdésed a TSL-el kapcsolatban ezért – szerintem – tárgytalan.
A Ninjatrader adatok importálására a CSV2FXT módszer valószínűleg jobb választás. Nagyon rég dolgoztam ezzel a szkripttel, azt nézd meg, hogy az alapvető formátum micsoda, amivel a szkript dolgozik. Ugyanebbe a formátumba kell pakolnod a Ninja-s adatokat is, amit aztán a CSV2FXT-vel be tudsz olvastatni.
A TSL-ból puskázva a birt’s formátum:
Timestamp,Bid Price,Ask Price,Bid Volume,Ask Volume
2012.01.12 01:02:10.100,1.24233,1.24271,1.1,1.2
2012.02.13 02:04:10.332,1.24243,1.24262,1.5,1.3Ezt kell tehát létrehoznod a Ninja adatokból is, én ezzel próbálkoznék legelőször.
Hozzászólás: MT4 nem válaszol #5159Örülök, hogy megoldódott. Köszi Roden a válaszokat!
Hozzászólás: MT4 nem válaszol #5150Roden tippje teljesen jó, de valóban, abban az esetben ha valaki nem ismeri az adott terminál rendszermappa elérhetőségét, akkor nem tud elindulni ezen a vonalon.
A C:\Felhasználók\AppData\Roaming\MetaQuotes\Terminal\ könyvtáron belül egy szimpatikus kriksz-krakszos könyvtárnév alatt találhatóak a gépre telepített MT4 terminálok rendszermappái. Franci, ezeken belül keresd meg azt amely MQL4\Experts\ könyvtára tartalmazza az adott expertet, és hajtsd végre a Roden által leírtakat, majd indítsd el az adott terminált. Várhatóan így el fog indulni. Ha nem, akkor a maradék 4 szkript, vagy valamilyen meglévő indikátor / expert okozza a problémát.
Hozzászólás: #property version #5149A property beállítások lekérdezésére tudtommal nincs (sajnos) lehetőség.
Automatikus növelésre szintén nincs technikám, én magam egy saját VERSION konstanst alkalmazok a property-féle version-nel együtt. Amúgy nagyon ajánlom, én minden elkészített robotban használom a verziószám követést.
Hozzászólás: MT4 build 950 kifagy #5138Igen, pontosan ezt mondom, jól értelmezted – köszi az összefoglalást. Az elhanyagolható esély jó megfogalmazás, hat év fejlesztés után nem volt probléma a kódjaimmal, így ezt saját tapasztalattal alá tudom támasztani.
IE-t jómagam nem használok, de köszönöm a visszajelzést – Chrome és Firefox alatt ilyesmi hibát nem tapasztaltam még, így elsőre azt mondanám, hogy vagy az IE-ben, vagy a blogmotorban van hiba. Az utóbbit azért nem gondolom, mert az ilyesfajta munkameneti adatokat nem szokták böngészőfüggővé tenni.
Hozzászólás: alapműveletek #5136Ja, arra figyelj: a számlanyitásnál a tőkeáttétel automatikusan megváltozik a beírt tőkeméret függvényében. Lehet, hogy 1:200-at akartál nyitni, de végül 1:500 lett.
Hozzászólás: alapműveletek #5135Nyitottam egy USD alapú demó számlát, 1:500-as tőkeáttétellel.
1 lotos [SP500] instrumentum esetén a marginom: 10.58, ennyit ír ki a szkriptem is. A kalkulátor nekem 10.55-öt mutat, ami így azt mondom, hogy helyes.
Nyitottam egy HUF alapú demó számlát, 1:500-as tőkeáttétellel.
1 lotos [SP500] instrumentum esetén a marginom: 2890.50, ennyit ír ki a szkriptem is. A kalkulátor nekem 2884.65-öt mutat, ami így azt mondom, hogy helyes.
Hol a probléma? Lemaradtam :)
Hozzászólás: MT4 build 950 kifagy #5134„De fura megemészteni, hogy egy külső paramétrekkel operáló függvény nem mindig az aktuális értéket adja vissza.”
Nem azt mondtam, hogy nem az aktuális értéket adja vissza! Valószínűleg nem volt egyértelmű a megfogalmazásom, elnézést.Én minden eljárásomat úgy építem fel, hogy a logikai gondolatmenetben ne jelentsen az problémát, hogy ha a ticken belül az OrdersTotal() értéke megváltozik. Természetesen fog, hiszen ha pl. egy zárást végzünk (akár a tömbös megoldással), majd nyomunk utána egy pozíció számlálást, és a program megy a további teendők felé, akkor az OrdersTotal() már a lezárásá utáni, helyes és lehető legkurrensebb eredményt ad vissza.
„MarketInfo(„GBPUSD”,MODE_BID) fügvény biztosan ugyanazt az értéket adja akkor is ha OnTick()végén újra lekérdezem, és közte volt egy hosszas analízis (és GBPUSD-n meg záporoztak a tickek).”
Egy tick lefutása mindenképpen gyors kell, hogy legyen. A gyors természetesen relatív, tudom. Viszont mindennek úgy kell felépítve lennie, hogy ha a futás közben változás van, akkor vagy automatikusan, vagy kérésre – lásd RefreshRates() – történő változások ne okozzanak gondot a programlogikában.„Mégis a(z ‘összeszámláló’) For cikluson belül hajtok végre sikeres zárást, de ez nem befolyásolja az OrdersTotal() értékét.”
De, befolyásolja – pont ezért kellett a tömbös megoldás. Ezzel 100%-ig egyetértek, csak bután fogalmaztam. Ha nem gondolnám így, akkor nem született volna belőle cikk sem :)Én arra gondolok, hogy a for ciklus előtti lekérdezés és a for ciklus – ha pl. pozíciógyűjtésre használjuk – lefutásának ideje alatt nem fog változni az érték. Én ezért nem tárolom el külön változóban az OrdersTotal() értékét. Magyarul: minden olyan teendőt, ami hosszabb időt vehet igénybe, kiszervezek pl. tömbös megoldásként. Minden más gyorsan történik, tehát még 200 pozíció végignyálazása sem vehet igénybe annyi időt, amely során megváltozik az OrdersTotal() értéke.
Hozzászólás: MT4 build 950 kifagy #5122Én az évek során nem tapasztaltam ebből fakadó problémát vagy furcsaságot. Ticken belül biztosan nem változik az OrdersTotal() által visszaadott érték, más kérdés, hogy régen divat volt az expertet végtelenítve futtatni, amikor is sosem ért véget az első futtatási példány, hanem azon belül történt kényszerítetten a belső adatok frissítése. De itt most nem ez a helyzet.
Hozzászólás: alapműveletek #5121Melyik brókercég, melyik számlatípusának melyik instrumentumáról van szó?
Felhasználóként vagy programozóként vagy kíváncsi az infókra? Csak azért kérdezem, mert a margin értéke le is kérdezhető.
Hozzászólás: alapműveletek #5116Kedves Gergő!
Egyedi tőkeáttételekkel nem találkoztam még MT4 platform alatt. Úgy tudom tehát, hogy a tőkeáttétel számlához kötődik. Az instrumentum legtöbb kondícióját le lehet kérdezni a brókercégtől, és ilyenkor az adott számladeviza és instrumentum alapján – többnyire – a helyes adatokat adatokat fogod visszakapni.
A pip/tick érték számítása kapcsán ajánlom ezt a cikkemet, a marginról pedig ide kattintva arról is olvashatsz.
Ide kattintva pedig az összes elolvasható cikk listáját kapod az „Olvasnivaló felhasználók számára” részben.
Remélem a cikkek elolvasása után megbocsátod a rövid válaszom, szerintem ezekben a cikkekben bőven elegendő infót találsz ahhoz, hogy a kérdéseidre megtaláld a válaszokat.
Hozzászólás: MT4 build 950 kifagy #5115A legelső pillanatban, amikor a külön tömbbe gyűjtés lezajlik, az idő alatt OrdersTotal() értéke nem fog megváltozni. Ennek az az oka, hogy ez tick-en belül – kivéve ha a programfutás nem extrém lassú vagy szándékosan nem provokáljuk – az OrdersTotal() értéke nem fog automatikusan frissülni. Ez kizárólag az adott tick-hez tartozó futás befejeztével történik csak meg.
Én emiatt teljesen feleslegesnek gondolom, amit leírsz, mert az OrdersTotal() -t rengeteg esetben használom for ciklusban – ahogy a cikk végén le van írva, kizárólag az elején. Zárni nem a for ciluson belül, hanem a kigyűjtött tömb elemszámai alapján iterált for ciklusban zárok.
A javaslatoddal az a probléma, hogy – ha feltételezzük, hogy az OrdersTotal() értéke változik a ciklus elején érvényes értéktől egy más értékre – hiába tárolod el az OrdersTotal értékét, hiszen maguk az indexek is keveredhetnek attól függően, hogy hány pozíció szűnik meg és jön létre egyszerre.
Tehát: az OrdersTotal() for cikluson belül én kizárólag kiválasztást és szűrést végzek, minden más feladatot a kigyűjtött ticket számokkal feltöltött egy- vagy kétdimenziós tömbök iterálásával végzek. Ebben az esetben pedig már ticket számokkal dolgozok, azok pedig nem fognak változni.
-
SzerzőBejegyzés