Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 332

 
Basicprof:

Почему при создании arrow.Create(0,"ArrowCheck",0,TimeCurrent(),1.14565) из Стандартная библиотека MQL5  объект создается и сразу удаяеться. как сделать чтобы он не удалялся.  

Скорее всего, Вы не выполнили отсоединение (Detach()) графического объекта от объекта arrow.
 

Всем здравия!

Задача определить аналог rates_total в эксперте.

Передаю массив из индикатора в эксперт. Нумерация согласно номеру бара в истории 1 ->  rates_total

ArraySetAsSeries(Lx_Indikator,false);

Проблема: при параметре - bars не соответствующем размеру массива в индикаторе, на выходе путаются значения. 

 int bars=Bars(_Symbol,_Period);
 int copy=CopyBuffer(MA_handle,0,0,bars,Lx_Expert);

Хотя по логике, мне данные необходимы начиная с Lx_Expert[1], так тогда размер копированного массива не имеет значения, а получается что имеет. 

2017.10.09 20:35:03.055 Indicator (EURUSD,M5)            range = 14165
2017.10.09 20:35:04.303 Indicator (EURUSD,M5)  LxIndikator[1] 1507552800.0
2017.10.09 20:35:04.303 Indicator (EURUSD,M5)  LxIndikator[2] 1.173416294117647
2017.10.09 20:35:04.304 Indicator (EURUSD,M5)  LxIndikator[3] 1.0
2017.10.09 20:35:04.304 Expert (EURUSD,M5)            bars = 14000
2017.10.09 20:35:04.304 Expert (EURUSD,M5)     LxExpert[1] 1.17194
2017.10.09 20:35:04.304 Expert (EURUSD,M5)     LxExpert[2] 14152.0

2017.10.09 20:35:04.304 Expert (EURUSD,M5)     LxExpert[3] 85.0



 
Top2n:

Проблема: при параметре - bars не соответствующем размеру массива в индикаторе, на выходе путаются значения. 

Синхронизацию количества баров индикатора и советника производите?

 

Здравствуйте! Подскажите как в цикле перебора ордеров выбрать последний ордер

for(int i=1; i<OrdersTotal(); i++)                                           // Цикл перебора ордер
   {
    if(OrderSelect(i,SELECT_BY_POS))                                           // Если есть следующий
     {

Ведь вот таким образом выбирается первый, если есть следующий. А как выбрать последний?? Если кому известно, напишите пожалуйста!

 
vikzip:

Здравствуйте! Подскажите как в цикле перебора ордеров выбрать последний ордер

Ведь вот таким образом выбирается первый, если есть следующий. А как выбрать последний?? Если кому известно, напишите пожалуйста!


Попробуйте так перебирать

for(int i=OrdersTotal(); i>=1; i--)                                           // Цикл перебора ордер
   {
    if(OrderSelect(i,SELECT_BY_POS))                                           // Если есть следующий
     {

последний так не работает разве?

if(OrderSelect(OrdersTotal(),SELECT_BY_POS))  
 
Aleksey Vyazmikin:

Попробуйте так перебирать

последний так не работает разве?

Хоть советуйте правильно... Нужно OrdersTotal()-1.
 
Alexey Kozitsyn:
Хоть советуйте правильно... Нужно OrdersTotal()-1.

Так я уточнил, работает так или нет ;)

Точно не знаю, ибо сам с ордерами так и не разбирался - работаю с классом по заказу.

 
Aleksey Vyazmikin:

Так я уточнил, работает так или нет ;)

Точно не знаю, ибо сам с ордерами так и не разбирался - работаю с классом по заказу.

Для Вас и для того, кому Вы хотели помочь: так не работает. Получите ошибку.

А с этим желательно разобраться, т.к. это основа работы со всеми массивами в mql.

 

Спасибо за помощь! То есть верным будет написать??

for(int i=OrdersTotal(); i>=1; i--)                                           // Цикл перебора ордер
   {
if(OrderSelect(OrdersTotal()-1,SELECT_BY_POS))                   //Выбор последнего??
   {    
 
vikzip:

Спасибо за помощь! То есть верным будет написать??

Найдите здесь нужный вам код

Только "Полезные функции от KimIV".
Только "Полезные функции от KimIV".
  • 2011.02.18
  • www.mql5.com
Все функции взяты из этой ветки - http://forum.mql4...