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

    Sajnos elég kezdő vagyok ezen a téren, de végigbogarászva a fórumot, nem találtam rá a megoldásra.
    A problémám a következő:
    int start()
    {
    if (OrdersTotal()==0)
    int kezdoelad = OrderSend
    (Symbol(),OP_SELL,0.1,Bid,5,Bid+100*_Point,Bid-100*_Point,NULL,0,0,Red);
    if (??Nem tudom hogyan??)
    Ordersend
    (Symbol(),OP_BUY,0.1,Ask,5,Ask+100*_Point,Ask-100*_Point,NULL,0,0,Blue);}
    ???????
    Tehát az első részben egy eladást indítok ami a robot indításának a pillanata amivel nincs baj, viszont a 2. if parancs után már rengeteg mindent kipróbáltam hogy az előzőleg bezárt kereskedés után automatikusan nyissa meg de nem sikerült.
    Valamint nem tudok új parancssorokat kezdeni értem ezalatt, hogy egy különálló „if” et sem tudok indítani, mert az int start már egyszer megvolt igy ujra nem kezdhetem azzal.
    Lehet butaság amit írtam de valahogy elakadtam.
    Előre is köszönöm a segítséget.
    A cél az lenne, hogy a legutoljára lezárt kereskedés indítana be egy új folyamatot, és persze ettől az összeállítástól függetlenül más stratégiákat is tudjak alkalmazni, például ha az aktív kereskedések nagyon mínuszosak akkor nyit egyet ellentétes irányban.

    Adrian001
    Tag
    Bejegyzések száma: 6

    Tovább haladtam, és konkrét időre már tudom aktiválni a kereskedést, de ez sikerült párszor, azóta nem tudok kereskedni élesben demó számlán, a teszter meg egy csomó error 130 at ír ki pedig semmin nem változtattam. először buy-nál nem történt semmi, de most már sell-nél sem csak az error 130, mi lehet a gond… hogyan lehet megoldani ezt a hibát?

    Adrian001
    Tag
    Bejegyzések száma: 6

    Hát újra kezdtem az egészet tiszta lappal, fejjel, erre jutottam:
    extern double Profit = 40; //A profit (T/P)
    extern double Befektetes = 0.1; //Kereskesdés osszege
    extern double Stopploss = 150; //stopploss
    extern int Maxkereskedes = 100; //kereskedesek max szama
    extern int Leptek = 15; //Mozgási érték pippben
    extern int csuszas = 3; //slipp
    int eladas,
    eladasstopp,
    vetel,
    vetelstopp;
    int start()
    {
    if (OrdersTotal()<=1) //Ide kellene valami, hogy ha lezárul egy kereskedés profittal, akkor a lentieket mind hajtsa végre
    {
    eladasstopp=OrderSend
    (
    Symbol(),
    OP_BUYSTOP,
    Befektetes,
    NormalizeDouble(Ask+Leptek*_Point,Digits), //Remélhetőleg az aktuális ár felett 150 nél rakja le
    csuszas,
    Stopploss,
    Profit,
    NULL,
    0,
    0,
    Blue,
    );
    eladas=OrderSend
    (
    Symbol(),
    OP_BUYLIMIT,
    Befektetes,
    NormalizeDouble(Ask-Leptek*_Point,Digits), //Remélhetöleg az aktuális ár alatt 150 nél rakja le
    csuszas,
    Stopploss,
    Profit,
    NULL,
    0,
    0,
    Blue,
    );
    vetelstopp=OrderSend
    (
    Symbol(),
    OP_SELLSTOP,
    Befektetes,
    NormalizeDouble(Bid-Leptek*_Point,Digits), //Remélhetöleg az aktuális ár felett 150 nél rakja le
    csuszas,
    Stopploss,
    Profit,
    NULL,
    0,
    0,
    Red,
    );
    vetel=OrderSend
    (
    Symbol(),
    OP_SELLLIMIT,
    Befektetes,
    NormalizeDouble(Bid+Leptek*_Point,Digits), //Remélhetöleg az aktuális ár alatt 150 nél rakja le
    csuszas,
    Stopploss,
    Profit,
    NULL,
    0,
    0,
    Red,
    );
    }

    Adrian001
    Tag
    Bejegyzések száma: 6

    Elnézést, egy sorba kellett volna írnom de csak bemásoltam, és még annyi, hogy mind a négy megbízásnál „sintax error, parameter missed”-et ír ki, de nem tudom miért….Többször átnéztem nem hiányoznak paraméterek, vagy csak én siklottam el valami felett…??

    Radulovic Attila
    Tag
    Bejegyzések száma: 653

    Szia!

    Első körben az utolsó pozíció megállapítását szükséges megértened, kipróbálnod és megtanulnod: ebben a bejegyzésben írtam róla.

    Az utolsó bejegyzésedben a Red szó után van egy felesleges vessző, azt vedd ki, illetve a Red helyett a clrRed konstanst használd.

    A további elvárásod kapcsán főként szervezési problémákba fogsz belefutni. Figyelmedbe ajánlok egy konzultációt, amikor is az összegyűjtött kérdéseidre online beszélgetésben adok választ megosztott képernyőn, és segítek elkészíteni azokat a kódrészeket, amelyekre szükséged van. Ez egy jó indulási alapot adna, így sok időt tudnál spórolni magadnak.

    Adrian001
    Tag
    Bejegyzések száma: 6

    Köszönöm a segítségedet, a MetaEditor már nem jelez hibát, azonban élesben nem működik, a teszter pedig, vagy error 131 et dob vissza vagy néha error130 at
    Valamint köszönöm a felajánlást a konzultációra, megfontolom, de számomra akkor sem világos, hogy számlán miért nem akar működni, de még ha csak egy sellimitet hagyok akkor is error 131 kódot dob vissza. Mi lehet ennek az oka?
    Egy külföldi oldalon olvastam, hogy ennek oka lehet a gépemen futó programok által okozott sérülése a registry filekben vagy valami hasonlót szűrtem le.

    Radulovic Attila
    Tag
    Bejegyzések száma: 653

    A 130-as és 131-es hibák jelentését itt tudod megnézni.

    Elképzelhető, hogy a lotméretet vagy az SL/TP szinteket adod meg rosszul. Vedd figyelembe, hogy a legtöbb számlán a nyitás pillanatában nem lehet beállítani az SL/TP-t, csak közvetlenül a trade megnyílása után. Én erre tippelek.

    A gépeden futó programoknak és a registry-dnek az ég világon semmi köze ezekhez a problémákhoz.

    Adrian001
    Tag
    Bejegyzések száma: 6

    Nagyon szépen köszönöm a sok segítséget nagyon hasznos volt, csak ajánlani fogom az oldaladat, megszületett az első normális EA-m tökéletesen működik immáron, most majd ki fog derülni, hogy a stratégiám életképes e… És igen a kereskedés megnyitása után kell visszakeresni és beállítani az értékeket.

    Radulovic Attila
    Tag
    Bejegyzések száma: 653

    Nincs mit, hajrá, és köszönöm a jövőbeli ajánlásokat! Tesztelj sokat és alaposan, mert rengeteg olyan esemény történhet a kereskedés során, amelyet kezelni szükséges.

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