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

 

Hallo zusammen, ich habe eine Frage zu MQL4

Standardmäßig wird das Array ab 0 und in aufsteigender Reihenfolge indiziert

FRAGEN UND ANTWORTEN

Mit welcher Funktion bzw. welchem Sprachkonstrukt kann das obige Array durch 10 Werte mit beliebigen ganzzahligen Werten und in beliebiger Reihenfolge indiziert werden? Zum Beispiel, wie unten. Ich wäre Ihnen sehr dankbar, wenn Sie diese Methode mit entsprechendem Code demonstrieren könnten.

Ich danke Ihnen.

 
ANDREY:

Hallo zusammen, ich habe eine Frage zu MQL4

Standardmäßig wird das Array ab 0 und in aufsteigender Reihenfolge indiziert

Q:

Mit welcher Funktion oder welchem Sprachkonstrukt kann ich das obige Array auf 10 Werte mit beliebigen ganzzahligen Werten und in beliebiger Reihenfolge indizieren? Zum Beispiel, wie unten. Ich wäre Ihnen sehr dankbar, wenn Sie diese Methode mit entsprechendem Code demonstrieren könnten.

Ich danke Ihnen.

Zufällig mischen , Puffer oder Indizes(MathRand)

 
Valeriy Yastremskiy:

Im Indikator in der Alert-Struktur. Die 5. Zeile von unten istAlert(b);

Dies scheint die Anzahl der Millisekunden seit dem Start des Systems zu sein)

Ich danke Ihnen!
 
Taras Slobodyanik:

Zufällig mischen , Puffer oder Indizes (MathRand)

Was die Anordnung der Indizes in zufälliger Reihenfolge betrifft, so verstehe ich, dass dies mit der Funktion MathRand() geschieht.

Meine Frage ist, welche Funktion kann mir helfen, Indexwerte, die auf Standard (0,1,2,3,4,5,6...9) mit notwendigen für mich Indexwerte, zum Beispiel (45,90,119,120,234,336,338,564,607,901) ersetzen. Ich benötige diese Operation nicht, um einen Indikator zu schreiben.

Ich danke Ihnen.

 
ANDREY:

Was die Anordnung der Indizes in beliebiger Reihenfolge betrifft, so wird dies meines Wissens mit der Funktion MathRand() durchgeführt.

Die Frage Und mit Hilfe welcher Funktion kann ich Indexwerte, die standardmäßig vorhanden sind (0,1,2,3,4,5,6...9) durch für mich notwendige Indexwerte ersetzen, zum Beispiel ( 45,90,119,120,234,336,338,564,607,901). Ich benötige diese Operation nicht, um einen Indikator zu schreiben.

Ich danke Ihnen.

Erstellen Sie einen zweiten Puffer - den Indexpuffer.
Füllen Sie ihn mit gemischten Werten, von 0 bis size_buffer - das sind die Indizes)

...oder nehmen Sie einfach eine Zufallszahl und verwenden Sie diese, um den Pufferwert zu erhalten.
 
Taras Slobodyanik:

Erstellen Sie einen zweiten Puffer - einen Indexpuffer.
Füllen Sie ihn mit gemischten Werten, von 0 bis size_buffer - das sind die Indizes)

...oder nehmen Sie einfach eine Zufallszahl und verwenden Sie diese, um den Pufferwert zu erhalten.

Vielen Dank für die Hilfe.

Hier ist ein einfacher Code

double MaX[10];
int a;
void OnTick()
{
if (Minute()!=Min)
{
if (a==9)
{
a=0;
}
a++;
MaX[a]=Bid;
Min=Minute();
}
}

In 10 Minuten wird das Array mit Preiswerten mit Indizes von 0 bis 9 gefüllt sein.
Wenn es Ihnen nichts ausmacht, ändern Sie bitte den Code so, dass das Array mit denselben Werten gefüllt wird, aber die Indizes dieses Arrays in folgender Reihenfolge sind 45,90,119,120,234,336,338,564,607,901

Die Indexwerte müssen noch nicht neu gemischt werden.
Vielen Dank für die Hilfe.

Ich habe einfach keine Indikatoren in meinen Strategien. Ich bin mit Puffern nicht vertraut. Soweit ich weiß, ist der Puffer ein Element eines Indikators.

 
ANDREY:

Ich danke Ihnen für Ihre Hilfe.

Hier ist ein einfacher Code

