Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 420
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Gibt es eine Funktion, die den Typ der Variablen zurückgibt?
Sie schreiben zum Beispiel.
int a=10;
dann schreiben Sie:
functia(a);
und da steht: INT!
:)
string functia(double a) { return "DABLE!"; } // auch unerwartet
Gibt es eine Funktion, die einen Variablentyp zurückgibt?
Sie schreiben zum Beispiel.
int a=10;
dann schreiben Sie:
functia(a);
und da steht: INT!
:)
Aus der Hilfe:
Es ist viel einfacher. Erstellen Sie eine Anzeige-Schaltfläche (oder verwenden Sie eine der vorhandenen Schaltflächen). Weiteres Drücken - alle notwendigen Objekte werden auf allen TFs sichtbar gemacht. Wenn die Schaltfläche losgelassen wird, werden alle Objekte auf allen TFs auf die Anzeigeeigenschaft gesetzt (oder falls erforderlich). Es besteht keine Notwendigkeit, etwas zu löschen/umzuordnen. Das Einzige, was zu tun ist, ist, das Diagramm nach diesem Vorgang neu zu zeichnen.
Objekt-Eigenschaft OBJPROP_TIMEFRAMES.
Können Sie mir sagen, wie ich die Daten aus dem Indikator in ein Array bekomme? D.h. es ist klar, dass ich ein Array deklarieren muss
double num_array[];
Ich weiß nicht genau, was ich als nächstes tun soll...
num_array[0] = iMA(NULL,0,13,8,MODE_SMMA,PRICE_MEDIAN,i); // das Array mit dem Index [0] entspricht MA, aber wenn wir den Index in [1] ändern, dann stellt sich heraus, dass num_array[1] gleich ist
die gleichen Daten aus dem Indikator wie num_array[0]. Dies sollte nicht der Fall sein. Das Array sollte sequentiell gefüllt werden. Das Einzige, was mir einfällt, ist, den Tag in 24 Stunden zu unterteilen.
Stunden, deklarieren Sie ein zweidimensionales Array und weisen Sie jeder Stunde einen Index mit einer eigenen Zeichenfolge etc.... zu.
Vielleicht gibt es einen einfacheren oder weniger chaotischen Weg?
Können Sie mir sagen, wie ich die Daten aus dem Indikator in ein Array bekomme? D.h. es ist klar, dass ich ein Array deklarieren muss
double num_array[];
Ich weiß nicht genau, was ich als nächstes tun soll...
num_array[0] = iMA(NULL,0,13,8,MODE_SMMA,PRICE_MEDIAN,i); // das Array mit dem Index [0] entspricht MA, aber wenn wir den Index in [1] ändern, dann stellt sich heraus, dass num_array[1] gleich ist
die gleichen Daten aus dem Indikator wie num_array[0]. Dies sollte nicht der Fall sein. Das Array sollte sequentiell gefüllt werden. Das Einzige, was mir einfällt, ist, den Tag in 24 Stunden zu unterteilen.
Stunden, deklarieren Sie ein zweidimensionales Array und weisen Sie jeder Stunde einen Index mit einer eigenen Zeichenfolge etc.... zu.
Vielleicht gibt es einen einfacheren oder weniger chaotischen Weg?
Ich sehe das so:
Ich sehe das folgendermaßen:
Oh, ich kann die maximale Anzahl von Indizes im Array überArrayResize festlegen und sie durch die Schleife laufen. Vielen Dank, aber dann gibt es eine Frage, wenn alle Indizes mit Daten aus dem Indikator gefüllt sind, sollte ich löschen Sie durchArrayFree, oder wird es selbst neu schreiben? Oder nach 24. alle stoppen? Entschuldigen Sie die unverblümte Frage, aber Arrays sind eine Art dunkles Pferd mit unbekannten Funktionen.
Oh, ich kannArrayResize verwenden, um die maximale Anzahl von Indizes im Array festzulegen und sie durch die Schleife laufen zu lassen. Vielen Dank, aber dann gibt es eine Frage, wenn alle Indizes mit Daten aus dem Indikator gefüllt sind, sollte ich löschen Sie durchArrayFree, oder wird es selbst neu schreiben? Oder nach 24. alle stoppen? Entschuldigen Sie die unverblümte Frage, aber Arrays sind eine Art dunkles Pferd mit unbekannten Funktionen.
Array = eine Reihe von einfachen Variablen, die in einer Reihe angeordnet sind, um einen bequemen Indexbezug zu ermöglichen. Der Index ist eine Integer-Variable für den Zugriff auf Array-Elemente nach Nummern, um eine Schleife zu organisieren. Index = Nummernzähler. ArrayFree = Array-Zerstörung - wie Bulldozer über baufälligen Häusern. Es kann aber mit ArrayResize wiederhergestellt werden. Nun ,ArrayResize ist ein Zaun um ein Wohn-Array. Unserer ist hier, aber Fremde sind hinter dem Zaun, es ist verboten, dort hineinzugehen. Sie können jedes Haus mehrmals eingeben ( einem Array-Element einen neuen Wert zuweisen). Ein Array ist sehr einfach und für viele Zwecke geeignet. Und diejenigen, die Angst vor Arrays haben - die ... Es ist also besser, sich mit ihnen auseinander zu setzen.
//+------------------------------------------------------------------+ //| Проверка массива | //+------------------------------------------------------------------+ #property strict int m[10]; int n; void OnStart() { ArrayInitialize(m,7); Вывод(); // Заполнить семерками ArrayResize(m,7); Вывод(); // Удалить 3 последних элемента ArrayResize(m,9); Вывод(); // Увеличить размер m[1]=1; m[7]=1; Вывод(); // Изменить 2 элемента for(n=0; n<9; n++) m[n]=n*n; Вывод(); // Заполнить квадратами номеров ArrayCopy(m,m,0,2,7); Вывод(); // Копирование со сдвигом ArrayResize(m,ArraySize(m)-2); Вывод(); // Удалить 2 последних элемента } void Вывод() { string s=""; for(n=0; n<ArraySize(m); n++) s+=" " + string(m[n]); Alert(ArraySize(m), ":", s); }
Versuchen Sie, ein Skript wie dieses auszuführen - und üben SieAus der Referenz: