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

 

не, надо просто

OrderSend("EURUSD", OP_BUY,0.1,Ask,0,Ask-400*Point,Ask+100*Point);

Стоп написали правильно только для Бай.

Для сел они же в другую сторону знаки СЛ + вверх, ТП-вниз

и еще рекомендуется нормализировать все расчетные цены на Digits знаков перед передачей в OrderSend

NormalizeDouble(Ask-100*Point, Digits)

 
-Viktoria-:
...индикатор который выделяет цветом определённые временные отрезки...
i-Sessions-02.mq4
 
Большущее спасибо!!! :)
 
Roger:


Можно так, объявляешь двухмерный массив, перекидываешь туда нужное количество данных из серии, потом сортируешь его по первому измерению. Во втором измерении будут стоять номера баров. Для наглядности посмотри как это работает на примере

Не пойму что-то.

Объявил даблы в виде:

double a1,a2,a3,a4,a5,a6,a7,a8,a9,a10;

Инициализировал их объемами и вставил в массив:

int start() {

a1=Volume[1],
a2=Volume[2],
a3=Volume[3],
a4=Volume[4],
a5=Volume[5],
a6=Volume[6],
a7=Volume[7],
a8=Volume[8],
a9=Volume[9],
a10=Volume[10];

int mas1[10]={a1,a2,a3,a4,a5,a6,a7,a8,a9,a10}; //Вот здесь компилятор что-то хочет в конце строки
int mas2[10][2];


При компиляции выдает ошибку - comma or semicolon expected

Подскажите, что ему надо?

 
sergeev:

не, надо просто

OrderSend("EURUSD", OP_BUY,0.1,Ask,0,Ask-400*Point,Ask+100*Point);

Так нельзя, в этом случае возьмется Аск с графика. Надо

double newAsk = MarketInfo("EURUSD",MODE_ASK);
OrderSend("EURUSD", OP_BUY,0.1,newAsk,0,newAsk-400*Point,newAsk+100*Point);
 
-xlapex-:

Не пойму что-то.

Массивы так объявлять нельзя, да и не надо в Вашем случае, у Вас же уже есть массив Volume, так и вставляйте в цикле с соответствующим индексом, где-то так:

mas2[i,0]=Volume[i];

 
Roger:

Массивы так объявлять нельзя, да и не надо в Вашем случае, у Вас же уже есть массив Volume, так и вставляйте в цикле с соответствующим индексом, где-то так:

mas2[i,0]=Volume[i];

Огромное спасибо, Roger, наконец-то до меня дошло, как нужно делать!
 
Roger:

Массивы так объявлять нельзя, да и не надо в Вашем случае, у Вас же уже есть массив Volume, так и вставляйте в цикле с соответствующим индексом, где-то так:

mas2[i,0]=Volume[i];

Еще вопрос по той же теме.

Вывожу после сортировки данные из массивов в алерте:

ArraySort(mas2);
min_2=mas2[2,0];
min_V2=mas2[2,1];
Alert(min_2," ",min_V2," ", High[min_V2]);

Все прекрасно отображается.

НО, если пытаюсь вывести в графику - никакой реакции! :

ArraySort(mas2);
min_1=mas2[1,0];
min_V1=mas2[1,1];
min_2=mas2[2,0];
min_V2=mas2[2,1];

ObjectCreate("",OBJ_HLINE,0,0,High[min_V2]);
ObjectSet("",OBJPROP_COLOR,Ex_col_1);
ObjectSet("",OBJPROP_STYLE, 0);
ObjectSet("", OBJPROP_WIDTH , 2);



Что нужно делать?

 
-xlapex-:

Еще вопрос по той же теме. Что нужно делать?

рабочий пример:

void create_line(string name_line,double level,color c,int style,int w){
   if(ObjectFind(name_line)<0 ) {
   
  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);
   WindowRedraw();      }  
   
   else {
  ObjectMove(name_line,0,Time[1],level);  
  WindowRedraw();      } 
                  } 
 
To:

Попробовал и так, не хочет рисовать. Почему-то терминал не признает координату PRICE такого вида, как у меня - High[min_V2], где min_V2 - это элемент массива. Как отобразить элемент массива не в виде Print, Message или Alert, а в виде какого-то объекта на графике, не пойму. Причем данный пример у меня не первый, с массивами - проблема...