[Archiv!] Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Könnte nirgendwo ohne dich hingehen - 2. - Seite 487

 
tol64:


)))) Nein, ich denke, es wäre besser, den Magier zu verlassen. Und lassen Sie die ausstehenden Aufträge einfach liegen.

Um genauer zu sein, lassen Sie die magischen Symbole, die benötigt werden. Und wenn Sie mehrere EAs auf verschiedenen Charts verwenden, sollten Sie auch Symbole in die Prüfung einbeziehen. Ich bin noch nicht an diesem Punkt angelangt. ))


Normalerweise prüfen wir ein Symbol und eine Magie - ein Symbol, das auf verschiedenen Instrumenten verwendet werden soll, ohne eine Magie zu ändern - und eine Magie, die auf einem Instrument und verschiedenen Zeitrahmen verwendet werden soll - aber nur eine Magie kann geprüft werden, wenn sie in externen Variablen ausgegeben wird
 
Können Sie mir sagen, ob der Broker jmt:0 im Sommer und im Winter die gleiche Farbe hat?
 
FOReignEXchange:

Ich verwende überhaupt keine Zauberer. Manchmal sind es aber auch nur ein paar Artikel auf einmal. Ich benutze Fahrkarten. Es ist viel einfacher, über OrderSelect zu prüfen. Und die Funktion OrderSend wird deutlicher. Nun, jeder ist Herr seiner eigenen Handschrift. Ich persönlich hatte noch nie Probleme ohne Zauberer.

Das Ticket führt nirgendwohin. Das ist praktisch.

Ganz genau... :) Schließen Sie eine teilweise geöffnete Position. Und dann versuchen Sie, die Haltestelle zu ändern oder das Ticket zu nehmen, das Sie für diese Position haben. Dann erhalten Sie das Beste aus beiden Welten. :)

Beispiel: Wir haben eine offene Position mit 1,0 Lot und Ticket #1. Sie müssen 0,5 Lots dieser Position schließen und die restlichen 0,5 Lots behalten.

Aktionen des Händlerzentrums:

1. Position #1 mit vollem Volumen schließen (Lot 1.0)

2) Eröffnen Sie die Position #2 mit einem Volumen von 0,5 Lots

Für Sie sieht es so aus, als würden Sie die Position Nr. 1 teilweise schließen und den Rest auf dem Markt lassen. Nur ist das Ticket für diese Stelle nicht das, was Sie denken...

 
FOReignEXchange:


Ich verstehe das nicht? Ich schaue gerade in der Hilfe nach, da OrderSelect() eine Bedingung verwendet. Und ich habe nirgendwo gesehen, dass es nicht stimmt.

If ist ein Bedingungsoperator. Und es sollte eine Bedingung in Klammern stehen. Das scheint mir logischer zu sein. Auch wenn es keinen Unterschied gibt.

Ziehen wir eine Analogie zum Russischen. IMHO ist es bequemer, den Code in Gedanken zu lesen und die Operatoren durch gesprochenen Text zu ersetzen:

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;

Was wir hier haben, ist:

Wenn die Bestellung noch nichtausgewählt wurde, unterbrechen wir die Schleife.

Jetzt:

if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;

Hier ist es bequemer:

Wennkein Auftrag ausgewählt wurde, unterbrechen wir die Schleife.

Es ist absolut dasselbe, aber es ist leichter zu lesen. Und es wird weniger geschrieben...

Und wir können auch alles Unnötige entfernen und so noch weniger Code erhalten:

if(!OrderSelect(i,SELECT_BY_POS)) break;

Und warum? Da wir eine Marktorder auswählen und diese standardmäßig MODE_TRADES ist, können wir sie im Parameter der Funktion OrderSelect() weglassen...

Oh, ja... :)

 
artmedia70:

Oh je... :)


)))

Ja. Es ist Morgen, also guten Morgen! ))

Ich habe noch eine weitere Anomalie, die ich auf den ersten Blick nicht verstehe. Der einfachste Vorgang:

double High_1  = NormalizeDouble(iHigh(Symbol(),Timeframe,1),Digits);
double new_val = NormalizeDouble(High_1 + PlsMns_point*Point,Digits);

Ich kann es im Tagebuch sehen:

Und zwar im wahrsten Sinne des Wortes spiegelbildlich:

 double Low_1   = NormalizeDouble(iLow(Symbol(),Timeframe,1),Digits);
 double new_val = NormalizeDouble(Low_1 - PlsMns_point*Point,Digits);

In der Zeitschrift sehe ich diese "Zahl":

Die externe VariablePlsMns_point ist vom Typ int. Sie wird an eine Funktion übergeben. Was sollte getan werden, um dieses Missverständnis zu beseitigen? ))

 

Die externe Variable PlsMns_point ist vom Typ int .

Aus dem ersten Protokolleintrag geht hervor, dass er vom Typ Double ist, während int eine ganze Zahl ist.

 
Stells:

Die externe Variable PlsMns_point ist vom Typ int .

Laut dem ersten Protokolleintrag ist es vom Typ Double, int ist eine ganze Zahl.


Und wenn man sie mit Punkt multipliziert, scheint die Umwandlung zu erfolgen. Aber das ist nicht das Problem, denn ich habe auch das Doppelte versucht.

P.S. Und außerdem zwei identische Varianten. Der einzige Unterschied besteht in der Spiegelung. Warum ist das so?

 

Ich glaube, dieser Wert fehlt bei Ihnen:

double Low_1 = NormalizeDouble(iLow(Symbol(),Timeframe,1),Digits);

vielleicht die Geschichte herunterladen

 
tol64:


)))

Ja. Es ist Morgen, also guten Morgen! ))

Ich habe eine weitere Anomalie, die ich auf den ersten Blick nicht verstehe. Der einfachste Vorgang:

Ich kann es im Tagebuch sehen:

Und zwar im wahrsten Sinne des Wortes spiegelbildlich:

In der Zeitschrift sehe ich diese "Zahl":

Die externe VariablePlsMns_point ist vom Typ int. Sie wird an eine Funktion übergeben. Was sollte ich tun, um dieses Missverständnis auszuräumen? ))

Drucken Sie auch die Werte der Variablen High_1 und Low_1. Drucken Sie im Allgemeinen die Werte aus, die der Funktion übergeben werden, und geben Sie auch die Rückgabewerte aus, damit Sie sehen, wo Sie anfangen müssen. Oft nehmen die Variablen, derer man sich sicher ist, völlig unerwartete Werte an. Dann werden Sie den Fehler finden, den Sie gemacht haben.
 

Guten Tag, wie kann ich das Volumen der Protokolldatei ändern (anpassen, löschen), die manchmal aufgrund von EA-Fehlern zu großen Werten verstopft ist. Ich brauche eine Möglichkeit, dies über den Expert Advisor selbst zu tun.

Grund der Beschwerde: