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

 
silhouette:

Ich komme mit der Implementierung des Algorithmus für die Auftragserteilung nicht weiter.

Das Wesentliche ist, dass es ein Ticket gibt, ich schalte die Aufzählung mit einer Bedingung ein, um das Ticket zu finden:

Wenn einer der Aufträge einer Magie entspricht, ändern wir ihn.

Wir haben eine weitere Aufgabe: Wenn keiner der Aufträge einem Magic entspricht, sollten wir einen neuen schwebenden Auftrag setzen. if(OrderMagicNumber()!=magic) funktioniert hier nicht.

Wie können wir diese Bedingung implementieren, ohne auf benutzerdefinierte Funktionen Dritter zurückzugreifen?

Es ist ganz einfach. Erstellen Sie eine boolesche Variable. Setzen Sie sie vor der Bearbeitung von Aufträgen auf false. Sobald der Auftrag bearbeitet ist, ändern Sie den Wert in true. Nachdem Sie alle Aufträge geprüft haben, überprüfen Sie den Wert der Variablen - wenn sie falsch bleibt, bedeutet das, dass es keinen Auftrag mit der benötigten Magie gegeben hat. Sie eröffnen einen neuen Auftrag.

 
midorum:

Es ist ganz einfach. Erstellen Sie eine boolesche Variable. Setzen Sie sie auf false, bevor Sie Bestellungen bearbeiten. Sobald der Auftrag bearbeitet ist, ändern Sie den Wert in true. Nachdem Sie alle Aufträge geprüft haben, überprüfen Sie den Wert der Variablen - wenn sie falsch bleibt, bedeutet das, dass es keinen Auftrag mit der benötigten Magie gegeben hat. Sie eröffnen einen neuen Auftrag.

Ich danke Ihnen!
 
Roman.:
Versuchen Sie, mit Kims isCloseLastPosByStop herumzuspielen (bearbeiten Sie es nach Ihren Bedürfnissen) - Gibt das Flag zum Schließen der letzten Position durch den Stop zurück

und NumberOfPositions - Gibt die Anzahl der Positionen zurück, und vielleicht passen andere zu Ihrer Frage...


DANKE KUMPEL, ICH WERDE WEITER SUCHEN :D
 

Ich beschloss zu verstehen, wie der ATR-Indikator funktioniert , und gleichzeitig seinen Code zu studieren. Ich habe das Wesentliche verstanden, aber es ist seltsam geschrieben.

Hier ist die Startfunktion:

int start()
  {
   int i,counted_bars=IndicatorCounted();
//----
   if(Bars<=AtrPeriod) return(0);
//---- initial zero
   if(counted_bars<1)
      for(i=1;i<=AtrPeriod;i++) AtrBuffer[Bars-i]=0.0;
//----
   i=Bars-counted_bars-1;
   while(i>=0)
     {
      double high=High[i];
      double low =Low[i];
      if(i==Bars-1) TempBuffer[i]=high-low;
      else
        {
         double prevclose=Close[i+1];
         TempBuffer[i]=MathMax(high,prevclose)-MathMin(low,prevclose);
        }
      i--;
     }
//----
   if(counted_bars>0) counted_bars--;
   int limit=Bars-counted_bars;
   for(i=0; i<limit; i++)
      AtrBuffer[i]=iMAOnArray(TempBuffer,Bars,AtrPeriod,0,MODE_SMA,i);
//----
   return(0);
  }
//+----------------

Hier ist der erste Block mit der Verwirrung:

//---- initial zero
   if(counted_bars<1)
      for(i=1;i<=AtrPeriod;i++) AtrBuffer[Bars-i]=0.0;
//----

Welchen Sinn hat es, etwas zu tun, wenn der Wert von counted_bars <1 ist. Meiner Meinung nach bedeutet das, dass der Indikator noch keinen Balken gezählt hat und ich die Funktion einfach verlassen sollte, da es noch keine Werte gibt... Wo ist der Haken?

