bróker szerver túlterhelés2016-11-15T16:56:50+00:00

Radu.hu Fórum Egyéb bróker szerver túlterhelés

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

    Szia Radu és bárki akinek tapasztalata van!
    Fura gondom akadt: Fejlesztgettem egy EA-t, ami demo számlán több páron minden különösebb gond nélkül futott. Ugyanez a jószág éles számlán egy páron szépen csinálta a dolgát, ezért rátettem 4 párra az EA-t. Kb egy hét után kaptam egy mail-t, hogy a robotom nagyon leterheli a bróker szerverét, mert túl nagy frekvenciával küldözget tranzakció kérést. Na most, az EA 15 perces charton kereskedik, a kötéslista szerint szó sincs HFT-ről -amit nehezen lehetne MT4-en keresztül eredményesen űzni- nagyon ritkán zár egy órán belül…
    Az egy páron futtatott problémamentes éles és a négy páron futtatott problémás éles között annyi a különbség, hogy az utóbbi verziónál gyakrabban iratom ki a számlaegyenleget.
    Kérdés: Okozhat egy “Print….” parancs ilyesmit, ha túl gyakran kérem le és íratom ki a számla aktuális egyenlegét? Ha nem, akkor valami ötlet?
    A VPS, amin az EA fut nem a brókernél van.
    Köszönöm

    Radulovic Attila
    Tag
    Bejegyzések száma: 646

    Szia kosza!

    Látatlanban nehéz így erre bármit mondani, minden esetre önmagában a Print() függvény nem okozhat ilyen problémát. Azt ellenőrizd, hogy az alábbiak közül van-e olyan, amely túlságosan gyakran (pl. tickenként) fut:

    OrderSend(), OrderModify, OrderClose, OrderCloseBy.

    Ezek azok, amelyek valamilyen parancsot küldenek a brókercég szerverére.

    kosza
    Tag
    Bejegyzések száma: 23

    Köszönöm. Ahogy megfejtettem, vagy -ami valószínűbb- lesz még kérdésem, szólok.

    kosza
    Tag
    Bejegyzések száma: 23

    Radu, ránéznél erre? Lehet az volt a baj, hogy a különböző párokon elfelejtettem más magic no-t megadni, így szerencsétlen különböző párokat akart mergelni OrderCloseBy()-el? Nem kellett volna zsákszám kapnom a hibaüzeneteket?
    Köszönöm

    if(PosTpClose==1&&LoLot()*ShLot()>0) //ha egy páron mindkét irányban van nyitott pozi….
    {
    if(((OpLoPr()*LoLot()+ OpShPr()*ShLot()))>MinPrPip()) // …és a pipben mért eredmény nagyobb, mint MinPrPip (OpLoPr()*LoLot() jelentése: nyitott long eredmény szorozva a pozimérettel)
    {
    for(i=0; i<OrdersTotal(); i++) // Order searching cycle
    {
    if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
    {
    if(type== OP_BUY)MagicLong=OrderMagicNumber();
    if(type== OP_SELL)MagicShort=OrderMagicNumber();
    if(MagicLong!=MagicShort)
    {
    CloseOrders(OP_SELL);
    CloseOrders(OP_BUY);
    }
    if(MagicLong==MagicShort)
    {
    type=OrderType();
    if(type== OP_BUY)LongTicket=OrderTicket();
    if(type==OP_SELL)ShortTicket=OrderTicket();

    RefreshRates();
    if(Merge==1) OrderCloseBy(LongTicket,ShortTicket,clCloseBy); // ha mergelés engedélyezett mergelje őket össze
    if(Merge!=1)
    {
    CloseOrders(OP_SELL);
    CloseOrders(OP_BUY);
    }
    }
    }
    }//for(i=0…..
    }
    }//if(PosTpClose==1&&LoLot()*ShLot()>0)

    Radulovic Attila
    Tag
    Bejegyzések száma: 646

    A kódod felépítése nekem kissé ködös. Első körben mindenképp ajánlom ezt a cikkemet, mert ebben kitérek például a for cikluson belüli lezárás esetén felmerülő problémákra.

    kosza
    Tag
    Bejegyzések száma: 23

    Kösz, megnézem.

6 bejegyzés megtekintése - 1-6 / 6

A hozzászóláshoz jelentkezz be!

Adhatok Neked még több ingyenes tartalmat?

Értesítelek hetente megjelenő új tartalmaimról.

Hozzájárulok, hogy az adatvédelmi nyilatkozat szerint biztonságosan kezeld megadott adataimat, valamint hasznos anyagokat és egyedi ajánlatokat küldj nekem termékeiddel, szolgáltatásaiddal kapcsolatban e-mailben