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

 
Crosswert:


Ha ha... Hier ist eine Lüge...

Es stellte sich heraus, dass das Problem in der Funktion OpenOrders() lag. Ich habe völlig vergessen, die Kontrolle über die Ordereröffnung bei einem Zusammenbruch einer Kerze (Bar) aufzuheben:

if (Volume[0] > 1) return;

Also, auf welcher TF der Expert Advisor testete, eröffnete er Orders in diesen Minuten...

Dummheit im Allgemeinen, auf eine harte Tour...

Danke...

Das kommt vor))) Ich freue mich, dass ich Ihnen helfen konnte)))
 
Crosswert:


if (Volume[0] > 1) return;


Verwenden Sie diese Art der Prüfung nicht, um die Eröffnung eines neuen Balkens zu erkennen, da sie im Konto nicht gut funktioniert, sondern nur im Prüfprogramm. Sie müssen entweder nach der Balkenzeit oder nach der Anzahl der Balken im Diagramm prüfen

 
Crosswert:


Ha ha... Hier ist eine Lüge...

Es stellte sich heraus, dass das Problem in der Funktion OpenOrders() lag. Ich habe völlig vergessen, die Kontrolle über die Ordereröffnung bei einem Zusammenbruch einer Kerze (Bar) aufzuheben:

if (Volume[0] > 1) return;

Also, auf welcher TF der Expert Advisor testete, eröffnete er Orders in diesen Minuten...

Dummheit im Allgemeinen, auf eine harte Tour...

Danke...

