Hozzászólások

15 bejegyzés megtekintése - 1-15 / 19
  • Szerző
    Bejegyzés
  • káROBOTi
    Tag
    Bejegyzések száma: 28

    Nagyon szépen köszönöm a gyors választ!

    káROBOTi
    Tag
    Bejegyzések száma: 28

    Továbbra sem tudom elindítani a szervert. Ugyan azokat a hibaüzeneteket kapom.(10 dollár így kárba vész ami nem nagy összeg, de azért szívesen szóvá tenném)
    Mql5 nek a forumára is írta, de semmi…

    Minden esetre köszönöm a választ!

    káROBOTi
    Tag
    Bejegyzések száma: 28

    Mt4-es vírtuális szerverer varázslóján keresztül regisztrált szerver.
    Mql5 nek a honlapjáról is ellehet indítani és ott írja ki az error saving data üzenetet.
    Mt4ben pedig azt a választ kapom, hogy nincs kapcsolat a szerverrel.
    Ma regisztráltam egy újat és azzal működik.

    káROBOTi
    Tag
    Bejegyzések száma: 28
    Hozzászólás: zero divide error #4928

    Köszönöm a gyors választ!

    káROBOTi
    Tag
    Bejegyzések száma: 28
    Hozzászólás: Nyilak törlése #3586

    Válaszodat nagyon köszönöm!

    káROBOTi
    Tag
    Bejegyzések száma: 28

    Rendben, megfogadom a tanácsod!
    Köszönöm a segítséged!

    káROBOTi
    Tag
    Bejegyzések száma: 28

    Nagyon köszönöm a segítségeteket!

    Sikerült megoldani:

    if(OrderOpenPrice()<=(Bid-TC_1*Point) && 0==GlobalVariableGet(„Részzárás”)){
    OrderClose(Ticket,0.1,Bid,5,Lime);
    GlobalVariableSet(„Részzárás”,1);}

    if(OrderOpenPrice()<=(Bid-TC_2*Point) && 1==GlobalVariableGet(„Részzárás”)){
    OrderClose(Ticket,0.1,Bid,5,Lime);
    GlobalVariableSet(„Részzárás”,2);}

    if(Ticket==false){
    GlobalVariableSet(„Részzárás”,0);}

    káROBOTi
    Tag
    Bejegyzések száma: 28

    Így próbáltam megoldani:
    TC_1=15;
    TC_2=30;

    // első részzárás
    if(OrderOpenPrice()<=(Bid-TC_1*Point)){
    OrderClose(Ticket,0.1,Bid,5,Lime);}

    // második részzárás
    if(OrderOpenPrice()<=(Bid-TC_2*Point)){
    OrderClose(Ticket,0.1,Bid,5,Blue);}

    Az a baj, hogy amíg igaz a feltétel addig folyamatosan zárja befelé a pozíciót 0.1 lotonként.
    Úgy szeretném megoldani, hogy ha a az első részzárás feltétele igaz akkor csak egyszer zárjon be egy 0.1 lotot a pozícióból és ne többször.
    Ezután jönne második részzárás.

    Köszönöm segítségedet!

    káROBOTi
    Tag
    Bejegyzések száma: 28

    Szia!

    Ezzel a témával kapcsolatban az a kérdésem hogyan lehet azt jól megoldani, hogy mondjuk egy 0.3 lotos pozíciót 3 részletben lezárni?

    OrderClose()függvénnyel próbáltam megvalósítani, de vannak problémáim.

    Az 1.részt 15 pipes, a 2.részt 30 pipes haszonnál akarnám lezárni. A maradék 0.1 lotot pedig a TakeProfit-ra(ami 60 pipes haszon) bíznám.

    Türelmedet és válaszodat előre is köszönöm!

    káROBOTi
    Tag
    Bejegyzések száma: 28

    Így sikerült megoldani:

    for(i=0;i<=OrdersTotal();i++){ 
       if(OrderSelect(i,SELECT_BY_POS)){
       if(OrderMagicNumber()==Magic_EURUSD_buy_a_H1)Buy_H1=true;}}
       if(A_M5_Close-Támasz_H1<=0.0005 && Vétel_M5==True && Vétel_M15==True && Vétel_M30==True && Vétel_H1==True && Vétel_H4==True && Eladás_D1==False){
       if(Buy_H1==false){
       Ticket_EURUSD_Buy_a_H1=OrderSend(Symbol(),OP_BUY,lots,Bid,Slippage,Bid-StopLoss_H1*Point,Bid+TakeProfit_H1*Point,Komment,Magic_EURUSD_buy_a_H1,EURUSD_Expiration,Green);}}
    káROBOTi
    Tag
    Bejegyzések száma: 28

    Köszönöm a segítséget!
    Próbálkozok azzal amit írtál.
    Majd megírom mire jutottam.

    káROBOTi
    Tag
    Bejegyzések száma: 28

    for(i=0;i<=OrdersTotal();i++){
    if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
    if(OrderMagicNumber()==Magic_EURUSD_buy_a_MN1)
    Ticket_EURUSD_Buy_a_MN1=true;
    else
    Ticket_EURUSD_Buy_a_MN1=false;}}
    if(Ticket_EURUSD_Buy_a_MN1==false){
    ** if(A_M5_Close-Támasz_MN1<=0.0005 && Vétel_M15==True && Eladás_M30==False && Eladás_H1==False && Vétel_H4==True && Vétel_D1==True){
    Ticket_EURUSD_Buy_a_MN1=OrderSend(Symbol(),OP_BUY,lots,Bid,Slippage,Bid-StopLoss_MN1*Point,Bid+TakeProfit_MN1*Point,Komment,Magic_EURUSD_buy_a_MN1,EURUSD_Expiration,Green);}}

    Így próbáltam megoldani, hogy ne nyitogassa folyamatosan a pozíciót, de hiába. Amíg a „**”-gal megjelölt feltétel igaz addig folyamatosan nyitja az új pozíciót. Minden új tickénél nyit egyet.

    Régebben küldtél nekem egy ilyen segítséget:
    „A kulcs az, hogy minden gyertya első tickjében fusson le a programod.

    Ezt többféleképpen el lehet érni, pl. a Bars (gyertyák száma) változását figyelve vagy az aktuális szerver idő figyelésével:

    if (Bars != Bars.Prev) {

    // Funkciók

    Bars.Prev = Bars;
    }

    if (TimeCurrent() >= NextRun) {

    // Funkciók

    NextRun = Time[0] + Period() * 60;
    }

    Az első esetben azt használjuk ki, hogy a gyertyák száma csak akkor növekszik ha egy új gyertya elkezdődött.

    A második esetben pedig azt, hogy tudjuk: a beérkező ticknél a gyertyák periodikus időbeli indulásához igazítjuk a legközelebbi futást.”

    Azóta a stratégiám változott, azért nem tudom ezt alkalmazni.

    Türelmedet előre is köszönöm!

    káROBOTi
    Tag
    Bejegyzések száma: 28
    Hozzászólás: ObjectCreate #2255

    Hello Radu!

    for(i=1;i<=20;i++){
    if(iHigh(Symb,PERIOD_D1,i)-Bid<=0.0015){
       bool Ellenállás_D1=True;
       ObjectCreate("Ellenállás_D1",OBJ_HLINE,0,iTime(Symb,PERIOD_D1,i),iHigh(Symb,PERIOD_D1,i),0,0,0,0);
       ObjectMove("Ellenállás_D1",0,iTime(Symb,PERIOD_D1,i),iHigh(Symb,PERIOD_D1,i));}}
    

    Problémám a következő: Visszafele számolva valamiért a 20.gyertya high értékéhez teszi a vonalat.
    Azt szeretném megoldani, hogy a 20 megvizsgált gyertya küzül ahoz tegye amelyiknek a legközelebb van a high értéke az éppen aktuális piaci értékhez képest. (0.0015 pippen belűl)

    Válaszodat előre is köszönöm!

    káROBOTi
    Tag
    Bejegyzések száma: 28

    PL:.
    if(…stb1…){
    buy_H1_a=ordersend(…stb…)}

    if(…stb2…){
    buy_H1_a=ordersend(…stb…)}

    if(…stb3…){
    buy_H1_a=ordersend(…stb…)}
    Három egymástól különböző feltételek. Azt szeretném megoldani, hogy ne legyen 1nél több (buy_H1_a) nevű pozíció, mert ha 3 feltételből 2 teljesűl az nem jó mert akkor 2 (buy_H1_a) nevű pozi lesz és akkor az ordermodify nem tudja külön külön kezelni a 2 pozit az egyforma nevek miatt.

    if(OrdersTotal()==0) {
    if(…stb1…){
    buy_H1_a=ordersend(…stb…)}

    if(…stb2…){
    buy_H1_a=ordersend(…stb…)}

    if(…stb3…){
    buy_H1_a=ordersend(…stb…)}
    }
    Ebben az esetben nem lesz 1nél több buy_H1_a nevű pozi. De ezzel meg az a baj, hogy az egymással párhuzamosan működő robotok nem tudnak egyszere kereskedni mert if(OrdersTotal()==0)
    Milyen feltételt kellene írni az if(OrdersTotal()==0) helyett?

    káROBOTi
    Tag
    Bejegyzések száma: 28

    Nagyon szépen köszönöm segítségedet.

    A napokban egy újabb problémába ütköztem. A robotom 3 feltétel alapján nyithat pozíciót.
    PL:.
    if(…stb…){
    buy_H1_a=ordersend(…stb…)}

    if(…stb…){
    buy_H1_a=ordersend(…stb…)}

    if(…stb…){
    buy_H1_a=ordersend(…stb…)}
    //+——————————————————————+
    if(OrderOpenTime()+3600<=TimeCurrent() ){
    if(…stb…){
    buy_H1_b=ordersend(…stb…)}

    if(…stb…){
    buy_H1_b=ordersend(…stb…)}

    if(…stb…){
    buy_H1_b=ordersend(…stb…)}
    }
    Azt szeretném megoldani hogyha teljesül az egyik feltétel és létrejön a pozíció akkor ne jöhessen létre újabb pozi, mert akkor az OrderModify nem működik helyesen a két azonos buy_H1_a nevű , vagy esetleg a két azonos buy_H1_b nevű pozi miatt.
    if(OrdersTotal()==0)
    { ez azért nem jó nekem mert akkor a párhuzamosan müködő robotok nem tudnak egyszerre kereskedni.
    Ha pedig különböző neveket találok ki akkor az azért nem jó mert minden egyes teljesülő feltétel esetén külön külön le kell vezetni az OrderModify és az OrderClose fügvényeket amiket nem szereténék :) mert van olyan robotom ami 20 különböző feltétel alapján dolgozik.

    Türelmedet és segítségedet előre is köszönöm!

15 bejegyzés megtekintése - 1-15 / 19