[ARCHIV] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 3. - Seite 232

 
DhP:

Was ist der Unterschied zwischen double tmp und NormalizeDouble(iMACD(Symbol(),TF,fast_ema,slow_ema,signal_period,PRICE_CLOSE,MODE_MAIN,0)?

Ihre Multiplikation wird immer größer als Null sein.

Ich denke schon))

(-) * (-) = +

(+) * (+) = +


а.... Sie haben völlig Recht... NormalizeDouble(iMACD(Symbol(),TF,fast_ema,slow_ema,signal_period,PRICE_CLOSE,MODE_MAIN,0) - hier sollten wir "i" anstelle von 0 setzen - ich habe es geändert, aber es hat immer noch nicht angefangen, Angebote zu machen....

Der Code sieht nun wie folgt aus:

 bool signal_MACD() 
  { 
    bool signal_MACD = false;
    double tmp = iMACD(Symbol(),TF,fast_ema,slow_ema,signal_period,PRICE_CLOSE,MODE_MAIN,0); 
    for(int i=1;i<=5;i++) 
    { 
       if(NormalizeDouble(iMACD(Symbol(),TF,fast_ema,slow_ema,signal_period,PRICE_CLOSE,MODE_MAIN,i)*tmp,4)<0.0) 
       { 
          signal_MACD = true; 
          break; 
       }        
    } 
    return(signal_MACD);
  } 

aber es funktioniert immer noch nicht

 
CLAIN:


а.... Sie haben absolut Recht... NormalizeDouble(iMACD(Symbol(),TF,fast_ema,slow_ema,signal_period,PRICE_CLOSE,MODE_MAIN,0) - Ich habe es geändert, aber es hat nie angefangen, Angebote zu machen....

Der Code sieht nun wie folgt aus:

aber es funktioniert immer noch nicht.

Wird dadurch aus true false?

Verändert die Funktion den Ausgabewert?

 
CLAIN:


а.... Sie haben völlig Recht... NormalizeDouble(iMACD(Symbol(),TF,fast_ema,slow_ema,signal_period,PRICE_CLOSE,MODE_MAIN,0) - hier sollten wir "i" anstelle von 0 setzen - ich habe es geändert, aber es hat immer noch nicht angefangen, Angebote zu machen....

Der Code sieht nun wie folgt aus:

aber es funktioniert immer noch nicht


Verwenden Sie "Drucken", lesen Sie die Protokolle und vergleichen Sie "was ist" mit "was erwartet wird".
 

Die Funktion ändert keine Werte.... Das ist zumindest meine Einschätzung, denn die Geschäfte wurden nie eröffnet.

Wie verwenden Sie den Druck?

 bool signal_MACD() 
  { 
    bool signal_MACD = false;
    double tmp = iMACD(Symbol(),TF,fast_ema,slow_ema,signal_period,PRICE_CLOSE,MODE_MAIN,0); 
    for(int i=1;i<=5;i++) 
    { 
       if(NormalizeDouble(iMACD(Symbol(),TF,fast_ema,slow_ema,signal_period,PRICE_CLOSE,MODE_MAIN,i)*tmp,4)<0.0) 
       { 
          signal_MACD = true; 
          Print(NormalizeDouble(iMACD(Symbol(),TF,fast_ema,slow_ema,signal_period,PRICE_CLOSE,MODE_MAIN,i)*tmp);
          break; 
       }        
    } 
    return(signal_MACD);
  } 

ich habe nur diese Version, aber irgendetwas sagt mir, dass sie auch falsch ist....

 
CLAIN:

Die Funktion ändert keine Werte.... Das ist zumindest meine Einschätzung, denn die Geschäfte wurden nie eröffnet.

Wie verwenden Sie den Druck?

ich habe nur diese Version, aber irgendetwas sagt mir, dass sie auch falsch ist....


Print("iMACD(",Symbol(),",",TF,",",fast_ema,",",slow_ema,",",signal_period,",",PRICE_CLOSE,",",MODE_MAIN,",",i,",",")*",tmp,"=",iMACD(Symbol(),TF,fast_ema,slow_ema,signal_period,PRICE_CLOSE,MODE_MAIN,i)*tmp);
 
MaxZ:

Wenn alle Variablen deklariert sind, sehe ich keine Fehler in der MQL4-Syntax...

Wo liegt das Problem?

Ich danke Ihnen.

Ich führe eine Rollback-Berechnung für meinen EA durch. Ich habe gesehen, dass die Berechnungen ungenau waren, deshalb bin ich die Blöcke durchgegangen, die Fehler enthalten könnten.

 


Hallo.

Helfen Sie mir zu verstehen
Ich schreibe gerade einen EA und kann die Aufträge nicht verstehen.
Ich gebe Bestellungen auf:
OrderSend(Symbol(),OP_SELLLIMIT,lot,cena_sell,3,sl _sell,tp_sell,"",1,0,Red);
Alert (GetLastError());

OrderSend(Symbol(),OP_SELLLIMIT,lot_1,cena_sell_d_ 1,3,sl_sell,tp_sell_d_1,",2,0,Red);
Alert (GetLastError();

OrderSend(Symbol(),OP_SELLLIMIT,lot_2,cena_sell_d_ 2,3,sl_sell,tp_sell_d_2,"",3,0,Red);
Alert (GetLastError();

OrderSend(Symbol(),OP_SELLLIMIT,lot_3,cena_sell_d_3,3,sl_sell,tp_sell_d_3,"",4,0,Red);
Alert (GetLastError());

Wenn der erste Take-Profit ausgelöst wird, löschen Sie die anderen Aufträge.
Wenn der erste Take Profit nicht ausgelöst wurde und der zweite Take Profit ausgelöst wurde, ändern Sie die Lots_3 und Lot_4 für den dritten und vierten Take Profit.

 
sergey_r:


Hallo.

Helfen Sie mir auf die Sprünge.
Ich schreibe einen EA und kann die Aufträge nicht herausfinden.
Ich gebe Bestellungen auf:
OrderSend(Symbol(),OP_SELLLIMIT,lot,cena_sell,3,sl _sell,tp_sell,"",1,0,Red);
Alert (GetLastError());

OrderSend(Symbol(),OP_SELLLIMIT,lot_1,cena_sell_d_ 1,3,sl_sell,tp_sell_d_1,",2,0,Red);
Alert (GetLastError());

OrderSend(Symbol(),OP_SELLLIMIT,lot_2,cena_sell_d_ 2,3,sl_sell,tp_sell_d_2,"",3,0,Red);
Alert (GetLastError());

OrderSend(Symbol(),OP_SELLLIMIT,lot_3,cena_sell_d_3,3,sl_sell,tp_sell_d_3,"",4,0,Red);
Alert (GetLastError());
Ich brauche:
Wenn der erste Take-Profit ausgelöst wird, löschen Sie die übrigen Aufträge.
Wenn der erste Take Profit nicht ausgelöst wurde und der zweite Take Profit ausgelöst wurde, ändern Sie die Lots_3 und Lot_4 für den dritten und vierten Take Profit.


Was kam zuerst - verwenden Sie die Funktion von dieser Seite des Forums - es gibt die Flagge, um die Bestellung bei Take Profit zu schließen. Davor setzen Sie - je nach Auftragsvolumen - für jeden Auftrag eine andere magic_number, d.h. lot - magic 1, lot1 - magic 2 usw. Dann prüft man, ob der Auftrag mit der magischen 1 durch den Take Order mit dieser Funktion geschlossen wurde und wenn ja, "entfernt man die anderen". Und dann überprüfen Sie mit dem Code auch den zweiten Auftrag mit der magischen Zahl 2 - wenn er in Ordnung ist, dann modifizieren Sie den dritten und vierten Auftrag (ändern ihre Volumina)... und wenn Sie schwebende Aufträge einstellen und sie modifizieren, denken Sie besser daran, auf minimale Toleranzen und alles andere zu achten... Etwa so...
 

Ich verstehe nicht, wie ich die Funktionen nutzen kann. Könnten Sie beschreiben, wie man das macht?

Hier habe ich diese Aufträge erteilt. Dann füge ich die Funktion von dieser Seite aus ein. Oder wie? Beschreiben Sie ein Beispiel, wie Sie dies tun können. Ich bitte Sie.

 
sergey_r:

Ich verstehe nicht, wie ich die Funktionen nutzen kann. Könnten Sie beschreiben, wie man das macht?

Hier habe ich diese Aufträge erteilt. Dann füge ich die Funktion von dieser Seite aus ein. Oder wie? Beschreiben Sie ein Beispiel, wie Sie dies tun können. Ich bitte Sie.



Die Reihenfolge der Arbeit mit f-mi - das sind die grundlegenden Dinge, um die sich alles dreht... Nehmen Sie es auseinander, sehen Sie Beispiele von Eulen (in einem kompetenten Code), sie können in Codebase gefunden werden - nehmen Sie dieses Beispiel von Eule auseinander und verwenden Sie es als Grundlage für Ihre eigene... Es ist eine Basis, ohne die man nicht auskommt. Ich habe die Eule selbst auf der Grundlage dieses Beispiels in Codebase angelegt.

Bleiben Sie ruhig, nehmen Sie sich Zeit - finden Sie es heraus.