[Архив!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 2. - страница 350

 

Как запомнить бар по индексу? При появлений новых баров индекс меняется. Например: произошло пересечение машек, слейдуйщий бар будет нулевым баром. Мне надо на этом баре запомнить значение машек и использовать в расчетах индикатора на слейдующих барах. Как инициализировать такой индекс ? Или как это сделать?

 
david2:

Как запомнить бар по индексу?

 datetime Time_bar;// в глобальных переменных


//запоминаем бар по времени открытия
 if(...пересечение машек...) Time_bar=Time[0];
 

// определяем индекс бара в любой момент
int bar=-1;
for(int i=0;i<1000;i++){
    if(Time[i]==Time_bar) { bar=i;break; }                   
                        }
 
KONDOR:

Спасибо большое, попробую сделать так.
 
Подскажите, есть ли транслятор с С или С++ на MQL4? Ну то есть советника мне удобней написать в Си, а потом транслировать возможно будет?
 
-xlapex-:

Попробовал так сделать, результат - тот же, - нулевой.

int start() {

int mas2[10][2],min_1,min_2,min_V1,min_V2;


for(int i=1;i<Q_Bars;i++)
{
min_1 =ArrayMinimum(Volume, Q_Bars,1); //определяем индекс бара с минимальным объемом
min_V1=iVolume(0,0,min_1); //величина этого объема

mas2[i,0]=Volume[i]; //заполняем 1-ю часть двумерного массива объемами
mas2[i,1]=i; //вторую часть - соответствующими им индексами
}
ArraySort(mas2); //сортируем по величине объемов
min_V2=mas2[2,0]; //определяем второй после минимального объем
min_2=mas2[2,1]; //соответствующий ему индекс бара

H1= NormalizeDouble(High[min_2],4); //нормализуем level по знакам после запятой
create_line("", H1, Ex_col_2, 0, 2); //пытаемся нарисовать линию

return(0); //Bывод: ничего не рисуется, что еще ему надо - ????
}
//--------------------------------------------------------------------
void create_line(string name_line,double level,color c,int style,int w)
{
ObjectCreate(name_line, OBJ_HLINE, 0, 0,0);
ObjectSet(name_line, OBJPROP_PRICE1, level);
ObjectSet(name_line, OBJPROP_COLOR, c);
ObjectSet(name_line, OBJPROP_STYLE, style);
ObjectSet(name_line, OBJPROP_WIDTH, w);

}



А почему имя объекта пустое? Напишите хоть что-нибудь: "Имя_объекта" вместо "" при вызове create_line("", H1, Ex_col_2, 0, 2);


 
artmedia70:

Спасибо, я уже все сделал.
 

не открывается GBPUSD

int start()
{
OrderSend("GBPUSD",OP_SELL,0.1,Ask,0,Ask+400*Point,Ask-100*Point);
Alert GetLastError();
return();

}

и при компиляции пишет ошибки относящиеся к Alert GetLastError();

может быть так, что у брокера 100 пунктов слишком близко(5 знаков у брокера)?

 
Danil93:

не открывается GBPUSD

int start()
{
OrderSend("GBPUSD",OP_SELL,0.1,Ask,0,Ask+400*Point,Ask-100*Point);
Alert GetLastError();
return();

}

и при компиляции пишет ошибки относящиеся к Alert GetLastError();

может быть так, что у брокера 100 пунктов слишком близко(5 знаков у брокера)?


Может, ведь на 4-х знаке это всего 10пп. Поставь вместо 100, хотябы 101 и проверь.
 
Привет всем. А подскажите, тестер учитывает свопы? А то у меня по некоторым парам подозрительно профит тает (особенно по сделкам которые долго висят).
 
Danil93:

не открывается GBPUSD


и при компиляции пишет ошибки относящиеся к Alert GetLastError();

может быть так, что у брокера 100 пунктов слишком близко(5 знаков у брокера)?


int start()
{
  OrderSend("GBPUSD",OP_SELL,0.1,Ask,0,Ask+400*Point,Ask-100*Point);
  Alert(GetLastError());
  return();

}