[ARCHIV]Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Ohne dich kann ich nirgendwo hingehen - 5. - Seite 331

 

Sepulca

dann können Sie dies wie in der beigefügten Datei versuchen. Die Änderungen sind mit dem Kommentar "// Modify for Elektronik" versehen.


Leider kann ich Ihre Änderung nicht überprüfen, da ein Fehler aufgetreten ist

Ich kannkeinen SELL EURUSD 2 bei 1,2445 eröffnen , Fehler 4109.

Und das Drehbuch lautet wie folgt.

Dateien:
reverse.mq4  16 kb
 

Guten Tag.

Könnten Sie mir bitte sagen, warum das Ergebnis bei der Umwandlung von double in int verzerrt ist?

int init()

{

int sum=(1.3167+0.001)*10000;

Alert (sum);

return(0);

}

Das Ergebnis wird als 13176 ausgedruckt.

Logischerweise sollte es 13177 sein.

Und dieses Problem tritt nur beim Hinzufügen auf. Bei der Subtraktion

int sum=(1.3167-0.001)*10000;

ergibt sich das richtige Ergebnis: 13157

Ich frage mich, ob das Öffnen der Klammern

int sum=1.3167*10000+0.001*10000; 

dann wird es richtig. Was ist der Unterschied?

Vielen Dank im Voraus.

 
GygaByte:

Guten Tag.

Können Sie mir bitte sagen, warum bei der Umwandlung von double in int das Ergebnis verzerrt ist?

Aufschreiben:

int sum=NormalizeDouble((1.3167+0.001)*10000,Digits);
und es wird richtig gelesen.
 

Danke für den Tipp von Sepulca , ich habe das Problem gelöst.

      if (OrderComment()==""){
         MyComment="";
      } else {
         MyComment="[" + OrderComment() + "]";
      }
 

Danke für den Tipp von Sepulca , ich habe das Problem gelöst.

      if (OrderComment()==""){
         MyComment="";
      } else {
         MyComment="[" + OrderComment() + "]";
      }
 
hoz:


Nun, ich habe in meinem Code eine Fixierung, wenn der Indikatorwert größer als der Indikatorpegel und kleiner als(Indikatorpegel + zulässige Abweichung, eine Art Lücke) ist.Hier:

0,1 habe ich geschätzt. Aber die Eröffnungen kommen zum falschen Zeitpunkt.

Nach Ihren Worten zu urteilen, müssen Sie den Wert auf einem Balken, der unter dem Indikatorpegel liegt, mit dem Wert auf dem darüber liegenden Nullbalken (Pegel + Abstand) vergleichen und nicht umgekehrt?

Wenn sich jedoch der Indikatorwert des vorherigen Balkens und der Wert des aktuellen Balkens (durch das angegebene Niveau) kreuzen, dann kann der Wert des aktuellen Balkens und damit der Preis sehr weit fliegen, und daher ist dies überhaupt keine Option. Wie kann man also die Bedingung, über die ich geschrieben habe, klar formulieren? Hier ist ein Bildschirmfoto, das die Situation erklärt:

Auf dem Screenshot müssen Sie prüfen: Wenn der RSI auf dem ersten Balken unter dem Niveau liegt und der RSI auf dem Null-Balken größer oder gleich dem Niveau ist, dann kaufen Sie. Gleichzeitig sollte der RSI zu den Eröffnungskursen gezählt werden, da sonst falsch-positive Ergebnisse auf dem Null-Balken nicht vermieden werden können. Wenn Sie den RSI zu anderen Kursen (z.B. Schlusskursen) ablesen wollen, überprüfen Sie den zweiten und ersten Balken entsprechend.
 
hoz:


Boris, Sie haben den Wert aus dem 1-Millionen-Zeitrahmen gezogen. Und sie wird nicht mit dem Niveau, sondern mit Null verglichen. Ich verstehe nicht, warum der Wert bei jedem Tick genommen wird. Vielleicht ist es nicht kompliziert, aber ich habe noch nie mit Indikatoren gearbeitet, und auf den ersten Blick erscheint es mir nicht logisch.

Noch einmal: Wenn die Werte bei jedem Tick erfasst werden, wie vergleicht man dann mit einem bestimmten Wert, so dass der Prüfer bei jedem Tick diesem Wert folgt?

In meinem Fall, um auf M5 zu kaufen, habe ich die folgende Weise geschrieben:

Dabei isti_RSIToUpLimit der Stand des RSI-Indikators. Ich verstehe, dass der Zeitraum für M1 mit 5 multipliziert werden muss, um das Niveau auf M5 zu verwenden, richtig? Dann ist der Zeitraum 70 und nicht 14.

Victor, statt der Null, setze deinen Pegel in die eine Richtung mit einem Plus und in die andere mit einem Minus! Und wie bei Close auf dem Null-Balken, auf dem Tick wird Ihr Level passieren, so wird ein Signal geben! Die Dauer des RSI bestimmt die Optimierung! Im Allgemeinen hat Artem Recht! Tun Sie, was er Ihnen rät!
 
abolk:

Schreiben Sie es auf:

Und alles wird richtig gezählt.


Richtig, aber wie die Praxis gezeigt hat - nicht immer...

int init()
  {
//----
double bid=NormalizeDouble(Bid,Digits);
double b=NormalizeDouble(0.0005,Digits);
double bid_minus=NormalizeDouble(bid-b,Digits);
double bid_plus=NormalizeDouble(bid+b,Digits);

Alert ("bid= ",bid," bid_minus= ",bid_minus," bid_plus= ",bid_plus, " Bid = ",DoubleToStr(Bid,6));
//----
   return(0);
  }

Wenn die fünfte Dezimalstelle = 5 (1.xxxx5) ist, ist der Wert immer noch verzerrt:

Warnungen

die Frage ist immer noch gültig...

P.S. Im Allgemeinen muss ich MagicNumber einen Preiswert zuweisen... Geben Sie aber hier MagicNumber - int ein und versuchen Sie zu konvertieren mit

int MN=NormalizeDouble(Bid*10000,Digits);

Wer kann mir noch Ratschläge geben?

Ich danke Ihnen.

 

Grüße an alle! Alles Gute zum Tag des Sieges!

Können Sie mir bitte sagen, warum das Terminal keine Verbindung herstellt und die Meldung "Keine Verbindung" anzeigt, obwohl ein Ping vorhanden ist? Obwohl es einen Ping gibt, besteht tatsächlich eine Verbindung mit dem Server. Hier ist ein Bildschirmfoto: http://snag.gy/UFNFL.jpg

Ping-Test

Die Daten für die Registrierung werden nicht erstellt http://snag.gy/i8cmn.jpg

Wird nicht registriert

Dieses "Bitte warten" dauert mehr als eine Stunde. Normalerweise sollte das sofort geschehen.

Ich verstehe nicht, was ich falsch mache. Warum keine Verbindung, wenn ich eine habe, warum habe ich dann Ping?

Ich habe M5 auf die gleiche Weise versucht und wurde registriert, aber M4 kann ich nicht, ich habe es 20 Mal versucht.

Bitte um Rat, wer weiß!

 
Guten Abend. Können Sie mir bitte sagen, ob es irgendwelche Marktprofilindikatoren gibt? Und auch eine Dokumentation oder Beschreibung, wie man sie benutzt? Zumindest die einfachsten Signale für den Einstieg in den Markt anhand von Marktprofilindikatoren?
Grund der Beschwerde: