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

 

Normalerweise wird <= verwendet. Oder >=. In beiden Fällen handelt es sich bei der Implementierung um Hardware, Metacquotes haben damit nichts zu tun.

Auch die Entwickler anderer Sprachen haben damit nichts zu tun. Grundlegende Bedienung. Wie + und -.

 
drknn:

Da es sich bei der Bedingung nicht um eine strenge Disjunktion handelt (sie ist immer wahr, wenn mindestens ein Element wahr ist), wäre es am logischsten, die Bedingung zunächst in die Atome "a>b " und "c>d " zu zerlegen und dann eine Schleife durch die Atome zu ziehen, um die Wahrheit zu überprüfen. Und wenn das nächste Atom wahr ist, wird die Schleife sofort unterbrochen, so dass das Programm die Aktion ausführen kann, die direkt hinter der Klammer steht, d. h., es wird nicht der Rest der Atome durchsucht, da dies nicht erforderlich ist. Und es spielt keine Rolle, ob wir vom Anfang bis zum Ende oder vom Ende bis zum Anfang der erstellten Liste der Atome suchen. Nur der Entwickler kann Ihnen die Suchrichtung anzeigen (Metaquotes). Aber warum brauchen Sie das? Schreiben Sie Ihren eigenen Compiler?
Mir kam in den Sinn: Wenn in der TC-Logik die Bedingung a>b viel häufiger wahr ist als c>d==wahr, dann kann es für die Beschleunigung des Programms von Bedeutung sein, in welcher Reihenfolge die Wahrheit dieser beiden Bedingungen geprüft wird
 
artmedia70:
Da fällt mir ein: Wenn in der TC-Logik die Bedingung a>b viel häufiger wahr ist als c>d==wahr, dann kann es wichtig sein, wie diese beiden Bedingungen überprüft werden, um das Programm zu beschleunigen

Eigentlich sieht der Ausdruck so aus: if(a>b || (a<=b && c>d)). Wird die Wahrheitsprüfung von links nach rechts durchgeführt, ist der Ausdruck a<=b im Hinblick auf die Programmgeschwindigkeit überflüssig. Die Frage war genau, ob es von links nach rechts oder umgekehrt oder in verschiedenen Fällen unterschiedlich ist.
 
AndEv:

Eigentlich sieht der Ausdruck so aus: if(a>b || (a<=b && c>d)). Wenn die Wahrheitsprüfung von links nach rechts durchgeführt wird, ist der Ausdruck a<=b im Hinblick auf die Beschleunigung des Programms überflüssig. Die Frage war nur, ob es von links nach rechts oder umgekehrt oder in verschiedenen Fällen anders ist.

Können Sie bitte den Grund erklären, warum die EA nicht öffnen Aufträge und schreibt Fehler 133
 
paladin80:

Es ist notwendig, die Öffnungszeit der Position mit der aktuellen Öffnungszeit des Balkens Time[0] zu vergleichen. Wenn der Zeitpunkt der Positionseröffnung größer oder gleich dem Zeitpunkt der Balkeneröffnung ist, eröffnet der Expert Advisor keine neuen Positionen. Wenn ein neuer Balken erscheint, ändert Time[0] seinen Wert auf eine spätere Zeit, und dieser Vergleich zeigt, dass die Position auf dem aktuellen (neuen) Balken noch nicht eröffnet wurde und wir handeln können.

Übrigens lässt sich Ihre Frage auch in 2 Teilfragen untergliedern:
1. Zum aktuellen Zeitpunkt wurde eine Position eröffnet und konnte geschlossen werden, aber wir warten noch auf einen neuen Balken.
2. Auf dem aktuellen Balken wurde eine Position eröffnet und geschlossen, dann können wir auf demselben Balken erneut eine Position eröffnen (d.h. es kann jeweils 1 Position auf 1 Balken eröffnet werden).

D.h. in ein und demselben Balken wird die Bedingung, eine Position zu eröffnen, für ein paar Minuten wahr und die Position wird eröffnet. dann wird sie falsch und dann wieder wahr und eine zweite Position wird eröffnet. wie kann man damit umgehen? ich habe nur daran gedacht, eine Position einmal pro Balken zu eröffnen vielleicht gibt es noch andere Möglichkeiten?
 
Was ist Detrending? Ist es so etwas wie "aufhören zu reden"?
 
GarKain:
Ich habe ein Problem mit diesem: in ein und demselben bar für ein paar Minuten die Bedingung, um eine Bestellung zu öffnen wird wahr und die Bestellung öffnet. dann scheitert es und öffnet wieder eine zweite Bestellung. wie kann ich das bekämpfen? ich dachte nur der Eröffnung einer Bestellung einmal pro bar vielleicht gibt es andere Möglichkeiten?

Ich sehe, dass Sie ein Flag verwenden, das die Eröffnung einer Position erlaubt/verbietet. Ohne den Zustand der Flagge zu kennen, ist es unmöglich, Ihnen etwas zu sagen. In meinem EA verwende ich 2 Ansätze für die Eröffnung einer Position und kann den folgenden Code anbieten:

if (OrdersTotal()>0)
{  for (i=OrdersTotal()-1; i>=0; i--)
   {  if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
      {  if (OrderSymbol()==Symbol())
         {  if (OrderMagicNumber()==MagNum) // Проверка соответствия позиции по магик-номеру
            {  Closed_bar=OrderOpenTime();
               if (Closed_bar>=iTime(NULL,PERIOD_H1,0))
               return(0);
         }  }
}  }  }
 
moskitman:
Was ist Detrending? Ist es so etwas wie "aufhören zu reden"?

Anwendung eines Tiefpassfilters auf eine Reihe == Abzug der Trendkomponente (Steigung). Das einfachste Beispiel: Anwendung eines muwing auf den Preis und anschließende Anzeige der Differenz in einem separaten Fenster.
 
paladin80:

Ich sehe, dass Sie ein Flag verwenden, das die Eröffnung einer Position erlaubt/verbietet. Ohne den Zustand der Flagge zu kennen, ist es unmöglich, Ihnen etwas zu sagen. In meinem EA verwende ich 2 Ansätze, wenn ich eine Position eröffne und kann den folgenden Code anbieten:



if (OrdersTotal()>0)
{  for (i=OrdersTotal()-1; i>=0; i--)
   {  if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
      {  if (OrderSymbol()==Symbol())
         {  if (OrderMagicNumber()==MagNum) // Проверка соответствия позиции по магик-номеру
            {  Closed_bar=OrderOpenTime();
               if (Closed_bar>=iTime(NULL,PERIOD_H1,0))
               return(0);
         }  }
}  }  }

Ich verstehe nicht ganz, was wohin geht und woher.

 
Ich habe es so geschrieben:

wenn dies und jenes, dann ist es "gleichbedeutend mit".

Wenn sie gleich "True" ist, wird der Auftrag eröffnet.



Wenn ich dies und das schreibe, öffnet sich der Auftrag. Ist das Problem damit gelöst?

Grund der Beschwerde: