Forex programozás › Fórum › Kérdések az MQL4 programozási nyelvvel kapcsolatban › Nyitott megbízás zárása időre
Címkézve: időre zárás
-
SzerzőBejegyzés
-
Hogyan tudom mql4-ben megadni azt, hogy egy pozíció megynyitása után, mondjuk két héten belül nem zár le sem tp-ra, sem sl-ra akkor zárjon ott ahol két hét letelte után van az árfolyam?
Előre is köszi
Az TimeCurrent() (aktuális brókeridő) és az OrderOpenTime() (pozíció nyitási időpontja) különbségét vizsgálod rendszeresen. Amennyiben a kettő különbsége nagyobb vagy egyenlő, mint 1209600 (14 nap másodpercben kifejezve), akkor zársz.
Természetesen ha naptári napokat kell figyelni, akkor egy hangyányit eltér a kód, de az alapötlet akkor is ez.
Szia
Sajnos még mindig nem sikerült megoldani a zárást időre.
for (x=1; x<=OrdersTotal(); x++) { if (OrderSelect(x-1,SELECT_BY_POS)==true) if (OrderOpenTime()+1209600<=TimeCurrent()) close = OrderClose(x,lotsell,Ask,2); }
Ezt írtam, de valamiért nem működik.
A megbízásokat SELL-re nyitottam
A program előző részét úgy írtam,hogy semmire ne tudjon lezárni csak időre.
Az első megbízást lezárja időre vagyis 2 hétre eddig OK.
A másodikat lezárta a 3. megbízás nyitási idejétől 2 hétre.
A harmadikat lezárta az 5. megbízás nyitási idejétől 2 hétre.
A negyediket lezárta a 7. megbízás nyitási idejétől 2 hétre és így tovább
OrderClose error 4108 ezt a hiba kódot írja de ezzel nem sokra mentem.
Ha meg tudnád írni, hogy mi a hiba megmentenél a gumiszobától.Előre is köszi
Első körben olvasd el ezt a cikket, mert az OrderTotal() -os for cikluson belüli zárást nem javaslom.
A feltételt pedig add meg így:
if (TimeCurrent() >= OrderOpenTime() + 1209600) { //zárás a cikkben leírtak alapján (tömbbel) }
Az általad megadott kód két héten belül próbál zárni állandóan, nem két hét múlva. Ezért kapod a 4108-as invalid ticket hibákat is.
-
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.