6 bejegyzés megtekintése - 1-6 / 6
  • Szerző
    Bejegyzés
  • NemethAttila
    Tag
    Bejegyzések száma: 27

    Egy kis segítséget szeretnék kérni az alábbiakban:
    Az XM-nél van egy számlám ami beállítása szerint 0.01 min lottal nyitható, a maximális lot méret 50 lehet…
    Azonban ha a „MarketInfo(Symbol(),MODE_MINLOT);” kiíratom hogy mekkora a minimális lot, szintén azt írja hogy 0,01 a minimális lot. De ha a minimális lot lekérdezése alapján akarok robottal pozíciót nyitni akkor OrderSend 131-es errort dob vissza. De pl ha átállítom, hogy kösse a minimális lot 10szeresét adott esetben 0,1-et akkor viszont hiba nélkül köt.
    Ezek alapján nem is értem, hogy akkor most ha lekérdezem hogy mekkora a minimum lot miért írja ki azt hogy 0,01 ha nem is annyi. Továbbá ugyan ez a helyzet a „MarketInfo(Symbol(),MODE_MAXLOT);” esetében is. A bróker cég 50 lotban maximálta a nyitást, de mégis a marketinfóval azt írja ki, hogy 1000 lotot nyithatok. Vagy rosszul használnám ezeket a feltételeket?
    Köszönöm a segítséget
    Németh Attila

    Radulovic Attila
    Tag
    Bejegyzések száma: 653

    Nem lehet, hogy bedrótozod az instrumentum nevét? XM-nél pl. EURUSDmicro-n akarsz kötni, de a MarketInfo-ban meg EURUSD -t adsz meg. Szinte 100%, hogy ilyesmi oka van, a minimum/maximum lotméretek lekérdezése során nem gyakran futni bele problémába.

    Vagy az EURUSD-n akarsz kötni, aminek a minimum kötésmérete valóban lehet 0.1. A lényeg, hogy mindig a Symbol() -t vagy a megfelelő függvényeknél a NULL -t használd!

    Második lehetséges problémaként a helytelen tizedes pontosságot tudom említeni; próbálkozz a NormalizeDouble(lotméret, 2); -vel, ez tuti működni fog.

    Ha egyik sem vezet eredményre, a pozíciónyitó részt másold be ide a fórumba és megfejtjük, mi a probléma. A kód többi része irreleváns, csak a lotméret számítás / deklarálás és a nyitás legyen benne.

    NemethAttila
    Tag
    Bejegyzések száma: 27

    Igen az XM-nél micro lotos számlám van, egyik kódban sem használok soha konkrét szimbólum hivatkozást. Minden esetben Symbol()-t használok.
    A NormalizeDouble-val sem javult a helyzet sajna.
    Szóval a robot érdemi része:
    extern int LotSizeX = 1; //ez nálam a marketinfóvel lekérdezett minimum lot jelen esetben 1 szeres szorzata
    double LotSize = 0.01; // a lotsizra hivatkozok a kódokban a további részekben…
    majd a meghívom a marketinfót:
    LotSize = MarketInfo(Symbol(),MODE_MINLOT)*LotSizeX;

    aztán a pozició nyitásnál az OrderSendnél ezt a LotSize-ot hivatkozom meg.
    ….. = OrderSend(Symbol(), OP_BUY, LotSize, Ask, 3, 0, 0, „primary buy”, magicSz, 0, Blue);

    Szóval a lényeg hogy ha ezt egy sciptre rakom hogy printeljen ki mindent akkor azt írja hogy 0.01 a minimum lot de annyit viszont nem enged kötni csak 0,1-et

    De más számlán pl az IronFxnél (tudom szar cég de tesztelésre jó :D ) a számla valóságának megfelelően kérdeződik le minden. Ott gond nélkül nyit 0.01-et.

    Radulovic Attila
    Tag
    Bejegyzések száma: 653

    Értem, örülök hogy nem használsz semmit „bedrótozva” ;)

    Még egy gondolat: az extern változó módosítását kerüld el ilyen esetben, illetve a LotSizeX változó is legyen double. Ezek csak megjegyzések, lehet hogy ez sem segít. Az OrderSend-be a lotméretnél rakj be egy NormalizeDouble() -t, és nézd meg úgy is még egyszer:

    ... = OrderSend(Symbol(), OP_BUY, NormalizeDouble(LotSize, 2), Ask, 3, 0, 0, "primary buy", magicSz, 0, Blue);
    

    Tényleg nem tapasztaltam még ilyasmit, mint amit leírtál.

    NemethAttila
    Tag
    Bejegyzések száma: 27

    Köszi a tippeket:)
    Ma pont felhívott valaki az XMtől hogy mennyire vagy elégedett a számlámmal és tud-e valamiben segíteni. Elmeséltem neki is a problémámat. Aztán mondta hogy most már az XMnél nem lehet micro loton 0.01 lotot kötni mert most költöztetik át magukat az UK-be és most már nekem is UK számlám van és ott nem lehet vagy ilyesmi. Aztán mondom oké, ez rendben van, de sok robot működik úgy sok embernél hogy Marketinfó lekérdezés alapján nyit és akkor ez mindenkinél problémát fog okozni, hogy a MarketInfó azt jelzi hogy 0,01-et is lehet kötni közben meg nem lehet csak 0.1-et.
    Aztán mondta hogy jó érti ezt a problémát fogja jelezni az illetékeseknek, bár nemtudom hogy így lesz-e mert még azóta is ez a helyzet. De pl lekérdeztem a MODE_LOTSTEP-et is aztán ott pl csak 0,1 van.

    Szóval a lényeg, úgy néz ki ez szolgáltató hiba lesz:)

    Radulovic Attila
    Tag
    Bejegyzések száma: 653

    Szuper vagy, köszönjük az információt! Reméljük, minél hamarabb javítják majd.

    Azt felejtettem el csak a nagy izgalomban javasolni, hogy próbálj kézzel 0.01-et kötni :) Nyilván ha az nem megy, akkor rögtön kiderült volna, hogy szolgáltató oldali a hiba. :)

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