Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 656

 
Vitaly Muzichenko:

Sie in einem Zweig der Clown-Theoretiker, es Liebe zu zeichnen ist nicht klar, was, und nicht klar, warum

Und es gibt viele ähnliche Themen in diesem Forum - diskutieren Sie sie wenigstens!

Ich verstehe Vitaly nicht! - Ist das Ihr Ernst? - Oder machen Sie Witze?

Bekanntlich gibt es die Handelstheorie als solche nicht in freier Wildbahn.

Es gibt verschiedene "Elliott-Wellen", Fibonacci-Zahlen, Weierstraß-Funktionen usw..

Das hat aber nichts mit der "Theorie des Handels" zu tun.

Und über welche "Handelstheorie" können wir reden, wenn 99,9999% der Forenbenutzer, Entwickler und Händler nicht einmal den einfachsten gleitenden Durchschnittstrend erstellen können.

Sie zeichnen also "Ich weiß nicht, was" und "Ich weiß nicht, warum" - wie Sie sagten.

------------------------------------------------------------------------------

Und den einfachsten Trend kann man auch nicht richtig "zeichnen". - Da bin ich mir sicher. Verzeihen Sie mir, dass ich so unverblümt bin. Aber das können Sie nicht.

Aber Sie sprechen einfach über CLOWNS und äußern sich über etwas, das Sie selbst nicht kennen und nicht tun können.

Das ist das Paradoxon, das wir hier erleben.

----------------------------------------------------------------------------------

Aber es ist nicht das, was mich am meisten erstaunt, sondern etwas ganz anderes.

Ich sehe Tausende von Freiberuflern und alle Arten von Akademikern auf dem Forex-Markt, die ihre Dienste für jedermann anbieten.

Überall gibt es WERBUNG. Zahlen Sie - und sie werden helfen, zahlen Sie - und sie werden unterrichten ...

In Ordnung - ich bezahle Sie, ich antworte ihnen.

Aber Sie zeigen mir Ihre Qualifikationen.

BUILD ME THE SIMPLEST TREND!!!

Niemand hat es je gebaut, weder Freiberufler, noch Akademiker, noch Entwickler - NIEMAND.

Sie haben Angst, sich zu blamieren. Weil sie nicht wissen, wie. Obwohl es auf den ersten Blick nichts Schwieriges ist.

Dies ist das Standardverfahren. Wir haben sie in MT4/MT5. Sie haben es einfach gebaut und ihr Können unter Beweis gestellt.

Aber es gibt keine solchen Fälle. Sie alle zeichnen "Ich verstehe nicht, was" und "Ich verstehe nicht, warum". Jeder ist ein Clown?

----------------------------------------------------------------------------------

Und Sie sagen THEORETISCHE CLOWNS!

Wer sind die meisten CLOWNS hier - ich weiß es nicht einmal!!!

 
Artyom Trishkin:

1. Und warum?

2. Was war es? Wie war es?

1. warum? - für die Berechnungen.

2. was war es? - So unterschiedliche Zahlen,Bid-buyPrice= 1.000000000000000006551e-05 und nicht 0.00001. und warumdouble(Bid-buyPrice) gab 0.00001, die erforderliche Umwandlung indouble, wenn ich richtig verstanden, wenn Bid und buyPrice sind bereits Typ double?

 
Andrey Sokolov:

1. Warum? - Für die Berechnungen.

2. was war es? - So unterschiedliche Zahlen,Bid-buyPrice= 1.000000000000000006551e-05 und nicht 0.00001. und warumdouble(Bid-buyPrice) gab 0.00001, die erforderliche Umwandlung indouble, wenn ich richtig verstanden, wenn Bid und buyPrice sind bereits Typ double?

Warum konvertiert man Typen explizit in Double, wenn man mit Double-Zahlen arbeitet? Ich habe Ihnen eine Konvertierung des Typs double in den Typ string beim Ausdruck gezeigt.

Sind Sie sicher, dass 1,0000000000000000000006551e-05 und 0,00001 unterschiedliche Zahlen sind? Unterschiedliches Ausgabeformat - Sie haben die Ausgabemethode in Comment() nicht angegeben, daher handelt es sich um ein wissenschaftliches Ausgabeformat. Deshalb schrieb ich - entweder eine explizite Umwandlung von Double-Typ zu String, oder verwenden Sie DoubleToString() mit erforderlichen Genauigkeit.

In der Hilfe steht alles - und zwar nicht einmal in Schritt-für-Schritt-Anleitung, sondern nur einen Mausklick entfernt im Dokumentationsmenü.

Hier ist einer aus der Hilfe, ich habe markiert, was ich brauche:

Kommentar

Gibt einen benutzerdefinierten Kommentar in der oberen linken Ecke des Diagramms aus.

void  Comment(
   argument,     // первое значение
   ...           // последующие значения
   );

Parameter

...

[in] Beliebige Werte, durch Kommata getrennt. Ein Zeilenvorschubzeichen "\n" oder "\r\n" kann verwendet werden, um die Ausgabe auf mehrere Zeilen zu verteilen. Die maximale Anzahl von Parametern beträgt 64. Die Gesamtlänge der Nachricht (einschließlich nicht anzeigbarer Dienstzeichen) darf 2045 Zeichen nicht überschreiten (überflüssige Zeichen werden bei der Ausgabe abgeschnitten).

Zurückgegebener Wert

Kein Rückgabewert

Hinweis

Arrays können nicht an Comment() übergeben werden. Arrays sollten als Elemente ausgedruckt werden.

