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

 

Hallo an alle Forumsmitglieder.

Gibt es Ratschläge von sachkundigen Personen? Ich habe einen EA, der auf ein Indikatorsignal hin Trades eröffnet. Wie kann ich programmatisch einen Signalzähler vorschreiben, d.h. nachdem ich den Take Profit genommen oder eine Order auf einem Trailing Stop geschlossen habe, überspringt der EA die nächsten beiden Signale und eröffnet keine Trades.

Ich wäre Ihnen für jede Hilfe dankbar.

void CheckForOpen()
{
   int ticket, STOPLEVEL;
   double Price, SL, TP; 
   STOPLEVEL=MarketInfo(Symbol(),MODE_STOPLEVEL);
   
   
   double AO = iIchimoku (Symbol(),0,Tenkan,Kijun,Senkou,MODE_SENKOUSPANA,1); // верхняя граница облака 
   double BO = iIchimoku (Symbol(),0,Tenkan,Kijun,Senkou,MODE_SENKOUSPANB,1); // нижняя граница облака 

      
   if(Volume[0]>1) return;

   if (AO>BO) // продажа
   {
   if (Open[1]>Close[1] && Close[1] < BO && Open[1]>BO) // продажа

     {
     Price = NormalizeDouble(Bid, Digits); // округляем до нужного нам числа цифр после запятой
     if(StopLoss >= STOPLEVEL)
          if(StopLoss > 0)
      {
       SL = Price + StopLoss*Point; // вычисляем стоплос
       SL = NormalizeDouble(SL, Digits); // округляем до нужного нам числа цифр после запятой
      }
       else SL = 0;

      if(TakeProfit > 0)
      {
       TP = Price - TakeProfit*Point;
       TP = NormalizeDouble(TP, Digits); 
      }
       else TP = 0;

      { 
      ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,SL,TP,"Pattern_1",Magic,0,Red);
      return;
      }
    }
    }
 
alexey1979621:

Hallo an alle Forumsmitglieder.

Irgendwelche Ratschläge von sachkundigen Personen? Ich habe einen EA, der auf ein Indikatorsignal hin Trades eröffnet. Wie kann ich programmatisch einen Signalzähler vorschreiben, d.h. nachdem ich den Take Profit genommen oder eine Order auf einem Trailing Stop geschlossen habe, überspringt der EA die nächsten beiden Signale und eröffnet keine Trades.

Ich wäre für jede Hilfe dankbar.


Ich weiß nicht, was ich will, aber bitte beraten Sie mich, wie ich es umsetzen kann.

Und was genau meinen Sie mit dem Überspringen von Signalen?

1) Ein virtueller Handel? als ob wir eine Dummy-Position eröffnen, überwachen, schließen auch Dummy ( Ilanim);

2) Versuchen Sie, das Signal nach einer bestimmten Zeit zu verwenden, ein neues Signal kann in ХХХ Minuten empfangen werden;

3) Auswertung des Signals nach einer bestimmten Anzahl von Takten? Ein neues Signal kann nach ХХХХ Takten empfangen werden;

..................

Auch alle anderen Anfragen:

Ersetzen Sie das Konstrukt if(Volume[0]>1) return; es wird nicht immer schon in der Demo, geschweige denn in der Realität ausgelöst;

Ist es nicht möglich, mit einer Bedingung mehr auszukommen?

if (StopLoss >= STOPLEVEL)         //    if (StopLoss > STOPLEVEL) так не проще?
   if(StopLoss > 0)

ist die Logik nicht korrekt, sonst wird die zweite Bedingung behandelt:

if (StopLoss >= STOPLEVEL)
   if (StopLoss > 0){
      SL = Price + StopLoss*Point; // вычисляем стоплос
      SL = NormalizeDouble(SL, Digits); // округляем до нужного нам числа цифр после запятой
   }
   else SL = 0;

und vieles mehr...

 
ALXIMIKS:


Ich möchte etwas, von dem ich nicht weiß, was es ist, aber sagen Sie mir, wie ich es umsetzen kann.

Was genau meinen Sie mit fehlenden Signalen?

1) Ein virtueller Handel? als ob wir eine fiktive Position eröffnen, sie überwachen und sie auch fiktiv schließen (Ilanim);

2) Versuchen Sie, das Signal nach einer gewissen Zeit zu verwenden, ein neues Signal kann in ХХХ Minuten empfangen werden;

