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

 
alsu:
Das Ticket bleibt wie es war


????

Wie prüfe ich, ob die Bestellung abgeschlossen ist oder nicht?

 
Cruc:

Vielen Dank für die Empfehlung, ich habe es fast herausgefunden, kann mich nur nicht erinnern, ob der Auftrag ausgelöst wird, nimmt das Ticket einen Wert von -10?
Das Ticket ändert sich nicht. Nur die OrderCloseTime wird größer als Null
 
ilunga:
Das Ticket ändert sich nicht. Es hat nur eine OrderCloseTime größer als Null


Und wenn ein Stop oder Profit ausgelöst wird, wird er auch kleiner als Null, wenn ich mich nicht irre -1 ?

Wie stelle ich die Bedingung richtig ein? Bitte beraten Sie mich.

 
Cruc:


Und wenn ein Stopp oder Gewinn ausgelöst wird, wird er kleiner als Null sein, wenn ich mich nicht irre -1 ?

Wie stelle ich die Bedingung richtig ein? Bitte geben Sie mir einen Hinweis.

Es wird nicht anders werden, es bleibt gleich. Geschlossene Positionen werden mit denselben Tickets in die Liste des Geschäftsverlaufs aufgenommen.

Gehen Sie genau diese Liste der Transaktionshistorie durch und suchen Sie dort nach dem Auftrag.

 
artmedia70:

Warum ist das so? Alle Flaggen auf einmal in einem Comment` ausgeben.

Genau hier:




kein Anstieg des ADX zu verzeichnen war, was bedeutet, dass die Bedingung

// Prüfung auf steigenden ADX > 20 oder nur steigenden ADX ---- Prüfung auf Stärke der Bewegung.
if (x<20 && x0>20) {f3 = 1; }

nicht erfüllt ist, aber das Geschäft offen ist

 
Ivn:


kein Anstieg des ADX zu verzeichnen war, d. h. die Bedingung

// Prüfung auf steigenden ADX > 20 oder nur steigenden ADX ---- Prüfung auf Stärke.
if (x<20 && x0>20) {f3 = 1; }

nicht erfüllt ist und der Handel offen ist.

Nach dem Kommentar im Screenshot zu urteilen, steuern Sie die Nullleiste, um Entscheidungen zu treffen.

Das ist nicht gut... Bei einem Null-Balken können die Indikatoren während der Balkenbildung viele Male hin- und hergehen, was zu falschen Signalen (Chatter) führt.

Um dies zu vermeiden, überprüfen Sie den ersten bereits gebildeten Balken.

 
Daran arbeite ich nun schon seit langer Zeit. Auf dem Diagramm stelle ich oft fest, dass der Kurs ein Niveau zu erreichen scheint, bei dem der Höchst- oder Tiefststand der Kerze fast identisch ist. Aber ich weiß nicht, wie man das mathematisch machen kann. Ich habe das Forum und die Datenbank 3 Tage lang durchforstet, aber ich kann nichts dergleichen finden.
 

Grüße!

Ich versuche, Informationen über eine vorhergehende Kerze (Nicht-Null-Balken) anzuzeigen - bullish oder bearish Kerze, Größe der Körper und Schatten und das Verhältnis der Schatten zum Körper der Kerze.

Aber es gibt keine Steinblume. Er gibt falsche Werte aus.

int start()
  {
   int counted_bars=IndicatorCounted();
   if (counted_bars<0) return(-1);        //---- check for possible errors
   if (counted_bars>0) counted_bars--;    //---- last counted bar will be recounted
   int limit=Bars-counted_bars;
   
   double kerzen_typ;                  //тип свечи
   string kerzen_name;                 //наименование свечи
   double kerzen_body;                 //размер тела свечи
   double kerzen_shadow_up;            //размер верхней тени
   double kerzen_shadow_down;          //размер нижней тени
   double kerzen_shadow2body_up;       //отношение верхней тени к размеру тела
   double kerzen_shadow2body_down;     //отношение нижней тени к размеру тела

//---- main loop
   for(int bar=0; bar<limit; bar++)
      {
//определение контрольной свечки - белая, черная или додж и сбор информации
   if (Close[bar]>Open[bar])
      {
         kerzen_typ=1;
         kerzen_name="бычья или белая свеча";
         kerzen_shadow_up=High[bar]-Close[bar];
         kerzen_shadow_down=Open[bar]-Low[bar];
         kerzen_body=Close[bar]-Open[bar];
      }
   if (Open[bar]>Close[bar])
      {
         kerzen_typ=-1;
         kerzen_name="медвежья или черная свеча";
         kerzen_shadow_up=High[bar]-Open[bar];
         kerzen_shadow_down=Close[bar]-Low[bar];
         kerzen_body=(Open[bar]-Close[bar]);
      }
   if (Open[bar]==Close[bar])
      {
         kerzen_typ=0;
         kerzen_name="додж";}  
         kerzen_shadow_up=High[bar]-Open[bar];
         kerzen_shadow_down=Close[bar]-Low[bar];
      }
//определение соотношения тени к телу свечки      
if (kerzen_body==0)
      {
         kerzen_shadow2body_up=kerzen_shadow_up;
         kerzen_shadow2body_down=kerzen_shadow_down;
         }
if (kerzen_body!=0)
      {
         kerzen_shadow2body_up=kerzen_shadow_up/kerzen_body;
         kerzen_shadow2body_down=kerzen_shadow_down/kerzen_body;
      }     
 
//---- done
   Comment  (
               "Контрольный бар типа ",kerzen_name,"\n",
               "Верхняя тень - ",kerzen_shadow_up*10000," в ",kerzen_shadow2body_up, " раз больше","\n",
               "Тело - ",kerzen_body*10000,"\n", 
               "Нижняя тень - ",kerzen_shadow_down*10000," в ",kerzen_shadow2body_down, " раз больше"
            );
   return(0);
  }
 
gabba:

Grüße!

Ich versuche, Informationen über eine vorhergehende Kerze (Nicht-Null-Balken) anzuzeigen - bullish oder bearish Kerze, Größe der Körper und Schatten und das Verhältnis der Schatten zum Körper der Kerze.

Aber es gibt keine Steinblume. Er gibt falsche Werte aus.


Warum brauche ich einen Zyklus, wenn ich nur 1 Bar nehme? Verwenden Sie einfach 1 anstelle von "bar". Prüfen Sie nur auf neue Balken, damit Sie nicht bei jedem Tick alles neu berechnen müssen.
 
Cruc:


Und wenn ein Stop oder ein Gewinn ausgelöst wird, wird er unter Null gehen, wenn ich mich nicht irre - -1 ?

Wie stelle ich die Bedingung richtig ein? Können Sie mir einen Tipp geben?

ein weiteres Mal.

Die einfachste Variante (schematisch)

if (ticket > 0)
{
   OrderSelect(ticket, SELECT_BY_TICKET);
   if (OrderCloseTime() > 0)
   {
      // ордер закрылся
   }
   else
   {
      // ордер пока еще открыт
   }
}
else
{
   //первый запуск советника 
}