Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 966

 
Alexey Viktorov:

Wenn das so ist, wozu sind dann diese selbst geschriebenen Funktionen überhaupt gut?

Ich habe die Höchst- und Tiefstpreise von gestern ermittelt und aus diesen Werten den Mittelwert bestimmt.

Ich weiß nicht... Ich habe nicht nachgedacht... Ich werde es jetzt umschreiben... So ist es einfacher... Danke!

 
Igor Makanu:

Geld-Management

was die zufälligen Einträge betrifft, folgen die ausstehenden Aufträge dem Preis, im Optimierer erfolgt die Auswahl nach der Formel y=kx+b , später werde ich Polynom und Exponent verwenden, aber der Optimierer sucht nur nach den Faktoren und den Auftragswerten, im Allgemeinen nicht, um es zu vernebeln - es ist ein Raster, nun, fast, aber die Ziele sind noch nicht erreicht worden

Wenn ich mir die Märkte anschaue, mit denen ich mich beschäftige (wenn auch nicht sehr aktiv), seit ich mich im Forum angemeldet habe, hat die Programmierschicht in MQL viel Zeit in Anspruch genommen, aber im Allgemeinen wurde die Idee im Laufe des Jahres durch das damit verbundene Schreiben von Expert Advisors auf der Grundlage der Anfragen der arbeitenden Menschen entwickelt )))

Kein Problem, nur zu.

Verstehe, sehr gut verstanden, denn ich habe das schon einmal erlebt.
Trotzdem geht es darum, einige Parameter zu finden (in diesem Fall zumindest die Koeffizienten k und b in der linearen y=kx+b oder a,k,x in der exponentiellen y=ax²+kx+b). Diese Koeffizienten sollten sich vorzugsweise mitjedem Tick ändern, deshalb habe ich gesagt, dass die Optimierung im Programm selbst sitzen und automatisch und ständig stattfinden sollte, aber nicht in einem externen Tester im manuellen Modus von Zeit zu Zeit (einmal am Tag oder in der Woche oder im Monat...). Außerdem müssen Sie den Zeitraum kontrollieren, in dem die beobachtete lineare oder parabolische (exponentielle) Regression auftritt. Auch dieser Zeitraum sollte sich mit jedem Häkchen ändern. Die Suche nach einer Geraden oder einer Parabel ist jedoch dasselbe wie die Suche nach der optimalen Periode der linearen oder parabolischen Regression.
Aber ein externer Tester kann immer solche konstanten statischen Parameter finden, die universell garantiert nur zu dem Satz historischer Daten passen, auf dem der Test ausgeführt wird, und auf diesem, dem vergangenen historischen Zeitraum, werden natürlich ein stabiler Gewinn und schöne Gewinnlinien beobachtet werden, aber wir brauchen die Gegenwart und die Zukunft.

Dennoch geht es um die Kontrolle der Kanalbreite, der Kanallänge, des Kanalabbruchs, der Rückkehr zur Bruchlinie eines linearen oder höheren Grades von Kanälen. Dies ist ein Mustererkennungsproblem und sollte nur intern und nicht extern gelöst werden.

 
Nikolai Semko:

Verstehe, sehr gut verstanden, denn ich habe das schon einmal erlebt.

Das habe ich auch, und zwar mehr als einmal.

Nikolai Semko:

Aber der externe Tester wird immer in der Lage sein, solche konstanten statischen Parameter auszuwählen, die universell garantiert nur zu dem Satz historischer Daten passen, auf dem der Test läuft, und auf diesem, bereits vergangenen historischen Zeitraum, werden natürlich ein stabiler Gewinn und schöne Gewinnlinien gezeichnet werden, aber wir brauchen die Gegenwart und die Zukunft.

Das ist das Problem - nein, es ist das gleiche wie das Buch Test und vorwärts, die Charts sind anders, aber der Trend ist da, soweit ich verstehe, meine EA ist nicht auf den zukünftigen Preis selbst, sondern die zukünftigen Preis Trajektorien.

 
Leute, ich habe eine Frage. Schauen Sie, es gibt ein Präfix Inkrement ++q und Postfix q++, mit ihren Eigenschaften können Sie ganz unterschiedliche und interessante Wirkung zu bekommen, zum Beispiel die Priorität dieser q + + Inkrement führt Addition der späten/rückwärts Zahl dh nach und nicht sofort, wie kann dies mit Primzahlen getan werden und ist es möglich, zum Beispiel will ich solche Addition q + 5, zuerst muss ich q verwenden und dann 5 hinzufügen?
 
