Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 208

 
borilunad:
Dann siehe oben, korrigiert!
Es stellt sich heraus, dass, wenn ich des Mangels an Boolescher Logik beschuldigt wurde - sie meinten zusätzliche Klammern in Operatoren.... aber das sind Regeln der Formatierung von Ausdrücken und Operatoren.... ist es Boolesche Logik?
 
T-G:

Hallo zusammen. Ich brauche Hilfe.

In meinem Board öffnet sich eine Reihe von Aufträgen, in der Menge durch MaxOrders Parameter eingestellt, unten habe ich angegeben, wie es zum Beispiel aussieht, nicht streng nach Losen beurteilen

1-Los-Bestellung = 128

2-Lot-Bestellung=256

3-Lose-Bestellung-Los=512

4-Los-Bestellung-Los=1024

5-Ordnung-Los=2048

Das ist alles für den Tester.

MaxOrders=5, und 5 Aufträge sind offen. Das Problem ist, dass mein Broker im Strategy Tester ein Limit von 1000 Lots hat und daher 4 und 5 Orders nicht wie gewünscht geöffnet werden können.

Ich habe das Internet durchforstet und nach einer Möglichkeit gesucht, diesen Parameter im Strategy Tester zu ändern, aber ich habe nicht herausgefunden, wie das geht.

Daher habe ich beschlossen, dieses Problem mit Hilfe der Programmierung zu lösen. Ich habe beschlossen, mehrere Aufträge für 4 Aufträge zu eröffnen und zwei zu erhalten

4-Bestellung-Los=1000

4-Ordnung-Los=24

für 5 Aufträge 3:

5-Bestellung-Los=1000

5-Bestellung-Los=1000

5-Ordnung-Los=48

aber hier gibt es zwei Probleme,

- wie man das MM korrekt aufteilt, so dass es in Lose entsprechend dem maximalen Los aufgeteilt wird

- Und wie kann man zusätzliche Aufträge öffnen, ohne den Auftrag zu brechen, d.h. es gibt mehr Aufträge als in der MaxOrders, aber nicht zusätzliche Aufträge zu zählen, die geöffnet werden, um das Volumen zu erfüllen.

Vielleicht sollten wir die Lose aufteilen, d. h. mehrere Positionen eröffnen, die mit Kommentaren verbunden sind, in denen die Ticker der über- und untergeordneten Aufträge platziert sind. Die übergeordnete Bestellung mit dem Volumen von 1000 wird ein Ticket der Bestellung mit dem Volumen von 24 haben, und die untergeordnete Bestellung mit dem Volumen von 1000 wird ein Ticket in dieser Reihenfolge haben. Und wir müssen sie schließen und auf dieselbe Weise ändern... Oder einfacher - ein Mikrokonto und sehr kleine Lots. Bei Berechnungen zur visuellen Verfolgung multiplizieren Sie die Lose mit dem Koeffizienten, damit sie den gewünschten Wert annehmen...

Mir fällt nichts anderes ein als ein Maklerunternehmen, das größere Volumina zulässt.

Oder ... teilen Sie Ihre Lose durch 100

 
artmedia70:

Man muss kein Experte in Boolescher Algebra sein, um die Bedingungen klar zu formulieren...

Ich möchte Ihnen das Leben ein wenig leichter machen... Ersetzen Sie if durch das übliche if, else durch otherwise, && durch and, || durch or , usw... Dann können Sie das Geschriebene in Ihren eigenen Worten lesen oder entscheiden, was Sie schreiben möchten.

Was Sie geschrieben haben (lassen wir die falsche Zustandsbeschreibung erst einmal weg):

1. if (ot==0) Wenn es keine Market Orders gibt (weder Market Orders überhaupt, noch Pending Orders, noch von diesem EA, oder von einem anderen EA, oder manuell geöffnet)... Wenn ja, wird Zeile 2 ausgeführt, wenn nein, gehen wir zu Zeile 3.

2. if (Bid==Price) Wenn der Preis gleich dem Eröffnungskurs der aktuellen Kerze ist... Wenn ja, wird Zeile 3 ausgeführt, wenn nicht, gehen wir zu Zeile 4.

3. if(((Open[1]-Close[1])>100*Point)&&((Open[1]-Close[1])<120*Point)) Wenn der Eröffnungskurs der ersten Kerze um mehr als 100 Punkte und weniger als 120 Punkte über dem Schlusskurs der ersten Kerze liegt... Wenn ja, gehen Sie zu Zeile 4, wenn nicht, gehen Sie zu Zeile 5.

4. if(((High[1]-Open[1])>40*Point)&&((High[1]-Open[1])<60*Point)) Wenn der Höchststand der ersten Kerze um mehr als 40 Punkte und weniger als 60 Punkte über dem Eröffnungskurs der ersten Kerze liegt... Wenn ja, führen wir Zeile 5 aus, wenn nicht, gehen wir zu Zeile 6.