Warum hat AtrBuffer den Index[Bars-i]? Ich habe verstanden, dass der Puffer auf 0,0 gesetzt werden soll, wenn es keine Werte gibt. Es stellt sich jedoch heraus, dass der Wert 0.0 nur für Balken von (Bars) bis (AtrPeriod) definiert ist, während vonAtrPeriod bis zum 0-ten Balken nichts in den Puffer geschrieben wird. Und warum?

Ich verstehe die Logik dieses Codefragments nicht

Im nächsten Block:

//----
   i=Bars-counted_bars-1;
   while(i>=0)
     {
      double high=High[i];
      double low =Low[i];
      if(i==Bars-1) TempBuffer[i]=high-low;
      else
        {
         double prevclose=Close[i+1];
         TempBuffer[i]=MathMax(high,prevclose)-MathMin(low,prevclose);
        }
      i--;
     }
//----

In der Reihe:

if(i==Bars-1) TempBuffer[i]=high-low;

Bedingung wenn i==Bars-1. Es scheint, dass der Wert des 1. Balkens vom Anfang des Diagramms auf der linken Seite berücksichtigt wird... Aber das ist sehr weit weg, was nützt dieser Wert?

 

Ich brauche Hilfe!

Wie kann ich einen EA dazu bringen, alle offenen und schwebenden Aufträge bei einem bestimmten Drawdown-Level, z. B. 30 %, zu schließen und ihn dann neu zu starten?

Dateien:
 
OrderSend
(  string symbol, int cmd, double volume, double price, int slippage,
double stoploss, double takeprofit, string comment=NULL, int magic=0, datetime expiration=0, color arrow_color=CLR_NONE)

Könnten Sie mir bitte sagen, was im Parameter für den Ablauf des Datums in der Funktion für die Auftragserteilung stehen sollte, damit sich der schwebende Auftrag nach 5 Minuten selbst löscht, wenn er nicht funktioniert hat? Ist es TimeCurrent()+300 oder nicht?

 
BeerGod:

Könnten Sie mir bitte sagen, was im Parameter für den Ablauf des Datums in der Funktion für die Auftragserteilung stehen sollte, damit sich der schwebende Auftrag nach 5 Minuten selbst löscht, wenn er nicht funktioniert hat? Ist es TimeCurrent()+300 oder nicht?

Wenn ich mich nicht irre, werden Sekunden angegeben. Sie haben also Recht, dass 5 Minuten 300 sind. Versuchen Sie, den Zeitpunkt der Eröffnung ohne Stopp und Gewinn und den Zeitpunkt der Schließung zu verwenden, drucken Sie es aus und vergleichen Sie es.
 
Hallo an alle, ich würde gerne helfen, Wette 0,10 Stop 200pip welchen Betrag muss ich haben, um 200pip zu erhalten?
 
laveosa:
Hallo zusammen, ich würde gerne helfen, Wette 0,10 stop 200pip wie viel muss ich haben, um 200pip zu erhalten?
Ich weiß es nicht, es hängt davon ab, welche Art von Konto Sie verwenden, z. B. normal oder Cent. Manchmal ist 1 Pip für 0,01 Lots = 1 Cent (x10x200 = 20 USD), und manchmal ist 1 Pip für 0,01 Lots = 10 Cents (x10x200 = 200 USD).
 
paladin80:
Nun, das hängt davon ab, welche Art von Konto Sie verwenden, z. B. ein normales oder ein Cent-Konto. Manchmal ist 1 Pip für 0,01 Lots = 1 Cent (x10x200 = 20 USD), und manchmal ist 1 Pip für 0,01 Lots = 10 Cents (x10x200 = 200 USD).
Ich habe 1 pip - 1 cent. so brauche ich 20 usd, um in der Lage sein zu stoppen, um 200 pips?
Grund der Beschwerde: