你好!我有一个关于数组的问题。我曾艰难地尝试创建一个一维数组。我应该很好,因为我在编译时没有任何错误,但现在我应该在测试器中运行,看到错误EURUSD,M1: array out of range in ,,(218,12),这正好表明我的悲伤数组的位置。请告诉我它有什么问题
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];
}
}
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];
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];
}
你好!我有一个关于数组的问题。我曾艰难地尝试创建一个一维数组。我应该很好,因为我在编译时没有任何错误,但现在我应该在测试器中运行,看到错误EURUSD,M1: array out of range in ,,(218,12),这正好表明我的悲伤数组的位置。请告诉我它有什么问题
你好!我有一个关于数组的问题。我创建了一个一维数组,有一些麻烦。我应该很好,因为我在编译时没有任何错误,但现在我应该在测试器中运行,看到错误EURUSD,M1: array out of range in ,,(218,12),这正好表明我的悲伤数组的位置。请告诉我它有什么问题
你的代码在根源上是错误的,但错误的原因是在填充数组 之前没有设置数组的大小
你的代码从根本上说是错误的,但错误的原因是在填充前没有设置数组的大小。
非常感谢您!请你告诉我,这个顺序是否不正确?这个想法是为了确定最接近价格的订单的价格,从下面和上面。请告诉我你的观点。
非常感谢您!你能告诉我这个顺序是否不正确吗?这个想法是为了确定最接近价格的订单的价格,从下面和上面。请告诉我你的观点。
你有很多不必要的东西在你的圈子里。你必须在循环中用价格填充数组,并在循环外对其进行处理。
你有很多不必要的东西在循环。你需要在循环中用价格填充数组,并在循环外对其进行操作。
我明白了,非常感谢你我的想法对吗?
我明白了,非常感谢你你的想法对吗?
这是有可能的。同样的任务可以通过几种方式完成。
Vitaly Muzichenko:
这是有可能的。一项相同的任务可以通过多种方式实施。
我刚刚做了一个循环来确定最接近的元素指数,测试仪在Mas[Blizko2]处显示了一个错误。也许这是因为我运行EA时还没有订单?
(请告知,也许你知道在哪里可以找到类似的东西?)我刚刚把最接近的元素指数的定义从循环中放出来,在测试器中显示一个错误的地方Mas[Blizko2].也许这是因为当你运行EA时,还没有订单?
试试这样的方式
试试这个
我还有一个问题:将MODE_DESCEND改为MODE_ASCEND,我是否正确地确定了与当前价格最接近的小元素的索引?
非常感谢!我还有一个问题:将MODE_DESCEND改为MODE_ASCEND,我是否正确地确定了与当前价格最接近的较小元素的索引?
没有答案,我从来没有使用过ArrayBsearch。