3) Auswertung des Signals nach einer bestimmten Anzahl von Takten? Ein neues Signal kann nach ХХХХ Takten empfangen werden;

..................

Auch alle anderen Anfragen:

Ersetzen Sie das Konstrukt if(Volume[0]>1) return; es wird nicht immer schon in der Demo, geschweige denn in der Realität ausgelöst;

Ist es nicht möglich, mit einer Bedingung mehr auszukommen?

ist die Logik nicht korrekt, sonst wird die zweite Bedingung behandelt:

und viele mehr...

Ich bin ein Anfänger Schriftsteller, d.h. ich bin immer auf alles selbst, die Hauptsache ist, dass es funktioniert. if(Volume[0]>1) funktioniert gut sowohl auf der realen und auf der Demo, und in der Tester. Ich habe meine Wünsche ganz klar formuliert. Ein Geschäft wird auf der Grundlage des Indikatorsignals eröffnet (ich habe die Bedingung der Geschäftseröffnung im Code beigefügt). Nachdem der vorherige Handel mit Take Profit und Trailing Stop geschlossen wurde, muss ich 1 oder 2 oder 3 (einstellbarer Parameter) Signale des Indikators auslassen, d.h. keinen Handel eröffnen. Ich weiß nicht, wie man es programmatisch vorschreibt, deshalb bitte ich um Hilfe.
 

Guten Tag an alle!) Ich habe mich kürzlich für MQL interessiert und bin nun auf die ersten Probleme gestoßen. Die Idee ist, dass der EA Positionen entsprechend der Funktion öffnet, sie aber nicht schließen möchte, und daher werden diese Marktaufträge ohne Stopps bis zum Ende der Testsitzung platziert. Die Frage ist, wo ich meinen Fehler gemacht habe.

Hier ein kleiner Ausschnitt:

 if(Level >= 0.000100 && LevelXP>LevelXM && CountSell() > 0)
          {
               for(i=OrdersTotal()-1; i >= 0; i--)
               {
                   if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == true)
                   {
                       if(OrderMagicNumber() == Magic && OrderType() == OP_SELL)
                          OrderClose(OrderTicket(), OrderLots(), Ask, Slippage);
                   }
               }
          }
 
ElhoroS:

Guten Tag an alle!) Ich habe mich kürzlich für MQL interessiert und bin nun auf die ersten Probleme gestoßen. Die Idee ist, dass der EA Positionen entsprechend der Funktion öffnet, sie aber nicht schließen möchte, und daher werden diese Marktaufträge ohne Stopps bis zum Ende der Testsitzung platziert. Die Frage ist: Was habe ich falsch gemacht?


1) Vielleicht liegt das Problem in den Abschlussbedingungen (Sie haben sie implizit genannt)

2) Sie haben nur OP_SELL in diesem Code geschlossen (haben Sie daran gedacht, Kaufbedingungen zu implementieren?)

3) Bei der Brute-Force-Prüfung werden das Währungspaar und der Zeitrahmen nicht geprüft (warum sollte ich das noch einmal tun?)

4) Es gibt keine Überprüfung für Requotes (im Strategy Tester sollte alles in Ordnung sein, aber auf dem Demo- oder realen Konto - nicht immer)

5) Wie Artemis artmedia70 erklärte,ist MarketInfo(Symbol(),MODE_ASK) besser alsAsk - es gibt mehr aktuelle Preise

 
ALXIMIKS:


5) Wie Artemis feststellte, ist MarketInfo(Symbol(),MODE_ASK) besser alsAsk - eswerden mehr relevante Preise angegeben.

Nein... Schluss mit den Beschimpfungen...
 
artmedia70:
Nein... Schluss mit den Beschimpfungen...


Ja, ich erinnere mich an die letzte Situation, Artyom, es tut mir leid - sie ist hängen geblieben.
 
ALXIMIKS:

Ja, ich erinnere mich an die vergangene Situation, Artem, es tut mir leid - sie ist hängen geblieben.
Artjom+Femis=Artemis; Sei stolz, Artjom, es ist ein Geständnis! Ich wünsche Ihnen, dass es so bleibt!
 
borilunad:
Artjom + Themis = Artemis; Sei stolz, Artjom, es ist ein Geständnis! Ich wünsche Ihnen, dass Sie so weitermachen!
 
artmedia70:
Woher kommen die Bilder und wie machen Sie sie? Es stimmt, dass diese Figuren nicht Themis darstellen.