Címkézve: 

3 bejegyzés megtekintése - 1-3 / 3
  • Szerző
    Bejegyzés
  • naburus
    Tag
    Bejegyzések száma: 19

    Hello, ismét van egy gondom.

    Van egy ciklusom. (Nem az egész kódot rakom be csak a lényeget.)

    for(int i=1; i<=OrdersTotal(); i++)
    bool os=OrderSelect(i-1,SELECT_BY_TICKET);
    Bejárja az összes megbízást.

    Majd csinálok egy megbízás módosítást.

    bool om=OrderModify(OrderTicket(),OrderOpenPrice(),ActualTrendPoint,NULL,0,Blue);

    Ott van a gondom, hogy ha egy Stoploss lezárt egy megbízást, mintha azon is akarna stoplosst változtatni ami dob egy 4108 as hibakódot.

    Hogy lehet megvizsgálni hogy egy megbízás le e van már zárva? Mert azon nyilván nem akarok OrderModifyt, lefuttatni. Itt az api de semmi hasonlót nem találtam. (http://docs.mql4.com/trading) Talán a OrderCloseTime
    de fogalmam sincs hogy lehet 2 dátumot összehasonlítani, kisebb vagy nagyobb az if ben hibát dob.

    Illetve a Takeprofit helyén van egy NULL, ez egyébkényt helyes megoldás? Mert nem akarok Takeprofit szintet, csak a stoploss dobjon ki a tradeböl.

    Radulovic Attila
    Tag
    Bejegyzések száma: 653

    A zárási ciklusod helytelen, így semmiképp ne használd. Olvasd el ezt a cikket.

    Az, hogy egy megbízás le van zárva úgy ellenőrizhető, hogy az OrderCloseTime() függvény által visszaadott érték nagyobb, mint nulla. Azaz van zárási időpont.

    A dátumokat és időpontokat az MT4 unix timestampben tárolja, ezt vedd figyelembe.

    naburus
    Tag
    Bejegyzések száma: 19

    Ok kösz a cikket már olvasom is. :)

3 bejegyzés megtekintése - 1-3 / 3
  • Be kell jelentkezni a hozzászóláshoz.