In 10 Minuten wird das Array mit Preiswerten mit Indizes von 0 bis 9 gefüllt sein.
Wenn es Ihnen nichts ausmacht, ändern Sie bitte den Code so, dass das Array mit denselben Werten gefüllt wird, aber die Indizes dieses Arrays wie folgt lauten: 45,90,119,120,234,336,338,564,607,901

Die Indexwerte müssen noch nicht neu gemischt werden.
Vielen Dank für die Hilfe.

Ich habe einfach keine Indikatoren in meinen Strategien. Ich bin mit Puffern nicht vertraut. Soweit ich weiß, ist der Puffer ein Element eines Indikators.

Index 901 bedeutet, dass das Array 902 Elemente enthält.
Mass[45]=Max[0].....Mass[901]=Max[9]
 
Valeriy Yastremskiy:
Index 901 bedeutet, dass das Array 902 Elemente enthält.
Mass[45]=Max[0].....Mass[901]=Max[9]

Nein ... Das Array besteht aus 10 Elementen. Und diese 10 Indizes dieser 10 Elemente müssen durch diese Werte in dieser Reihenfolge bezeichnet werden (0)45, (1) 90, (2) 119, (3) 120, (4) 234, (5) 336, (6) 338, (7) 564, (8) 607, (9) 901

In Klammern sind die früheren Werte der Indizes angegeben. Sie sollten durch neue Werte ohne Klammern ersetzt werden.

von Array-Elementen durch eine beliebige Zahlenfolge indiziert werden kann, und zwar nicht in der Reihenfolge 0,1,2,3,4........100

Документация по MQL5: Основы языка / Переменные
Документация по MQL5: Основы языка / Переменные
  • www.mql5.com
Переменные должны быть объявлены перед их использованием. Для идентификации переменных используются уникальные имена. Описания переменных используются для их определения и объявления типов. Описание не является оператором. Индексом массива может быть только целое число. Допускаются не более чем четырехмерные массивы. Нумерация элементов массива...
 
ANDREY:

Nein ... Das Array enthält 10 Elemente. Und diese 10 Indizes dieser 10 Elemente müssen durch diese Werte in dieser Reihenfolge bezeichnet werden (0)45, (1) 90, (2) 119, (3) 120, (4) 234, (5) 336, (6) 338, (7) 564, (8) 607, (9) 901

In Klammern sind die früheren Werte der Indizes angegeben. Sie sollten durch neue Werte ohne Klammern ersetzt werden.


Das heißt, ich kann eine beliebige Anzahl von Elementen in einem Array durch eine beliebige Folge von Zahlen indizieren, nicht in der Reihenfolge 0,1,2,3,4........100

EinIndex(lat.index bedeutet Liste, Register, Indexer oder Indexfinger) ist eine Zahl, ein Buchstabe oder eine andere Kombination von Symbolen, die angibt, wo sich ein Element in einem Array befindet.

Der Index 45 steht für das 45. Element der Liste, der Index 90 für das 90.

 
ANDREY:

Nein ... Das Array enthält 10 Elemente. Und diese 10 Indizes dieser 10 Elemente müssen durch diese Werte in dieser Reihenfolge bezeichnet werden (0)45, (1) 90, (2) 119, (3) 120, (4) 234, (5) 336, (6) 338, (7) 564, (8) 607, (9) 901

In Klammern sind die früheren Werte der Indizes angegeben. Sie sollten durch neue Werte ohne Klammern ersetzt werden.


Das heißt, ich kann eine beliebige Anzahl von Array-Elementen durch eine beliebige Zahlenfolge indizieren, und nicht in der Reihenfolge 0, 1, 2, 3, 4........100

Ich verstehe das nicht, der Array-Index ist ein Index von 0 bis N. Und was Sie wollen, ist eher ein Wörterbuch mit Hashes. Ich weiß nicht, wie man es in einem Array macht, und ich glaube nicht, dass man es in einem normalen Array machen kann. Es gibt eine generische Klassenbibliothek mit Wörterbüchern in MT. Das sollte helfen.

Библиотека Generic классов - ошибки, описание, вопросы, особенности использования и предложения
Библиотека Generic классов - ошибки, описание, вопросы, особенности использования и предложения
  • 2017.12.07
  • www.mql5.com
С 6 декабря 2017 года в стандартную поставку MetaTrader 5 стали входить так называемые Generic-классы, реализующие эффективные алгоритмы для хранен...
Grund der Beschwerde: