Hallo! Ich habe eine Frage zu Arrays. Ich habe ein eindimensionales Array mit einigen Schwierigkeiten erstellt. Ich sollte in Ordnung sein, weil ich keinen Fehler bei der Kompilierung Zeit haben, aber jetzt sollte ich es in der Tester laufen und sehen Fehler EURUSD,M1: Array außerhalb des Bereichs in ,, (218,12), die genau die Position meiner Trauer Array angibt. Bitte sagen Sie mir, was daran falsch ist
int Totall=OrdersTotal();
double Price; // Цена выбранного ордераdouble Mas[]; //массив для упорядочивания всех ордеровfor(int i=0; i<OrdersTotal(); i++) // Цикл перебора ордер
{
if(OrderSelect(i,SELECT_BY_POS)) // Если есть следующий
{
Price=OrderOpenPrice();
Mas [i] = Price; //Как раз перед квадратной скобкой и есть ошибка array out of range in ,, (218,12)
ArraySort (Mas,WHOLE_ARRAY,0,MODE_ASCEND); // Теперь цены открытия упорядочены по убываниюint Blizko2=ArrayBsearch(Mas,Ask,WHOLE_ARRAY,0,MODE_DESCEND); //Определен индекс ближайшего большего по значению елемента к текущей цене
PriceBlizko2 = Mas[Blizko2]; // Цена выбранного ордераArraySort (Mas,WHOLE_ARRAY,0,MODE_ASCEND); // Теперь цены открытия упорядочены по убываниюint Blizko1=ArrayBsearch(Mas,Bid,WHOLE_ARRAY,0,MODE_ASCEND); //Определен индекс ближайшего меньшего по значению елемента к текущей цене
PriceBlizko1=Mas[Blizko1];
}
}
Gibt es vielleicht eine andere Möglichkeit, jedem Element des Arrays einen Bestellpreis zuzuweisen?
Hallo! Ich habe eine Frage zu Arrays. Ich habe ein eindimensionales Array mit einigen Schwierigkeiten erstellt. Ich sollte in Ordnung sein, weil ich keinen Fehler bei der Kompilierung Zeit haben, aber jetzt sollte ich es in der Tester laufen und sehen Fehler EURUSD,M1: Array außerhalb des Bereichs in ,, (218,12), die genau die Position meiner Trauer Array angibt. Bitte sagen Sie mir, was daran falsch ist
Ihr Code ist an der Wurzel falsch, aber der Fehler ist auf die Tatsache zurückzuführen, dass die Array-Größe vor dem Füllen nicht festgelegt wird
if(OrderSelect(i,SELECT_BY_POS)) // Если есть следующий
{
Price=OrderOpenPrice();
ArrayResize(Mas, i+1);
Mas [i] = Price;
Ihr Code ist grundsätzlich falsch, aber der Fehler ist darauf zurückzuführen, dass die Array-Größe vor dem Befüllen nicht festgelegt wurde
Herzlichen Dank! Können Sie mir bitte sagen, ob die Reihenfolge nicht stimmt? Es geht darum, die Preise der Aufträge zu ermitteln, die dem Preis von unten und oben am nächsten kommen. Bitte teilen Sie mir Ihren Standpunkt mit.
Herzlichen Dank! Können Sie mir bitte sagen, ob die Reihenfolge nicht korrekt ist? Die Idee ist, die Preise der Aufträge zu ermitteln, die dem Preis von unten und von oben am nächsten kommen. Bitte teilen Sie mir Ihren Standpunkt mit.
Sie haben eine Menge unnötiger Dinge in Ihrem Kreislauf. Sie müssen das Array in der Schleife mit Preisen füllen und außerhalb der Schleife mit ihnen arbeiten
for(int i=0; i<OrdersTotal(); i++) // Цикл перебора ордер
{
if(OrderSelect(i,SELECT_BY_POS)) // Если есть следующий
{
ArrayResize(Mas, i+1);
Mas[i] = OrderOpenPrice(); //Как раз перед квадратной скобкой и есть ошибка array out of range in ,, (218,12)/*
ArraySort (Mas,WHOLE_ARRAY,0,MODE_ASCEND); // Теперь цены открытия упорядочены по убыванию
int Blizko2=ArrayBsearch(Mas,Ask,WHOLE_ARRAY,0,MODE_DESCEND); //Определен индекс ближайшего большего по значению елемента к текущей цене
PriceBlizko2 = Mas[Blizko2]; // Цена выбранного ордера
ArraySort (Mas,WHOLE_ARRAY,0,MODE_ASCEND); // Теперь цены открытия упорядочены по убыванию
int Blizko1=ArrayBsearch(Mas,Bid,WHOLE_ARRAY,0,MODE_ASCEND); //Определен индекс ближайшего меньшего по значению елемента к текущей цене
PriceBlizko1=Mas[Blizko1];
*/
}
}
Sie haben eine Menge unnötiger Dinge in der Schleife. Sie müssen das Array in der Schleife mit Preisen füllen und außerhalb der Schleife mit ihnen arbeiten.
Ich verstehe. Vielen Dank!!! Habe ich die Idee richtig verstanden?
double Price; // Цена выбранного ордераdouble Mas[]; //массив для упорядочивания всех ордеровfor(int i=0; i<OrdersTotal(); i++) // Цикл перебора ордер
{
if(OrderSelect(i,SELECT_BY_POS)) // Если есть следующий
{
Price=OrderOpenPrice();
ArrayResize(Mas, i+1);
Mas [i] = Price;
}
}
ArraySort (Mas,WHOLE_ARRAY,0,MODE_ASCEND); // Теперь цены открытия упорядочены по убываниюint Blizko2=ArrayBsearch(Mas,Ask,WHOLE_ARRAY,0,MODE_DESCEND); //Определен индекс ближайшего большего по значению елемента к текущей цене
PriceBlizko2 = Mas[Blizko2]; // Цена выбранного ордера Вот в этой строкеArraySort (Mas,WHOLE_ARRAY,0,MODE_ASCEND); // Теперь цены открытия упорядочены по убываниюint Blizko1=ArrayBsearch(Mas,Bid,WHOLE_ARRAY,0,MODE_ASCEND); //Определен индекс ближайшего меньшего по значению елемента к текущей цене
PriceBlizko1=Mas[Blizko1];
Vitaly Muzichenko:
Das ist möglich. Ein und dieselbe Aufgabe kann auf verschiedene Weise ausgeführt werden.
Ich habe gerade eine Schleife gemacht, um die nächstgelegenen Element-Indizes zu bestimmen, und der Tester zeigt einen Fehler bei Mas[Blizko2] Vielleicht liegt es daran, dass es noch keine Aufträge gibt, wenn ich den EA ausführe?
(Bitte um Rat, vielleicht wissen Sie, wo man etwas Ähnliches finden kann?)
Ich habe gerade aus der Schleife die Definition der engsten Element-Indizes und in der Tester zeigt einen Fehler in Ort Mas[Blizko2] .Vielleicht ist es, weil, wenn Sie die EA gibt es keine Aufträge noch laufen?
Probieren Sie es so
if(ArraySize(Mas)>0) { // если массив не пустой, тоArraySort (Mas,WHOLE_ARRAY,0,MODE_ASCEND); // Теперь цены открытия упорядочены по убываниюint Blizko2=ArrayBsearch(Mas,Ask,WHOLE_ARRAY,0,MODE_DESCEND); //Определен индекс ближайшего большего по значению елемента к текущей цене
PriceBlizko2 = Mas[Blizko2]; // Цена выбранного ордераArraySort (Mas,WHOLE_ARRAY,0,MODE_ASCEND); // Теперь цены открытия упорядочены по убываниюint Blizko1=ArrayBsearch(Mas,Bid,WHOLE_ARRAY,0,MODE_ASCEND); //Определен индекс ближайшего меньшего по значению елемента к текущей цене
PriceBlizko1=Mas[Blizko1];
}
Vielen Dank!!! Ich habe noch eine weitere Frage: Bestimme ich den Index des dem aktuellen Preis am nächsten liegenden kleineren Elements richtig, indem ichMODE_DESCEND inMODE_ASCENDändere?
Ich danke Ihnen vielmals!!! Ich habe noch eine weitere Frage: Bestimme ich den Index des Elements, das dem aktuellen Preis am nächsten liegt, richtig, indem ichMODE_DESCEND inMODE_ASCENDändere?
Keine Antwort, ich habeArrayBsearch noch nie benutzt
Hallo! Ich habe eine Frage zu Arrays. Ich habe ein eindimensionales Array mit einigen Schwierigkeiten erstellt. Ich sollte in Ordnung sein, weil ich keinen Fehler bei der Kompilierung Zeit haben, aber jetzt sollte ich es in der Tester laufen und sehen Fehler EURUSD,M1: Array außerhalb des Bereichs in ,, (218,12), die genau die Position meiner Trauer Array angibt. Bitte sagen Sie mir, was daran falsch ist
Hallo! Ich habe eine Frage zu Arrays. Ich habe ein eindimensionales Array mit einigen Schwierigkeiten erstellt. Ich sollte in Ordnung sein, weil ich keinen Fehler bei der Kompilierung Zeit haben, aber jetzt sollte ich es in der Tester laufen und sehen Fehler EURUSD,M1: Array außerhalb des Bereichs in ,, (218,12), die genau die Position meiner Trauer Array angibt. Bitte sagen Sie mir, was daran falsch ist
Ihr Code ist an der Wurzel falsch, aber der Fehler ist auf die Tatsache zurückzuführen, dass die Array-Größe vor dem Füllen nicht festgelegt wird
Ihr Code ist grundsätzlich falsch, aber der Fehler ist darauf zurückzuführen, dass die Array-Größe vor dem Befüllen nicht festgelegt wurde
Herzlichen Dank! Können Sie mir bitte sagen, ob die Reihenfolge nicht stimmt? Es geht darum, die Preise der Aufträge zu ermitteln, die dem Preis von unten und oben am nächsten kommen. Bitte teilen Sie mir Ihren Standpunkt mit.
Herzlichen Dank! Können Sie mir bitte sagen, ob die Reihenfolge nicht korrekt ist? Die Idee ist, die Preise der Aufträge zu ermitteln, die dem Preis von unten und von oben am nächsten kommen. Bitte teilen Sie mir Ihren Standpunkt mit.
Sie haben eine Menge unnötiger Dinge in Ihrem Kreislauf. Sie müssen das Array in der Schleife mit Preisen füllen und außerhalb der Schleife mit ihnen arbeiten
Sie haben eine Menge unnötiger Dinge in der Schleife. Sie müssen das Array in der Schleife mit Preisen füllen und außerhalb der Schleife mit ihnen arbeiten.
Ich verstehe. Vielen Dank!!! Habe ich die Idee richtig verstanden?
Ich verstehe. Vielen Dank!!! Haben Sie die Idee richtig verstanden?
Das ist möglich. Die gleiche Aufgabe kann auf verschiedene Weise erfüllt werden.
Vitaly Muzichenko:
Das ist möglich. Ein und dieselbe Aufgabe kann auf verschiedene Weise ausgeführt werden.
Ich habe gerade eine Schleife gemacht, um die nächstgelegenen Element-Indizes zu bestimmen, und der Tester zeigt einen Fehler bei Mas[Blizko2] Vielleicht liegt es daran, dass es noch keine Aufträge gibt, wenn ich den EA ausführe?
(Bitte um Rat, vielleicht wissen Sie, wo man etwas Ähnliches finden kann?)Ich habe gerade aus der Schleife die Definition der engsten Element-Indizes und in der Tester zeigt einen Fehler in Ort Mas[Blizko2] .Vielleicht ist es, weil, wenn Sie die EA gibt es keine Aufträge noch laufen?
Probieren Sie es so
Versuchen Sie dies
Vielen Dank!!! Ich habe noch eine weitere Frage: Bestimme ich den Index des dem aktuellen Preis am nächsten liegenden kleineren Elements richtig, indem ichMODE_DESCEND inMODE_ASCENDändere?
Ich danke Ihnen vielmals!!! Ich habe noch eine weitere Frage: Bestimme ich den Index des Elements, das dem aktuellen Preis am nächsten liegt, richtig, indem ichMODE_DESCEND inMODE_ASCENDändere?
Keine Antwort, ich habeArrayBsearch noch nie benutzt