Besser so(https://www.mql5.com/ru/forum/138609/page482):
bool CheckOpenM15() // Функция возвращает истину при появлении нового бара на М15 (Использовать только в советние)
{
   static int PrevTime=0;
   if (PrevTime==iTime(NULL, PERIOD_M15,0)) return(false);
   PrevTime=iTime(NULL, PERIOD_M15,0);
   return(true);
}
 
Noch besser ist es, der Funktion den Namen der gewünschten TF zu übergeben
 
artmedia70:
Noch besser ist es, den Namen der gewünschten TF an die Funktion zu übergeben

Dies ist nur ein Beispiel.
 


Wissen Sie, mit / PrevTime / habe ich einmal etwas versucht, aber es hat nie funktioniert. Ich schätze, ich konnte den Code nicht an der richtigen Stelle einfügen.

Mit / if (Volume[0] > 1) return; / ist alles viel einfacher. Hier funktioniert, wie ich glaube, alles für die ausgewählte TF. Ich weiß nicht, ob es auf einer Demo funktioniert, aber ich habe keine Fehler, Bugs oder andere Details beim Öffnen von Aufträgen bemerkt.

Aber ich habe die Kontrolle der Auftragseröffnung bei einem neuen Takt schon lange nicht mehr benutzt. Es ist mir gelungen, die Funktion der Kontrolle offener Positionen zu erstellen. Zusammen mit den Eröffnungsaufträgen zu einem bestimmten Zeitpunkt brauchen wir keine Balkenkontrolle als solche.

Der Code ist einfach veraltet. Offensichtlich habe ich die Einschränkungen vergessen und ihn einfach eingesteckt und weiter benutzt...

 

Können Sie mir bitte sagen, wie ich den Preiswert der Fibonacci-Levels ermitteln kann?

Je nach Bedingung wird ein Kauf- oder Verkaufsgeschäft eröffnet, sobald der Kurs die festgelegten Fibonacci-Levels überschritten hat.

Ein Fibonacci-Objekt wird von einem Expert Advisor unter Verwendung der Funktion von Kim gezeichnet: https://www.mql5.com/ru/forum/107476/page107#606564

Sie wird problemlos gezeichnet. Aber woher wissen wir dann, wie hoch der Preis für die angegebene Stufe ist?

Diese Funktion scheint nicht zu funktionieren:

OBJPROP_FIRSTLEVEL+n 210+n int Ruft den Pegelwert des Fibonacci-Objekts mit dem Indexn ab oder setzt ihn. Der Index n kann zwischen 0 und (Anzahl der Ebenen -1) liegen, darf aber 31 nicht überschreiten.


Ist das möglich? Oder sollten wir die Preise für jede Ebene separat berechnen, ausgehend von OBJPROP_PRICE1 und OBJPROP_PRICE2?

Das ist Unsinn. Ich war die halbe Nacht wach und habe mir den Kopf zerbrochen... Natürlich ist die Nacht wahrscheinlich nicht die beste Zeit, um nach Lösungen zu suchen.

Hilfe bitte, liebe Leute!

 
Lazarechek:

Können Sie mir bitte sagen, wie ich den Preiswert der Fibonacci-Levels ermitteln kann?

Je nach Bedingung wird ein Kauf- oder Verkaufsgeschäft eröffnet, sobald der Kurs die festgelegten Fibonacci-Levels überschritten hat.

Ein Fibonacci-Objekt wird von einem Expert Advisor unter Verwendung der Funktion von Kim gezeichnet: https://www.mql5.com/ru/forum/107476/page107#606564

Sie wird problemlos gezeichnet. Aber woher wissen wir dann, wie hoch der Preis für die angegebene Stufe ist?

Diese Funktion scheint nicht zu passen:

OBJPROP_FIRSTLEVEL+n 210+n int Ruft den Pegelwert des Fibonacci-Objekts mit dem Indexn ab bzw. setzt ihn. Der Index n kann zwischen 0 und (Anzahl der Ebenen -1) liegen, darf aber 31 nicht überschreiten.


Ist das möglich? Oder sollten wir die Preise für jede Ebene separat berechnen, ausgehend von OBJPROP_PRICE1 und OBJPROP_PRICE2?

Das ist Unsinn. Ich war die halbe Nacht wach und habe mir den Kopf zerbrochen... Natürlich ist die Nacht wahrscheinlich nicht die beste Zeit, um nach Lösungen zu suchen.

Hilfe, liebe Leute!

Es gab bereits eine ähnliche Frage:

Ich möchte den Preis bei einem Fibo-Level von 23,6% erhalten
double flevel236 = ObjectGetDouble(0, "Fibo",OBJPROP_LEVELVALUE,1); Dies ergibt 0.236, d.h. nicht den Preis, sondern das Niveau.
Können Sie mir sagen, wie ich den Preis des Levels ermitteln kann? Ich danke Ihnen!

Und sie wurde auch schon beantwortet:

Nur zwei arithmetische Operationen. Multiplikation (0,236 multipliziert mit der Differenz zwischen den Preisen der Stufe Null und der Stufe Eins) und dann Addition (das Ergebnis der Multiplikation wird zum Preis der Stufe Null addiert).

 
Ich habe einen Indikator geschrieben, ihn ausgeführt, alles ist eingefroren und die Meldung - warte auf Update (keine endlosen Zyklen). Wenn ich den Computer neu starte, ist das Ergebnis dasselbe. Es ist klar, dass ich diese Indikatoren vor dem Start löschen und dann einfügen kann, aber jedes Mal, wenn das Problem auf diese Weise zu lösen, ist nicht eine Option. Vielleicht gibt es eine Taste, um von der Kommandozeile aus in die Standardschnittstelle zu booten?
 
artmedia70:

Eine ähnliche Frage ist bereits gestellt worden:

Ich möchte den Preis auf dem Fibo-Niveau von 23,6% erhalten
double flevel236 = ObjectGetDouble(0, "Fibo",OBJPROP_LEVELVALUE,1); Dies ergibt 0.236, d.h. nicht den Preis, sondern das Niveau.
Können Sie mir sagen, wie ich den Preis des Levels ermitteln kann? Ich danke Ihnen!

Und die Antwort wurde auch gleich gegeben:

Nur zwei arithmetische Operationen. Multiplikation (0,236 multipliziert mit der Differenz zwischen den Preisen der Stufe Null und der Stufe Eins) und dann Addition (das Ergebnis der Multiplikation wird zum Preis der Stufe Null addiert).




Vielen Dank!) Das habe ich mir im Prinzip auch gedacht.)


"0,236 multipliziert mit der Differenz zwischen den Preisen der Stufe Null und der ersten Stufe" - nur wäre es wahrscheinlich richtiger zu sagen "zwischen den Preisen der Stufe Null und der letzten Stufe".