Forex programozás › Fórum › Kérdések az MQL4 programozási nyelvvel kapcsolatban › terminal .exe meghívása .ini vel és a "/skipupdate"
Címkézve: /skipupdate
-
SzerzőBejegyzés
-
Sziasztok, szia Radu!
Az a kérdésem, hogy hogyan tudnám letiltani a frissítést, amikor .ini fájllal indítom el a terminált?
Pl.: „d:\Program Files (x86)\MetaTrader 4 Admiral Markets AS\terminal.exe” valami.ini /skipupdateNa ez nem tuti… Időnként kilép hirtelen halállal. Ha megcserélem a két switch-et akkor is. Vagy így működnie kellene?
Tudtok egy jó módszert az automatikus frissítés megakadályozására?
Miért is: Ha így indítom („d:\Program Files (x86)\MetaTrader 4 Admiral Markets AS\terminal.exe” valami.ini) és nem kapcsoltam ki azt az áldott értékes automatikus update funkciót, akkor frissítéshez kilép az mt4, egyből indulás után. Aztán persze vissza, DE az .ini beállítások nélkül! Én meg nem értem miért is nem sikerült végrehajtani a folyamatot. Szóval kifejezetten károsnak tartom ezt a frissítést. Legalább rákérdezne, vagy lehetne időzíteni.
Hétvégén indítom, tehát minden hétvégén beleszaladok.Sajnos nem biztos, hogy ezt a problémát át tudod majd hidalni.
Amúgy a saját ini fájlt az melyik meglévő ini fájlra alapozva hoztad létre? Mi célból? Gondolom könnyebb így pár direktívát irányítani.
Had’ tanuljak én is :)
Szia!
Legvégső esetben arra gondoltam, hogy korlátozom a létrehozó tulajdonos hozzáférési jogát a biztonsági házirendben. Csak éppen ezt nem tartom szerencsésnek, mert kizárom a user-t is, és elég macerás visszakapcsolni. Mellesleg, meg egy idő múlva a terminál frissítési figyelmeztetéssel kilép. Ezértlett volna jó egy másik megoldás.
Gondoltam még arra, hogy minden indítás előtt egy .bat fájllal vagy makróval kitöröltetem a webinstall tartalmát (ha nincs benne fájl, nem frissít…), de azt sem tartom elegánsnak. Ez a /skipupdate meg tök jó lenne, ha nem akadna össze az .ini-vel. Idönként elindul és nem frissít, máskor meg indítás után kilép, és nem indul újra.Ami az ini-t illeti, a felhasználók keze eléggé meg van kötve. Az alábbiakat engedi manipulálni:
Common settings:
pl.:; common settings Profile=test 3 MarketWatch=set.set Login=12345 Password=xxxxxx Server=MetaQuotes-demo AutoConfiguration=false DataServer=192.168.0.1:443 EnableDDE=true EnableNews=false Proxy Server Settings
expert beállítás:
; experts settings ExpertsEnable=true ExpertsDllImport=true ExpertsDllConfirm=true ExpertsExpImport=true ExpertsTrades=true ExpertsTradesConfirm=false
expert script, vagy template indítása parancsfájllal:
; open chart and run expert and/or script Symbol=EURUSD Period=H4 Template=popular.tpl Expert=MACD Sample ExpertParameters=macd.set
Én ezt használom:
;start strategy tester ExpertsEnable=false TestExpert=robotom.ex4 TestExpertParameters=robotom.set TestSymbol=EURUSD TestPeriod=15 TestModel=1 TestRecalculate=false TestOptimization=true TestDateEnable=true TestFromDate=2014.11.28 TestToDate=2015.04.10 TestReport=Report_EURUSDmicro_2015.04.10.htm TestReplaceReport=true TestShutdownTerminal=true TestSpread=16.00
stb…
A részletes infó itt található.
http://metatrader.helpmax.net/en/tools/configuration-at-startup/Szóval nem egy extra. Viszont ezek mind megszűnnek létezni amikor az mt4 kitalálja hogy most aztán frissít egy jót.
És persze én hiába is írok nekik, le sem …. amit írok. Egyszer sem jeleztek vissza, és nem is tettek semmit, pedig az ő nyelvükön szólt az üzenet. Úgy gondolom, hogy ez egy hiba, és nem okozhatna gondot beírni a kódba, hogy ha ini-vel indítják el, ne frissítsen. Szerintem ez tök elvárható lenne. A terminál ki is írja sikeres indulás után, hogy „parancsfájllal” indult, log-olja is. Mégis kilép…
Ha te írsz nekik, azt elolvassák? Ha igen, nem javasolnád nekik?Köszönöm a részletes választ!
Nekem van 6 hibajegyem, amire tavaly június óta nem sikerült választ adniuk. Sajnos azt kell mondjam: reménytelenek. Csak a „mainstream” hibákkal foglalkoznak, azokkal is minimális hatásfokkal.
Én abba az irányba indulnék el, amit már te is írtál: Feladatütemezőből rendszeresen futtatott WebInstall törlés.
A frissítésre történő figyelmeztetés az milyen formában jön elő? Felugró ablak, vagy mi?
Egyébként ezt az ini fájlt nem tudod az eredeti helyére rakni? Az nem megfelelő megoldás?
„Mellesleg, meg egy idő múlva a terminál frissítési figyelmeztetéssel kilép.”
Értem ez alatt, hogy akár fél évig is működik az adott verzió, de egy idő múlva kényszerít a frissítésre és az adott verzió nem is lesz tovább használható. Erre gondoltam.„Feladatütemezőből rendszeresen futtatott WebInstall törlés.”
Azt hogyan kell? Ez valami nagyon egyszerű és kézenfekvő megoldás lehet, mert eddig ez nekem nem jutott az eszembe (jellemzően mindig a legkomplikáltabb megoldást választom mert nem vagyok okos)! XD
Már itt is valami kódon, vagy hozzáférés korlátozáson gondolkoztam…A WebInstall helyét tudod, a törlést meg tudod oldani rekurzív könyvtárkereséssel és törléssel. Rendszergazdaként rögzíts egy feladatot a Feladatütemezőben! Ilyet még én sem csináltam, de szerintem a Google ebben is a segítségedre lehet.
Egyébként hol van ez a gép? Mi a cél? Már csak hogy értsem, miért és milyen felhasználókat kell korlátozni:)
Köszönöm az infót, ezt fogom alkalmazni!
„Egyébként hol van ez a gép? Mi a cél? Már csak hogy értsem, miért és milyen felhasználókat kell korlátozni:)”
Ha korlátozom a mappához való hozzáférést a system (ill. a létrehozó tulajdonos) számára akkor semmi sem fog hozzáférni (vagyis fájlokat másolni) a webinstall tartalmához tehát soha sem fog frissíteni (ez a célom). De ez a megoldás nem jó, mert engem is akadályoz, a hozzáféréshez (bonyolult vissza csinálni, ha mégis frissítenem kell). Nem a felhasználó korlátozás a cél.
A gép otthon van és nincs egyéb funkciója. Nem is fér hozzá más (fizikailag :) ).Köszi még egyszer!
Már többször kérdeztem, de mindig másról írtál: mi a végcélja ennek az egyéni ini -s indításnak? Miért nem lehet ezeket a beállításokat a megszokott – saját helyükön lévő – ini fájlokkal vezérelni? Nem tiszta, hogy mi ennek az egész problémának az eredője.
Tulajdonképpen én korábban már bemásoltam azt a konfigurációt amit használok.
„;start strategy tester”
Ez egy teszter. Egy stratégia optimalizáció. Az eredményt pedig a Metatrader egy .htm fájlban tárolja az optimalizáció végeztével. Ebből lehet kinyerni az adatokat, és pl. exel táblázatban szűrve a legjobb paraméterekkel futtathatjuk a robotunkat. Nem kell a gép előtt ülni, csak ha már kész van ( vasárnap este…).
Itt a forrás: http://forum.mql4.com/33965Automatikusan indítja a robot a másik mappába telepített terminal-t ahová már be is másolta az ini fájlt, és amikor kész akkor elküldi e-mail-ben az eredményt (külső dll segítségével), vagy küld egy értesítést hogy kész. Esetleg egy online fájl szinkronizációval (dropbox, cubby, drive stb…) a gépedre is varázsolja.
Az ini fájl ott van a terminal.exe mellett. Tehát nem adok meg neki bonyolult útvonalakat. így néz ki: „C:\………\Terminal\…\terminal.exe optimise.ini” . (Nyilván a Windows csodája miatt a rendszer mappája nem mindig a Program Filesben van, de ez nem érdekes.)
Mi (értsd te és én már leveleztünk korábban priviben akkor konkrétan elküldtem neked egy expertet is ami akkor még nem működött… (Igen… tudom… XD)) már megbeszéltük kb. egy éve, hogy az automatikus optimalizáció egy bonyolult dolog, és legjobb az ilyet c-ben megírni… De végül megoldódott a dolog, és mq4-ben is működik.Sajna eléggé elmentünk a témától, nem azzal volt gondom, hogy indul-e az ini-vel hanem az, hogy az update sok újabb kis bug-ot tol minden héten az arcomba. És mellesleg teljesen értelmetlenül. Amikor konfigurációs fájllal indítom el, nem is szabadna restartolnia! Persze én hiába is írok nekik. Nem akarom elhinni, hogy ilyen logikai hiba senkinek nem böki a szemét rajtam kívül. Gondolom nem akarsz újabb hibajegyet generálni erről is… :)
A kérdésemre viszont kaptam egy elég jó ötletet, amit köszönök szépen.Félek bármennyire is igyekszem nem sikerül minden kérdésedre maximálisan megfelelnem, talán esetleg félre értettem a kérdést, vagy csak másra fókuszáltam írás közben.
Ha vannak kérdéseid ezzel kapcsolatban, szólj (szájba rágósan írj (!) mert nem biztos, hogy egy rugóra jár…), és írok neked (akár privátot is).Köszi a választ. Magyarul az ini fájlt egy másik expertből írod, és ezzel indítja az az expert az MT4-et – gondolom többször, egymás után. A frissítés ebbe kavar be.
Talán a frissítéskor elhasaló példányt kellene újra elindítani, elvégre az hogy frissített ezt a funkciót – mármint az iniből indítást – nem érinti. Magát az ini fájlodat pedig nem hiszem hogy törli, vagy mégis?
Egyelőre nincsen további ötletem ezzel kapcsolatban, sajnálom.
Az ini-t nem törli. Ha frissít akkor kilép és újra indul, de akkor már az ini nélkül (mintha csak ráklikkelnél az ikonra). Tehát nem tölti be még egyszer az ini-t. Nem volna semmi gondom akkor sem, ha frissítene és amikor elindítja az új verziót akkor azokkal a paraméterekkel indítaná el ahogy eredetileg kellett volna.
Sajnos nem tudtam eddig olyan kódot beírni ami ellenőrizné, hogy az adott terminál azt teszi-e amit kell.
Ha már fut, akkor nem lehet újra elindítani, előbb be kell zárni. Ezzel meg az a gond, hogy nem tudja hogy a két terminál közül melyiket kell bezárni.Azon már végig mentem fejben hogy működhet-e az, hogy elindítja a robot a másik terminált, vár egy kicsit aztán leállítja, és újra elindítja de már az ini-vel együtt. Viszont a leállítást nem tudom kivitelezni. Esetleg azt is egy ini-vel ami leállítja a terminált, viszont ha frissít és újraindul, akkor megint csak ott van nekem egy futó terminál (ami nem csinál semmit), amit nem tudok bezárni (mivel másodszorra megint csak ini nélkül indult el).
Ez a számítógép amin fut leginkább egy szerverre hasonlít, és nincs rajta monitor sem. Tehát RDP-vel, vagy vnc-vel tudok ránézni (ha bezárom az ablakot (rdp, vnc, stb. :) ), akkor kijelentkezteti a Windows a felhasználót az Active session-ból…). Makrót nem tudok olyan gépen futtatni amelyikből épp kijelentkezett a felhasználó, tehát ott kellene ülnöm a gép előtt… Vagyis folyamatosan bejelentkezve kellene maradnom ami nem lehetséges az időkorlátok miatt. Meg a két gép működtetése mégis csak értelmetlen.
Ha létrehozok egy virtuális gépet a „szerveren” belül, akkor futnak a makrók amik elindítanák/leállítanák a terminálokat, viszont olyan memória címre próbál írni az mt4 a vm-ben, amit akadályoz a Windows és „Az alkalmazás leállt” típusú hibaüzenetet kapok minden terminál indításkor (A terminál üresen nem áll le, de ha a robottal indul, akkor jönnek a problémák). Arról nem is beszélve, hogy ahhoz mindennek a vm-en belül kellene futnia. Tehát elég erős gép kellene hozzá. A MacroScheduler nevű program pedig nem biztos hogy tudja azt ami nekem kell, és ahhoz elég drága, hogy egyszer kipróbáljam (azt írják, hogy bejelentkeztet egy usert, tehát szerintük tudja).
Szóval a legjobb megoldás a frissítés akadályozása, vagy a terminál robottal való bezárása lenne vagy az, hogy a Metaquotes kijavítaná ezt a problémát.
Köszi még egyszer!Bezárást tudsz intézni EA-ból: MetaTrader4 terminál bezárása a TerminalClose() függvény segítségével.
Méghozzá a következőképpen:
- van egye a szokásos beállítás (mezei ini fájlok a programkönyvtárban) illetve a speciális (általad létrehozott ini fájl)
- a „szokásos” beállításban valami nagyon egyszerű, de ritkán használt tulajdonságot beállítanék a MT4-ben
- az expert – amit fel tudsz ugye helyeztetni ini-ből egy chartra – ellenőrizné ezt a beállítást; ha megegyezik a központi ini beállításával, akkor TerminalClose(), ha nem akkor nem csinál semmit.
Beállítás alatt pl. chart színre, profilra, stb. gondolok – ezeket az új MT4 nyelvben lekérdezhetővé tették. Légy kreatív, szerintem megoldható a dolog. Nyilván egyfajta patkolás, de mégis menni fog.
Köszönöm!
Ezt ki fogom próbálni. -
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.