Daten vom Typ Double werden mit 16 Dezimalstellen nach dem Dezimalpunkt gedruckt und können entweder im traditionellen oder im wissenschaftlichen Format ausgegeben werden - je nachdem, wie die Eingabe am kompaktesten ist. Daten vom Typ Float werden mit 5 Dezimalstellen nach dem Punkt ausgegeben. Um reelle Zahlen mit einer anderen Genauigkeit oder in einem explizit angegebenen Format auszugeben, verwenden Sie DoubleToString().

Daten vom Typ bool werden als "wahr" oder "falsch" ausgegeben. Daten werden als JJJJ.MM.TT HH:MI:SS gedruckt. Um das Datum in einem anderen Format auszugeben, verwenden Sie die Funktion TimeToString(). Die Daten des Farbtyps werden entweder als String R,G,B oder als Farbname ausgegeben, wenn diese Farbe im Farbsatz vorhanden ist.

Wennman im Strategietester im Optimierungsmodus arbeitet, wird die Funktion Comment() nicht ausgeführt.

 
Artyom Trishkin: Sind Sie sicher, dass 1,0000000000000000000006551e-05 und 0,00001 unterschiedliche Zahlen sind? Unterschiedliches Ausgabeformat - Sie haben die Ausgabemethode in Comment() nicht angegeben, daher wird das wissenschaftliche Ausgabeformat vom Terminal für Sie ersetzt. Deshalb schrieb ich - entweder eine explizite Umwandlung von Double-Typ zu String, oder verwenden Sie DoubleToString() mit der gewünschten Genauigkeit.

Die Frage entstand, weil die Bedingung, bei der die Variable*Point verglichen wurde und das Ergebnis dieser Subtraktion nicht funktionierte, bei der eine andere Variable mit dem Wert double von Bid mit dem Wert double subtrahiert wurde und das Ergebnis der Subtraktion wieder in double umgewandelt werden musste.

Warum ist es bei der Subtraktion nicht der doppelte Typ?

Ich habe die Hilfe gelesen, aber keine Antwort gefunden, also frage ich hier.

 
Andrey Sokolov:

Die Frage entstand, weil die Bedingung, bei der die Variable*Point verglichen wurde und das Ergebnis dieser Subtraktion nicht funktionierte, bei der eine andere Variable mit dem Wert double von Bid mit dem Wert double subtrahiert wurde und das Ergebnis der Subtraktion wieder in double umgewandelt werden musste.

Warum ist es bei der Subtraktion nicht der doppelte Typ?

Ich habe die Hilfe gelesen, aber keine Antwort gefunden, also frage ich hier.

Wenn Sie double von double subtrahieren, wird das Ergebnis double sein. Das ist eine sichere Sache.

Aber nur Sie wissen, womit Sie es vergleichen.

 
Artyom Trishkin:

Wenn Sie double von double subtrahieren, ist das Ergebnis double. Das ist sicher.

Aber nur Sie wissen, womit Sie dort vergleichen.

extern double First_PartialTrailingStart=15;

if(Ziffern() ==3 || Ziffern()==5) {Erster_TeilweiserAnfang*=10; }

if(double(GeldKaufPreis)>=First_PartialTrailingStart*Point) - funktioniert

if((Bid-buyPrice)>=First_PartialTrailingStart*Point) - funktioniert nicht

 
Andrey Sokolov:

extern double First_PartialTrailingStart=15;

if (Ziffern() ==3 || Ziffern()==5) {Erster_TeilweiserAnfang*=10; }

if(double(GeldKaufPreis)>=First_PartialTrailingStart*Point) - funktioniert

if((Bid-buyPrice)>=First_PartialTrailingStart*Point) - funktioniert nicht

Alles funktioniert. Drehbuch:

//+------------------------------------------------------------------+
//|                                                  TestCompare.mq5 |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                             https://mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://mql5.com/ru/users/artmedia70"
#property version   "1.00"
#property script_show_inputs
#define   Bid       SymbolInfoDouble(Symbol(),SYMBOL_BID)
//--- input parameters
input uint     InpFirstPartialTrailingStart  =  15;   // Старт трала через (пунктов)
input uint     InpMultiplier                 =  10;   // Множитель пунктов
input int      InpPriceShift                 =  20;   // Отступ цены Buy от Bid
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
double part_trailing_start=double(InpFirstPartialTrailingStart<1 ? 1 : InpFirstPartialTrailingStart);
double multiplier=double(InpMultiplier<1 ? 1 : InpMultiplier);
double value=part_trailing_start*multiplier*Point();
double shift=InpPriceShift*Point();
double buy_price=Bid-shift;
//---
   double res=NormalizeDouble(Bid-buy_price,Digits());
   bool   cmp=NormalizeDouble(res-value,Digits())>=0;
   Alert
     (
      "Старт трала через ",(string)value," пп."
      ", Цена Bid=",(string)Bid,
      ", цена Buy=",(string)buy_price,
      ", Bid-цена Buy=",DoubleToString(res,Digits()),
      ", Bid-buy_price>=value: ",string(cmp)
     );
//---
  }
//+------------------------------------------------------------------+
 
Artyom Trishkin:

Alles funktioniert. Das Drehbuch:

Danke, ich werde es mir ansehen.

 
Ist es möglich, den Schlusskurs einer Kerze nach ihrem letzten Tick zu ermitteln?
 
Andrey Sokolov:
Ist es möglich, den Schlusskurs einer Kerze anhand ihres letzten Ticks zu ermitteln?
Dies ist der Angebotspreis. Eine andere Frage: Woher wissen Sie, dass dies die letzte Zecke ist?
Grund der Beschwerde: