Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 899

 
Товарищи программисты, очень большая просьба помочь прописать кусок кода к роботу! Робот торгует по двум мувингам. Пересекаясь открывает позицию, а на обратном пересечении ее закрывает. Но необходимо, чтобы при обратном пересечении. закрывая, открывал другую. Т е, закрыв buy, надо чтоб тут же открыл sell и наоборот !!! 
Файлы:
 
lufer:
Благодарю, а вот с Mas[N];  в OnInit() не получается, уже пробовал
Ну извини, я вчера был не очень трезв. Или не трезв очень.
 
AlexeyVik:
Ну извини, я вчера был не очень трезв. Или не трезв очень.
)), бывает
 

Есть ещё вопрос, допустим я хочу, чтобы массив заполнился взятыми с индикатора (к примеру ATR) данными с каждого бара, начиная с первого сформировавшегося (№1)? То есть массив объявлен и  в  функции  старт уже производится инициализация. Как правильно это сделать?  

как то так?: 

for(int i=0; i<N; i=i++)

     {                      

         Mas[i]=iATR(NULL,0,1,i+1);

     } 

    или же нужно делать через:

for(int i=0; i<N; i=i++)                    

     {                       

         ArrayFill(Mas,i,1,iATR(NULL,0,1,i+1));          

     }

или совсем по другому?, пока у меня не получилось никак(, в чём то косячу, подскажите, заранее благодарен. 

 
lufer:

Есть ещё вопрос, допустим я хочу, чтобы массив заполнился взятыми с индикатора (к примеру ATR) данными с каждого бара, начиная с первого сформировавшегося (№1)? То есть массив объявлен и  в  функции  старт уже производится инициализация. Как правильно это сделать?  

как то так?: 

for(int i=0; i<N; i=i++)

     {                      

         Mas[i]=iATR(NULL,0,1,i+1);

     } 


Первый вариант достаточен. Только вот если нужны значения начиная с первого бара, разумнее было бы и цикл с 1 считать.
 
evillive:
Первый вариант достаточен. Только вот если нужны значения начиная с первого бара, разумнее было бы и цикл с 1 считать.
Да я пробовал и с 1 и с 0, всё равно что то не так, не записываются значения, когда прошу вывести некоторые  - выдаёт только ноли
 
lufer:
Да я пробовал и с 1 и с 0, всё равно что то не так, не записываются значения, когда прошу вывести некоторые  - выдаёт только ноли
Код прошения вывода покажите.
 
evillive:
Код прошения вывода покажите.

на всякий случай покажу весь код:

//+------------------------------------------------------------------+

extern int    N        =100;                       // Количество баров

       int    Mas[];                             // Объявление массива

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+

int OnInit()
  { 
     ArrayResize(Mas,N,0);                // Установка размера массива      
  }

//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+

void OnDeinit(const int reason)
  {

  }

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+

void OnTick()
  {                                       
   for(int i=0; i<N; i=i++)                     // Цикл записи данных
     {                      

          Mas[i]=iATR(NULL,0,1,i+1);           // Вычисление значений          
     }
       Alert(Mas[0],"," ,Mas[50],"," ,Mas[99]);      // Вывод на экран
   return;                                           // Выход из start
  }
//+------------------------------------------------------------------+

 

Для вставки кода используйте SRC

 
lufer:

на всякий случай покажу весь код:


сделайте массив типа double
 
evillive:
сделайте массив типа double
 Это не решает проблему, сейчас вообще как-то странно, видать что-то не верно в OnTick() - когда загружаю в окно терминала советник ничего не происходит, а когда пытаюсь удалить, то очень долго тупит терминал и только потом через некоторое время удаляется. Попробовал вручную присвоить значения нескольким элементам, все нормально. Что-то с циклом инициализации массива судя по всему.