Frage für Kenner - Seite 19

 

Frage zu den Gann-Linienwerkzeugen.

Die Gunn-Linie ist "in einem Winkel von fünfundvierzig Grad gebaut", auchim Gunn-Gitter sind die Linien"in einem Winkel von 45 Grad gebaut ". Es sollte ein Zufall sein, IMHO, aber sie sind es nicht!

 
hedger:

Frage zu den Gann-Linienwerkzeugen.

Die Gunn-Linie ist "in einem Winkel von fünfundvierzig Grad gebaut", auchim Gunn-Gitter sind die Linien"in einem Winkel von 45 Grad gebaut ". Das sollte ein Zufall sein, IMHO, ist es aber nicht!

Der richtige Winkel ist 40 Grad, stellte Mendelejew fest.

45 Grad ist sibirisch.

 
hedger:

Frage zu Gunns Linientools.

Die Gunn-Linie ist "in einem Winkel von fünfundvierzig Grad gebaut", auchim Gunn-Gitter sind die Linien"in einem Winkel von 45 Grad gebaut ". Das sollte ein Zufall sein, IMHO, ist es aber nicht!


Und wo haben Sie die Abschlüsse gefunden?
 
Vinin:

Wo haben Sie Abschlüsse gefunden?

Genau hier: https://www.metatrader5.com/ru/terminal/help/objects/gann/gann_line

"Die Gann-Linie

Die Gann-Linie ist eine Linie, die in einem 45-Grad-Winkel gezogen wird. Diese Linie wird auch als "eins-zu-eins" (1x1) bezeichnet, was eine Preisänderung pro Zeiteinheit bedeutet.

Und hier: https://www.metatrader5.com/ru/terminal/help/objects/gann/gann_grid

"Das Gann-Gitter

Das Gann-Gitter stellt Trends dar, die in einem Winkel von 45 Grad aufgebaut sind (Gann-Linien)".

 

Guten Tag!

Hier ist die Frage. Ich habe die Funktion von I.Kim leicht modifiziert und diese Funktion gibt nun die Nummer des Balkens zurück, in dem der letzte Pending, Bystop oder Sellstop gesetzt wurde.

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru/                  |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает номер бара установки последнего ордера или -1.      |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   ("" или NULL - текущий символ)          |
//|    tf - таймфрейм                  (    0       - текущий таймфрейм)       |
//|    op - операция                   (   -1       - любая позиция)           |
//|    mn - MagicNumber                (   -1       - любой магик)             |
//+----------------------------------------------------------------------------+
int NumberOfBarOpenLastOPDER(string sy="0", int tf=0, int op=-1, int mn=-1) {
  datetime t;
  int      i, k=OrdersTotal();

  if (sy=="" || sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderSymbol()==sy) {
        if (OrderType()==OP_BUYSTOP || OrderType()==OP_SELLSTOP) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (t<OrderOpenTime()) t=OrderOpenTime();
            }
          }
        }
      }
    }
  }
  return(iBarShift(sy, tf, t, True));
}

Außerdem benötige ich fast die gleiche Funktion. Aber es sollte die Nummer des Balkens zurückgeben, in dem nicht der letzte, sondern der erste aller Stops im Chart gesetzt wurde!

Ich kann es nicht tun. Bitte, sagen Sie es mir. - wie man das macht?

 
Rita:

Guten Tag!

Hier ist die Frage. Ich habe die Funktion von I.Kim leicht modifiziert und diese Funktion gibt nun die Nummer des Balkens zurück, in dem der letzte Pending, Bystop oder Sellstop gesetzt wurde.

Außerdem benötige ich fast die gleiche Funktion. Aber es sollte die Nummer des Balkens zurückgeben, in dem nicht der letzte, sondern der erste aller Stops im Chart gesetzt wurde!

Ich kann es nicht tun. Bitte, sagen Sie es mir. - wie man das macht?

Setzen Sie den Anfangswert von t höher und ändern Sie das Vorzeichen in der Bedingung
 if (t<OrderOpenTime())

на противоположный.
 

Spsb. Ich habe das Schild geändert. Aber die Funktion funktioniert noch nicht. Ich habe es in den Kommentar geschrieben. Er gibt immer -1 zurück.

Ich verstehe das auch nicht ganz. Wo und wie kann man einen größeren Anfangswert für t festlegen?

 
Rita:

Spsb. Ich habe das Schild geändert. Aber die Funktion funktioniert noch nicht. Ich habe es in den Kommentar geschrieben. Er gibt immer -1 zurück.

Ich verstehe das auch nicht ganz. Wo und wie genau soll ich einen größeren Anfangswert von t einstellen?

datetime t;
t = TimeCurrent();

Sie können einfach die aktuelle Uhrzeit einstellen.
 
Rita:

Guten Tag!

Hier ist die Frage. Ich habe die Funktion von I.Kim leicht modifiziert und diese Funktion gibt nun die Nummer des Balkens zurück, in dem der letzte Pending, Bystop oder Sellstop gesetzt wurde.

Außerdem benötige ich fast die gleiche Funktion. Aber es sollte die Nummer des Balkens zurückgeben, in dem nicht der letzte, sondern der erste aller Stops im Chart gesetzt wurde!

Ich kann es nicht tun. Bitte, sagen Sie es mir. - wie man das macht?


Etwa so

int NumberOfBarOpenFirstOPDER(string sy="0", int tf=0, int op=-1, int mn=-1) {
   datetime t=TimeCurrent();
   int      i, k=OrdersTotal();

   if (sy=="" || sy=="0") sy=Symbol();
   for (i=0; i<k; i++) {
      if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
         if (OrderSymbol()==sy) {
            if (op<0 || OrderType()==op) {
               if (mn<0 || OrderMagicNumber()==mn) {
                  if (t>OrderOpenTime()) t=OrderOpenTime();
               }
            }
         }
      }
   }
   return(iBarShift(sy, tf, t, True));
}
 
Ich danke Ihnen allen. Es hat geklappt! Die Funktion funktioniert!
Grund der Beschwerde: