Ciao, ho una domanda sugli array. Ho creato un array unidimensionale con qualche problema. Dovrei essere a posto, perché non ho nessun errore al momento della compilazione, ma ora dovrei eseguirlo nel tester e vedere l'errore EURUSD,M1: array out of range in ,, (218,12) che indica esattamente la posizione del mio array di dolore. Per favore, ditemi cosa c'è che non va
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];
}
}
Per favore consigliatemi, forse c'è un altro modo per assegnare un prezzo d'ordine ad ogni elemento dell'array?
Ciao, ho una domanda sugli array. Ho creato un array unidimensionale con qualche problema. Dovrei essere a posto, perché non ho nessun errore al momento della compilazione, ma ora dovrei eseguirlo nel tester e vedere l'errore EURUSD,M1: array out of range in ,, (218,12) che indica esattamente la posizione del mio array di dolore. Per favore, ditemi cosa c'è che non va
Il tuo codice è sbagliato alla radice, ma l'errore è dovuto al fatto che la dimensione dell'array non è stata impostata prima di essere riempita
if(OrderSelect(i,SELECT_BY_POS)) // Если есть следующий
{
Price=OrderOpenPrice();
ArrayResize(Mas, i+1);
Mas [i] = Price;
Il tuo codice è fondamentalmente sbagliato, ma l'errore è dovuto al fatto che la dimensione dell'array non è stata impostata prima del riempimento
Grazie mille! Potete dirmi, per favore, se la sequenza non è corretta? L'idea è quella di determinare i prezzi degli ordini più vicini al prezzo dal basso e dall'alto. Per favore, mi dica il suo punto di vista.
Grazie mille! Potete dirmi se la sequenza non è corretta? L'idea è di determinare i prezzi degli ordini più vicini al prezzo dal basso e dall'alto. Per favore, mi dica il suo punto di vista.
Hai un sacco di cose inutili nel tuo giro. Dovete riempire l'array con i prezzi nel ciclo e lavorare con loro fuori dal ciclo
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];
*/
}
}
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:
È possibile. Uno stesso compito può essere implementato in diversi modi.
Ho appena fatto un ciclo per determinare gli indici degli elementi più vicini e il tester mostra un errore a Mas[Blizko2].Forse è perché non ci sono ancora ordini quando lancio l'EA?
(Per favore consigliatemi, forse sapete dove cercare qualcosa di simile?)
Ho appena messo fuori dal loop la definizione degli indici degli elementi più vicini e nel tester mostra un errore nel posto Mas[Blizko2] .Forse è perché quando si esegue l'EA non ci sono ancora ordini?
Prova così
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];
}
Grazie mille!!! Ho un'altra domanda: sto determinando correttamente l'indice dell'elemento più piccolo più vicino al prezzo corrente cambiandoMODE_DESCEND inMODE_ASCEND?
Grazie mille!!! Ho un'altra domanda: sto determinando correttamente l'indice dell'elemento minore più vicino al prezzo corrente cambiandoMODE_DESCEND inMODE_ASCEND?
Ciao, ho una domanda sugli array. Ho creato un array unidimensionale con qualche problema. Dovrei essere a posto, perché non ho nessun errore al momento della compilazione, ma ora dovrei eseguirlo nel tester e vedere l'errore EURUSD,M1: array out of range in ,, (218,12) che indica esattamente la posizione del mio array di dolore. Per favore, ditemi cosa c'è che non va
Ciao, ho una domanda sugli array. Ho creato un array unidimensionale con qualche problema. Dovrei essere a posto, perché non ho nessun errore al momento della compilazione, ma ora dovrei eseguirlo nel tester e vedere l'errore EURUSD,M1: array out of range in ,, (218,12) che indica esattamente la posizione del mio array di dolore. Per favore, ditemi cosa c'è che non va
Il tuo codice è sbagliato alla radice, ma l'errore è dovuto al fatto che la dimensione dell'array non è stata impostata prima di essere riempita
Il tuo codice è fondamentalmente sbagliato, ma l'errore è dovuto al fatto che la dimensione dell'array non è stata impostata prima del riempimento
Grazie mille! Potete dirmi, per favore, se la sequenza non è corretta? L'idea è quella di determinare i prezzi degli ordini più vicini al prezzo dal basso e dall'alto. Per favore, mi dica il suo punto di vista.
Grazie mille! Potete dirmi se la sequenza non è corretta? L'idea è di determinare i prezzi degli ordini più vicini al prezzo dal basso e dall'alto. Per favore, mi dica il suo punto di vista.
Hai un sacco di cose inutili nel tuo giro. Dovete riempire l'array con i prezzi nel ciclo e lavorare con loro fuori dal ciclo
Hai un sacco di cose inutili nel circuito. Dovete riempire l'array con i prezzi nel ciclo, e lavorare con esso fuori dal ciclo.
Capisco, grazie mille!!! Ho reso bene l'idea?
Capisco, grazie mille!!! Hai capito bene l'idea?
È possibile. Lo stesso compito può essere realizzato in diversi modi.
Vitaly Muzichenko:
È possibile. Uno stesso compito può essere implementato in diversi modi.
Ho appena fatto un ciclo per determinare gli indici degli elementi più vicini e il tester mostra un errore a Mas[Blizko2].Forse è perché non ci sono ancora ordini quando lancio l'EA?
(Per favore consigliatemi, forse sapete dove cercare qualcosa di simile?)Ho appena messo fuori dal loop la definizione degli indici degli elementi più vicini e nel tester mostra un errore nel posto Mas[Blizko2] .Forse è perché quando si esegue l'EA non ci sono ancora ordini?
Prova così
Prova questo
Grazie mille!!! Ho un'altra domanda: sto determinando correttamente l'indice dell'elemento più piccolo più vicino al prezzo corrente cambiandoMODE_DESCEND inMODE_ASCEND?
Grazie mille!!! Ho un'altra domanda: sto determinando correttamente l'indice dell'elemento minore più vicino al prezzo corrente cambiandoMODE_DESCEND inMODE_ASCEND?
Nessuna risposta, non ho mai usatoArrayBsearch