[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 189

 

Ich brauche das kleinste und größte Fraktal für die letzten n Balken, was stimmt hier nicht? Bitte um Hilfe!

   for (ii = 0; ii = n; ii++)
      {
         i = iFractals(NULL, 0, MODE_LOWER, ii);
         if (i < StopLos_L) StopLos_L = i;
         i = iFractals(NULL, 0, MODE_UPPER, ii);
         if (i > StopLos_H) StopLos_H = i;
      }

 
solnce600:

Ich entschied mich für den meiner Meinung nach einfacheren Weg.

Die Pending-Order nicht zu löschen - sondern eine Pending-Order nur zu platzieren, wenn eine Fünf-Minuten-Kerze noch nicht beendet ist

Das heißt, der schwebende Auftrag sollte nur erteilt werden, wenn zwei Bedingungen erfüllt sind. Wenn die erste Bedingung erfüllt ist

- Ich habe es überprüft, die Reihenfolge ist festgelegt.

Natürlich ist das so, denn diese Bedingung ist IMMER wahr, sie kann einfach nicht falsch sein. Sie kann einfach nicht falsch sein, da dies bedeutet, dass der Null-Balken überhaupt existiert.

Wie soll die zweite Bedingung definiert werden, d.h. die Pending Order wird nur gesetzt, wenn 5 Minuten noch nicht verstrichen sind. if (---------- && ?????????)

Bitte geben Sie die Bedingung deutlich in Worten an. Es ist noch nicht klar, ob Sie die Pending Order zu Beginn einer neuen Kerze platzieren wollen oder nicht.
 
belozad:

Ich brauche das kleinste und größte Fraktal für die letzten n Balken, was stimmt hier nicht? Bitte um Hilfe!

   for (ii = 0; ii = n; ii++)
      {
         i = iFractals(NULL, 0, MODE_LOWER, ii);
         if (i < StopLos_L) StopLos_L = i;
         i = iFractals(NULL, 0, MODE_UPPER, ii);
         if (i > StopLos_H) StopLos_H = i;
      }



Wie ist die i-Variable deklariert, können wir einen Blick darauf werfen?
 
alsu:

die i-Variable wie deklariert, kann ich mir das ansehen?


int ii;

double i;

 
belozad:


Es sollte folgendermaßen funktionieren:

   int ii;
   double i;
   double StopLos_L,StopLos_H;

   for (ii = 0; ii <= n; ii++)
      {
         i = iFractals(NULL, 0, MODE_LOWER, ii);
         if (i < StopLos_L || ii==0) StopLos_L = i;
         i = iFractals(NULL, 0, MODE_UPPER, ii);
         if (i > StopLos_H || ii==0) StopLos_H = i;
      } 
 
alsu:

Es sollte folgendermaßen funktionieren:


Verdammt, das ist doch offensichtlich.
ii <=n


alsu - vielen, vielen Dank =)

 
artmedia70:
Sie können

Können Sie mir sagen, ob es möglich ist, den Körper einer gewünschten Kerze in einem EA zu malen?
Wo kann ich sehen, wie man das macht, ich brauche das wirklich.
 
beginner:
Können Sie mir sagen, ob es möglich ist, den Körper der gewünschten Kerze im EA zu malen?
Wo kann ich sehen, wie man das macht, ich brauche das wirklich.

https://www.mql5.com/ru/code/7835 Es ist nur ein Indikator. Sie müssen Objekte im EA verwenden
 
alsu:

Natürlich ist sie das, denn diese Bedingung ist IMMER wahr, sie kann einfach nicht falsch sein. Denn es bedeutet, dass der Null-Balken überhaupt existiert.

Bitte geben Sie die Bedingung deutlich in Worten an. Es ist noch nicht klar, ob Sie die Pending Order zu Beginn einer neuen Kerze platzieren wollen oder nicht.

Vielen Dank, ich bin etwas verwirrt. In diesem Fall sollte ich keine Pending Order, sondern eine Market Order zu Open[0]+30 Pips platzieren.

Aber wir sollten die Marktorder erst ab dem Beginn der Bildung einer Nullkerze bis zur nächstfolgenden Kerze setzen.

D.h., wenn ein Marktauftrag nicht innerhalb von 5 Minuten eingestellt wird, ist dies meiner Meinung nach gleichbedeutend mit der Annullierung eines schwebenden Auftrags, wenn dieser nicht innerhalb von 5 Minuten eröffnet wird.

Wie sollte ich die zweite Bedingung formulieren?

Und habe ich den Eröffnungskurs für den Marktauftrag richtig festgelegt?

Ich danke Ihnen.

 int start()

  {
 double Price=Open[0]+300*Point;        
 double SL=Price-300*Point;     
 double TP=Price+150*Point;
 if (Time[0]&& ???????)                         
 int Ticket=OrderSend(Symbol(),OP_BUY,0.1,Price,3,SL,TP );
 
solnce600:

Vielen Dank, ich bin etwas verwirrt. In diesem Fall sollte ich keine Pending Order, sondern eine Market Order zu Open[0]+30 Pips einstellen.

Aber wir sollten die Marktorder nur vom Beginn einer Nullkerze bis zur nächstfolgenden Kerze setzen.

D.h., wenn ein Marktauftrag nicht innerhalb von 5 Minuten eingestellt wird, ist dies meiner Meinung nach gleichbedeutend mit der Annullierung eines schwebenden Auftrags, wenn dieser nicht innerhalb von 5 Minuten eröffnet wird.

Wie sollte ich die zweite Bedingung formulieren?

Und habe ich den Eröffnungskurs für den Marktauftrag richtig festgelegt?

Ich danke Ihnen.


Okay, jetzt habe ich es. Wenn der Kurs des aktuellen Balkens Open[0] + 30 erreicht, wird eröffnet. Wenn der Balken beendet ist, hat sich Open[0] geändert, und der Eröffnungspegel wird entsprechend verschoben. Es sollte doch nur einen Handel auf dem Markt geben, oder?

Dann ist es so:

int start()

{

 double Price=Open[0]+300*Point;        
 double SL=NormalizeDouble (Price-300*Point, Digits);         
 double TP=NormalizeDouble (Price+150*Point, Digits);    
 
 if (OrdesTotal()==0 && Close[0]>=Price)                         
    int Ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,SL,TP );

}

Es ist nicht notwendig, den neuen Balken zu verfolgen, denn wenn er gebildet wird, fügt das System automatisch einen neuen Wert zu Open[0] hinzu, so dass das neue Niveau korrekt berechnet wird. Bitte beachten Sie, dass das BUY-Geschäft zum aktuellen Ask-Kurs eröffnet wird, während es zum Bid-Kurs geschlossen wird (TP und SL). Darüber hinaus müssen die Preiswerte normalisiert werden.