Seric29:
Leute, ich habe eine Frage. Schauen Sie, es gibt ein Präfix Inkrement ++q und Postfix q++, mit ihren Eigenschaften können wir ganz unterschiedliche und interessante Wirkung zu bekommen, zum Beispiel Priorität dieser q + + Inkrement führt Addition spät / rückwärts dh nach und nicht sofort, wie kann es mit Primzahlen getan werden und ist es möglich, zum Beispiel will ich wie Zusatz q + 5, zuerst muss ich q verwenden und dann 5 hinzufügen?

Nun, wenn dies als Schleifenzähler verwendet werden soll, dann einfach

for(int q = 0; q <= 25; q+=5)
 
Alexey Viktorov:

Nun, wenn Sie ihn als Schleifenzähler verwenden, ist es einfach

Und wenn man einen q+5-Ausdruck in eine Funktion gibt und erst q ausführt und dann 5 hinzufügt, geht das nicht, oder?

int q
void Funk(int pr){}
вызвов Funk(...q+5...) сначала используем q а после прибавляем 5
как здесь например Funk(q++) сначала используем q а после прибавляем 1
 
Kommentare, die für dieses Thema nicht relevant sind, wurden nach"OOP, Vorlagen und Makros in mql5, Tipps und Tricks" verschoben.
 
Seric29:

Und wenn man einen q+5-Ausdruck in eine Funktion einfügt und erst q ausführt und dann 5 hinzufügt, kann man das nicht machen, oder?

Ist 5 eine Konstante oder eine Variable? Wenn es sich um eine Konstante handelt, ist das kein Problem: Geben Sie q in die Funktion ein und addieren Sie 5, nachdem Sie es verwendet haben. Wenn es sich um eine Variable handelt, geben Sie zwei Variablen ein und addieren Sie die zweite Variable, nachdem Sie q verwendet haben. Eine andere Möglichkeit besteht darin, Variablen global zu deklarieren. Dann brauchen Sie überhaupt nichts zu verabschieden.
 

Hallo. Ich möchte unterschiedlich ausgerichtete Positionen schließen, wenn der Gewinn =0 ist. Unterschiedliche Anzahl von Kauf- und Verkaufspositionen, unterschiedliche Losgrößen.

Was stimmt nicht mit der Durchschnittspreissuchfunktion, d.h. dem Nullgewinnpunkt?

 double AveroProf(string sy="", int op=-1, int mn1=-1) 
   {
   int i=0;
   int kol=0;
   double lots=0;
   double sum=0;
   double sum1=0;
   double zeroprice=0;
   double tick_value;
   for (i=0; i<OrdersTotal(); i++)
   {
      if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
      if (OrderSymbol()!=Symbol()) continue;
      if (OrderMagicNumber()!=mn1) continue;
      if (OrderType()==OP_BUY)
      {
       lots=lots+OrderLots();
       sum=sum+OrderLots()*OrderOpenPrice();
       sum1=sum1+OrderProfit()+OrderSwap()+OrderCommission()  ; 
      }
      if (OrderType()==OP_SELL)
      {
       lots=lots+OrderLots();
       sum=sum+OrderLots()*OrderOpenPrice();
       sum1=sum1+OrderProfit()+OrderSwap()+OrderCommission()  ;
       kol=kol+1;
      }
   
   }
   if (lots>0)
   { 
   zeroprice=sum/lots;
   zeroprice=NormalizeDouble(zeroprice,_Digits);
   zeroprice = (MathRound(zeroprice*MathPow(10,Digits)))/MathPow(10,Digits);
    }   
   return( zeroprice);
   }
 
Kann mir bitte jemand bei diesem Problem helfen: https://www.mql5.com/ru/forum/322133
Как использовать WinApi для преобразования времени в StrategyTester MT5?
Как использовать WinApi для преобразования времени в StrategyTester MT5?
  • 2019.09.12
  • www.mql5.com
Я успешно создал CustomSymbol в MT5, и я получаю эту таблицу в приложении...
Grund der Beschwerde: