Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 833

 
Vladimir Karputov:

Erstens: Formulieren Sie klar und deutlich:

  • die Bedingung für die Eröffnung einer Position
  • Close-Position-Bedingung

Die wichtigsten Bedingungen für die Positionseröffnung am Beispiel der Eröffnung zum Kauf (für Verkäufe - Spiegel):

  1. die schnelle stochastische Linie kreuzt die langsame stochastische Linie nach oben
  2. Wir müssen eine Bedingung hinzufügen - wenn es eine offene Position zum Kauf gibt, wird bei einem neuen Signal (siehe oben) ein Handel nur dann eröffnet, wenn der Eröffnungskurs des neuen Handels um eine bestimmte Anzahl von Punkten höher ist als der Eröffnungskurs der letzten offenen Position, zum Beispiel 30.

Die Bedingungen für das Schließen einer Position (zum Kauf), beide Bedingungen müssen erfüllt sein

  1. die langsame Stochastiklinie kreuzt die 80er Stochastiklinie von oben nach unten
  2. Es muss eine Bedingung hinzugefügt werden - dies ist die zweite Kreuzung (siehe oben) für jede zuvor eröffnete Position.
Tut mir leid, wenn ich die Schließung nicht erklärt habe, auf dem Chart sieht die Schließung so aus: zwei Signale zur Schließung des Handels sind mit roten Kreuzen markiert, weil die langsame (rote) Stochastiklinie die 80er-Marke nach unten kreuzt. Aber der Handel wird erst beim zweiten Signal/Kreuzung geschlossen


 
gastinets:

Grundbedingungen für die Eröffnung einer Position am Beispiel einer Kauferöffnung (bei gespiegeltem Verkauf):

  1. die schnelle stochastische Linie kreuzt die langsame stochastische Linie von unten nach oben
  2. Wir müssen eine Bedingung hinzufügen - wenn es eine offene Position zu kaufen gibt, wird bei einem neuen Signal (siehe oben) eine Position nur dann eröffnet, wenn der Eröffnungskurs einer neuen Position um eine bestimmte Anzahl von Punkten höher ist als der Kurs der letzten offenen Position, zum Beispiel 30.

***


Es scheint, dass wir eine Bedingung für die Eröffnung einer Position übersehen haben: In welchem Bereich sollte sich der Indikator befinden (oder ein Niveau über oder unter dem der Indikator liegen sollte) ...

 
Vladimir Karputov:

Wir scheinen die Bedingung für die Eröffnung einer Position nicht erfüllt zu haben: in welchem Bereich sich der Indikator befinden sollte (oder das Niveau, über oder unter dem der Indikator liegen sollte) ...

Wenn wir der Einfachheit halber das Niveau senken können), d.h. das stochastische Niveau ist für die Eröffnung von
nicht wichtig.

 
gastinets:

Wenn wir der Einfachheit halber das Niveau senken können), d.h. das stochastische Niveau ist für die Eröffnung nicht wichtig

Können wir es in ein separates Thema verschieben, z. B."Stochastic Expert Advisor, eingerückte Positionen"?

 

Verschieben wir den Termin.

Soll ich ein neues Thema erstellen oder Sie?

 
gastinets:

los geht's

Soll ich ein neues Thema erstellen oder Sie?

Bitte erstellen Sie ein Thema in der Rubrik:Automatisierte Handelssysteme

 
Kommentare, die sich nicht auf dieses Thema beziehen, wurden nach "Fragen von MQL4 MT4 MetaTrader 4 Anfängern" verschoben.
 
Vladimir Karputov:

Ich denke, Sie können es viel einfacher machen - in der Expert Advisor, der Schwellenwert für CLOSE auf 100 gesetzt, und geben Sie das Signal ein Gewicht von 0,5 - so das Signal mit einem Gewicht von 0,5 wird NIE die Schwelle von 100 zu überwinden


Ich danke Ihnen! Es scheint zu funktionieren!

 
Bitte erläutern Sie, worin das Problem besteht. Die Funktion soll alle offenen Positionen durchsuchen und die Anzahl der Positionen mit einer bestimmten magischen Zahl zählen. Tatsächlich wählt er aber nur einen aus der gesamten Liste aus, der von einem anderen EA mit demselben Ticket und derselben magischen Nummer geöffnet wurde, so dass die Anzahl immer =0 ist.
int OpenPositions()//проверка открытых позиций
  {
   int count=0;
   for(int z=PositionsTotal()-1; z>=0; z --)
     {
      if(!PositionSelect(_Symbol))
        {
         Print(__FUNCSIG__" позиция не выбрана ",GetLastError()); continue;
        }
      long  ticket = PositionGetInteger(POSITION_TICKET);
            Print(__FUNCSIG__" ТИКЕТ ", IntegerToString(ticket));
      ulong myMN=PositionGetInteger(POSITION_MAGIC);
            Print(__FUNCSIG__" МАГИК ", IntegerToString(myMN));
      if(myMN==Magic)
            count++;
     }
   return(count);
  }
Grund der Beschwerde: