Alle Fragen von einem PROFI an einen SUPER PROFI - 1. - Seite 21

 
Ich habe es Ihnen gezeigt. Der Beitrag wurde korrigiert.
 
Ich verstehe, danke.
Ich denke, ich kann die vollwertige Arbeit mit MySQL in MQL (ohne meine dlls) vergessen... schade...
 

Was gibt es an der Bibliothek nicht zu mögen?

Im Falle einer Zeigerrückgabe muss diese statisch und im selben Prozess erfolgen.

 
Zhunko:

Was gibt es an der Bibliothek nicht zu mögen?

Wenn Sie Ihre eigene DLL erstellen, macht es keinen Sinn, einen Teil des Codes in MQL und einen Teil in die Libe zu zerlegen.

 
Hallo zusammen. Haben Sie einen Rat? VPS Windows Web Server 2008 32 bit - nicht R2 (RAM 256) - wird es für MT4 funktionieren?
 
sergeev:

Wenn Sie Ihre eigene DLL erstellen, macht es keinen Sinn, einen Teil des Codes in MQL und einen Teil in lib aufzuteilen, da alles von MySQL in diese DLL geht.

Ja, natürlich! Sie müssen überhaupt nicht in MQL schreiben, wenn Sie es können. Fast alles ist in der DLL enthalten. Ich beginne damit, alles in meine Anwendung zu übertragen. Ich werde das Terminal aus der Ferne verwalten.
 

Algorithmus zur Aufzählung von Brüchen

I). Es muss ein Algorithmus für die Aufzählung von Brüchen gefunden werden, so dass:

A + B + C + n + ... = 100%

Jedes Element aus der Menge {A, B, C, n} muss Standardkriterien erfüllen: maximale und minimale Seitenbeschränkungen und inkrementelle Schritte vom Typ: Start, Stop, steil;

Ein Beispiel für das Problem:

Bei einer Menge

Y{A,B,C,n};

Jedes Element eines solchen Satzes kann von -100% bis +100% in Schritten von 10% variiert werden. Die Summe aller Elemente modulo muss 100% betragen: A+B+C+n=100%.

Finden Sie eine Matrix D(x,Anzahl_der_Elemente_vielfach_Y), die die Verteilung aller möglichen Brüche zwischen A, B, C, n beschreibt, z. B:

A B C

100 0 0

90 10 0

90 0 10

80 10 10

80 0 20

...

Beispiele für fehlerhafte Feststellungen:

A B C

-50 30 120 - Element C ist größer als der Grenzwert von 100%

35 30 35 - die Stufe ist nicht gleich 10%

70 30 10 - Summe nicht gleich 100%

-50 60 90 - Summe aller Elemente modulo ungleich 100% (50+60+90=200)

II*). Finden Sie die Lösung der Suche nach Brüchen für die Menge N mit MT5/MT4-Optimierer, so dass die Beschränkungen für jedes Element der Menge durch Standardbeschränkungen Start, Step, Stop gegeben werden können.

 


Zur Einführung finden Sie hier einen Algorithmus, der einen Spezialfall des Problems umsetzt:

//+------------------------------------------------------------------+
//|                                                  Optimizator.mq5 |
//|                        Copyright 2011, MetaQuotes Software Corp. |
//|                                              https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2011, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   int A, B, C;
   int handle = FileOpen("test.csv",FILE_WRITE,'\t');
   for(A=0; A<=100;A+=10)
   {
      for(B=0;B<=100-A;B+=10){
         C=100-(A+B);
         FileWrite(handle,A,B,C);      
      }
   }
   FileClose(handle);
  }
//+------------------------------------------------------------------+

Wie Sie sehen, ist für jedes Element der Menge, mit Ausnahme des letzten, eine zusätzliche for-Schleife erforderlich. Dies ist keine gute Lösung, denn wenn Sie die Anzahl der Elemente in der Menge ändern, müssen Sie zusätzliche Schleifen einfügen oder löschen.

 
C-4:


Zur Einführung finden Sie hier einen Algorithmus, der einen Spezialfall des Problems implementiert:

Wie Sie sehen, ist für jedes Element der Menge, mit Ausnahme des letzten, eine zusätzliche for-Schleife erforderlich. Dies ist keine gute Lösung, denn wenn Sie die Anzahl der Elemente in der Menge ändern, müssen Sie zusätzliche Schleifen einfügen oder löschen.


Führen Sie nur eine while-Schleife für eines von A, B oder C aus.

Analysieren Sie darin, ob es Lücken gibt

 
sergeev:

nur eine einzige while-Schleife auf einem von A oder B oder C ausführen.

Analysieren Sie darin, ob Lücken zu erreichen sind


Der Punkt ist, dass immer noch B und C miteinander kombiniert werden, und Sie brauchen dafür eine neue Schleife. Vielleicht kann dieses Problem rekursiv gelöst werden, obwohl es vielleicht einfachere Algorithmen gibt.