5. if(((Close[1]-Low[1])>40*Point)&&((Close[1]-Low[1])<60*Point)) Wenn der Schlusskurs der ersten Kerze um mehr als 40 Punkte und weniger als 60 Punkte über dem Tiefstkurs der ersten Kerze liegt. Wenn ja, wird Zeile 6 ausgeführt, wenn nicht, geht es weiter mit Zeile 7.

6.

7.

Wie Sie aus dieser Zerlegung ersehen können, werden entweder alle Codezeilen nacheinander ausgeführt (falls jede Zeile true zurückgibt), oder Sie überspringen die Zeile, die auf die Zeile folgt, die false zurückgibt.

Um Verwirrung über Ihre Bedingungen zu vermeiden und die Logik richtig zu gestalten, schließen Sie alle Anweisungen in geschweifte Klammern ein, unabhängig davon, ob eine einzelne Zeile nach dem Wahrheitswert oder ein ganzer Block ausgeführt werden soll.

Zum Beispiel:

Versuchen Sie also, Ihren Code in Komponenten zu zerlegen, und entfernen Sie zusätzliche Klammern, die in diesem Fall unnötig sind...

Vielen Dank für Ihre ausführliche Antwort.

 
solnce600:
Es stellte sich heraus, dass, als mir mangelnde Boolesche Logik vorgeworfen wurde - sie meinten zusätzliche Klammern in Operatoren.... aber das sind Formatierungsregeln für Ausdrücke und Operatoren.... ist das Boolesche Logik?

Nein - Fehlen der geschweiften Klammern, wo sie notwendig sind. Anwendung auf den Logikblock für die Candlestick-Größen-Suche in Ihrem EA
 
solnce600:

Vielen Dank für Ihre ausführliche Antwort.

Ich habe Ihren Code korrigiert, so dass er immer noch das Schließen per Stopp überwacht - ich habe dem Magier einen Wert für Sie zugewiesen. Ich habe es nicht selbst überprüft.
 

Guten Tag. Sehr geehrte, bitte beraten Sie, wie man diese Bedingung in den Expert Advisor zu implementieren.

Die Geschäfte werden auf dem Stundenchart unter bestimmten Bedingungen eröffnet, aber wir müssen es so einrichten, dass die Geschäfte nur unter den Bedingungen auf dem 4-Stunden-Chart eröffnet werden.

Zum Beispiel: Wenn auf dem Stundenchart Crossover-Durchschnitte ein Geschäft eröffnen, vorausgesetzt, dass der 4-Stunden-Chart mit den Durchschnitten mit anderen Parametern in dieselbe Richtung kreuzt. Für Antworten und Hilfe wäre ich sehr dankbar.

 
teplovoz:

Guten Tag. Sehr geehrte, bitte beraten Sie, wie man diese Bedingung in den Expert Advisor zu implementieren.

Die Geschäfte werden auf dem Stundenchart unter bestimmten Bedingungen eröffnet, aber wir müssen es so einrichten, dass die Geschäfte nur unter den Bedingungen auf dem 4-Stunden-Chart eröffnet werden.

Zum Beispiel: Wenn auf dem Stundenchart Crossover-Durchschnitte ein Geschäft eröffnen, vorausgesetzt, dass der 4-Stunden-Chart mit den Durchschnitten mit anderen Parametern in dieselbe Richtung kreuzt. Für Antworten und Hilfe wäre ich sehr dankbar.

Wird auf die MAs angewandt, um Daten von H4 für den ersten und zweiten Balken zu erhalten:

double MA1_H4=iMA(Symbol(),PERIOD_H4,ma_period,ma_shift,ma_method,appled_price,1);
double MA2_H4=iMA(Symbol(),PERIOD_H4,ma_period,ma_shift,ma_method,appled_price,2);

Um Daten von H1 für den ersten und zweiten Balken zu erhalten:

double MA1_H1=iMA(Symbol(),PERIOD_H1,ma_period,ma_shift,ma_method,appled_price,1);
double MA2_H1=iMA(Symbol(),PERIOD_H1,ma_period,ma_shift,ma_method,appled_price,2);

Machen Sie das Gleiche für andere Zeiträume und Indikatoren.

 
artmedia70:

Anwenden auf die MAs für H4-Daten für den ersten und zweiten Balken:

Machen Sie das Gleiche für andere Zeiträume und Indikatoren.



Wow, ich bin so dumm, ich schätze, ich muss nur den gewünschten Zeitrahmen in den Parametern des Assistenten angeben und das war's? Danke, mein Gehirn weigert sich in diesen Tagen zu arbeiten :)
 
artmedia70:
Ich habe Ihren Code so korrigiert, dass er die Schließung der Haltestelle weiterhin verfolgt - ich habe dem Zauberer einen Wert für Sie zugewiesen. Ich habe es nicht selbst überprüft.


Ich werde es wieder tun. Ich danke Ihnen vielmals.
 
Das ist in Ordnung, wir alle haben sie hin und wieder...