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

 

Machen wir uns bereit:

enum ENUM_case
  {
   M=1,// Больше A
   L=2,// Меньше A
   ML=3,//Больше А и меньше Б
   LM=4 //Меньше А или больше Б
  };

struct param
  {
   int               cas; //Case
   double            a; // A
   double            b; //B  
  };
param params[];
double data[3]; //Массив для записи текущих параметров

Definieren Sie die Variablen

sinput string atata0; //Параметры пробитие 
sinput string atata1; //Объем
input ENUM_case bc1=1; //Логика
input double ba1=1;//A
input double bb1=1;//B
sinput string atata2; //Сделки
input ENUM_case bc2=1;//Логика
input double ba2=1;//A
input double bb2=1;//B
sinput string atata3; //Заявки
input ENUM_case bc3=1;//Логика
input double ba3=1;//A
input double bb3=1;//B

Die Idiotie in OnInit sieht folgendermaßen aus:

   ArrayResize(params,3);
   params[0].cas=bc1;
   params[0].a=ba1;
   params[0].b=bb1;
   params[1].cas=bc2;
...

Ich verstehe nicht, warum wir die Eingabevariablen nicht sofort in ein Array schreiben oder ein Array mit Variablen initialisieren können :(

Irgendwo innerhalb des EAs füllen wir das Datenfeld aus und führen die Prüffunktion aus:

bool Conditions()
{
int num=ArraySize(params);
for (int i=0;i<num;i++)
{
switch(params[i].cas) 
{
case 1 : if (!(data[i]>=params[i].a)){return(false);break;}
case 2 : if (!(data[i]<=params[i].a)){return(false);break;}
case 3 : if (!(data[i]>=params[i].a && data[i]<=params[i].b)){return(false);break;}
case 4 : if (!(data[i]<=params[i].a || data[i]>=params[i].b)){return(false);break;}
}
}
return(true);
}

So weit, so gut. Gibt es bessere Möglichkeiten?

 

Hallo!

Ich kann die Software, die mir gefällt, nicht auf dem Markt kaufen (MT4).

Ich scheine alles richtig gemacht zu haben:

zunächst mein MQL5.community-Konto (über WM) finanziert,

Dann registrierte ich ein Konto in MT4.


Aber als ich auf "Kaufen" oder "Mieten" drückte (für 1 Jahr, ich wollte).

-Ich hebe nicht von dem finanzierten Konto ab,

Und bieten Sie an, wieder von WM zu nehmen, indem Sie die Form der Füllung von WM ersetzen

(und dementsprechend das Angebot, das Passwort von Webmoney anzugeben).


Das kam mir ein bisschen seltsam vor.

-Warum habe ich dann mein MQL5.community-Konto hinterlegt?


Wenn Sie etwas wissen, ist es vielleicht etwas, das ich nicht verstehe?


Vielen Dank im Voraus


============

Danke, ich habe nicht auf eine Antwort gewartet und es selbst herausgefunden. Es ist in Ordnung.

 
Антон:

Machen wir uns bereit:

Definieren Sie die Variablen

Die Idiotie in OnInit sieht folgendermaßen aus:

Ich verstehe nicht, warum wir die Eingabevariablen nicht sofort in ein Array schreiben oder ein Array mit Variablen initialisieren können :(

Irgendwo innerhalb des EAs füllen wir das Datenfeld aus und führen die Prüffunktion aus:

So weit, so gut. Gibt es bessere Möglichkeiten?

Auf den ersten Blick scheint alles in Ordnung zu sein. Womit haben Sie ein Problem?

Ich verstehe nicht, warum man Eingabevariablen nicht direkt in ein Array schreiben oder ein Array mit Variablen initialisieren kann :(
Das Array kann nur mit Konstanten initialisiert werden, da der Initialisierungscode zur Kompilierzeit erstellt wird und zu diesem Zeitpunkt die Werte der Variablen unbekannt sind.

Ein weiterer Kritikpunkt ist das Design. Sie haben ENUM_case und verwenden trotzdem numerische Werte.

 
Alexey Volchanskiy:

Auf den ersten Blick scheint alles in Ordnung zu sein. Was kann man daran nicht mögen?

Ich verstehe nicht, warum man Eingabevariablen nicht direkt in ein Array schreiben oder ein Array mit Variablen initialisieren kann :(
Das Array kann nur mit Konstanten initialisiert werden, da der Initialisierungscode zur Kompilierzeit erstellt wird und zu diesem Zeitpunkt die Werte der Variablen unbekannt sind.

Weitere Kritikpunkte betreffen lediglich das Design. Sie haben ENUM_case und verwenden trotzdem numerische Werte.

Sobald es in Ordnung ist, werde ich es verfeinern. Danke!
Ich hatte heute Morgen einen kleinen Streit, weil ich dachte, es gäbe vielleicht einen trickreichen Betreiber für so etwas.

 
vaso55555:

Guten Tag!

Ich kann meine Lieblingsanwendung nicht auf dem Markt kaufen (MT4).

Er scheint alles richtig gemacht zu haben:

Ich habe mein erstes MQL5.community-Konto (über WM) finanziert,

Dann habe ich ein Konto in MT4 registriert.


Aber wenn ich auf "Kaufen" oder "Mieten" drücke (für 1 Jahr, das ich will)

-Ich hebe nicht von dem finanzierten Konto ab,

Und bieten Sie an, sich wieder von der WM zurückzuziehen, indem Sie die Form der Befüllung der WM ersetzen

(und dementsprechend werde ich auch aufgefordert, mein Webmoney-Passwort einzugeben)...


Das kam mir ein bisschen seltsam vor...

-Und warum habe ich dann mein MQL5.community-Konto hinterlegt?


Wenn es jemand weiß, gibt es vielleicht etwas, das ich nicht verstehe...


Vielen Dank im Voraus

Sie sollten vom internen Konto abheben, zumindest hatte ich es immer, wenn die Signale abonniert, aber dieser Markt, dass das Signal das Wesen der Zahlung ist die gleiche. Reichen die Mittel auf dem internen Konto für die Zahlung auf dem Markt aus?
 
Антон:

Sobald es in Ordnung ist, werde ich es verfeinern. Ich danke Ihnen!
Ich hatte heute Morgen einen kleinen Streit, weil ich dachte, es gäbe vielleicht einen trickreichen Betreiber für so etwas.

Ich habe immer gesagt: Optimiere ein Programm nicht während der Entwicklung, verschwende keine Zeit damit. Schreiben Sie zunächst einen klaren, verständlichen und rentablen Algorithmus, und optimieren Sie dann gegebenenfalls die Engpässe .
 
Vladimir Zubov:
Es sollte vom internen Konto genommen werden, zumindest war es immer so, wenn man Signale abonniert hat, aber der Marktplatz und das Signal sind das gleiche. Habe ich genug Geld auf meinem internen Konto, um auf dem Markt zu bezahlen?
Das habe ich bereits erledigt, vielen Dank.
 

Hallo, gibt es eine Möglichkeit, die Funktionsweise des Testers in Bezug auf die Preise zu bestimmen:

- zu den Eröffnungspreisen,
- Ohlc
- alle Zecken?


 
elibrarius:

Hallo, gibt es eine Möglichkeit, die Funktionsweise des Testers in Bezug auf die Preise zu bestimmen:

- zu den Eröffnungspreisen,
- Ohlc
- alle Zecken?


Es gibt entsprechende Dropdown-Fenster mit Modi.
 
Alexey Volchanskiy:
Es gibt entsprechende Dropdown-Fenster mit Modi.

Ich kann den Modus einstellen, aber der Expert Advisor muss wissen, in welchem Modus (nach Preisen) er beim Testen läuft.

Ich kann mir nur 1 Variante vorstellen,

Wenn es während eines Balkens nur 1 Tick gab, würde er zu Preisen geöffnet werden,
wenn es 4 Ticks bei 0, 20, 40, 59 Sekunden gab - ohlc
sonst - alle Zecken.

Aber ich befürchte, dass es Varianten geben könnte, die mit dem Zustand eines anderen Menschen übereinstimmen, um den Typ zu bestimmen
Vielleicht gibt es eine einfachere Möglichkeit?

Grund der Beschwerde: