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

 

Добрый день!

Такой простой вопрос,но что-то не получается,если не ставить при открытии ордера StopLoss, как правильно написать.

Я пробывал ставить NULL и 0.00000, но при попытке открыть ордер ругается ошибка 130.

Подскажите пожалуйста как это сделать?

 
Boneshapper:

Добрый день!

Такой простой вопрос,но что-то не получается,если не ставить при открытии ордера StopLoss, как правильно написать.

Я пробывал ставить NULL и 0.00000, но при попытке открыть ордер ругается ошибка 130.

Подскажите пожалуйста как это сделать?

0 должно отрабатываться

какие остальные параметры? и сколько знаков 4 или 5?

 
Boneshapper:

Добрый день!

Такой простой вопрос,но что-то не получается,если не ставить при открытии ордера StopLoss, как правильно написать.

Я пробывал ставить NULL и 0.00000, но при попытке открыть ордер ругается ошибка 130.

Подскажите пожалуйста как это сделать?


пиши так: 0 - это на месте его установки в ф-ии открытия, кроме этого в редакторе МЕ на эту ф-ию OrderSend () встань курсором, нажми F1 и внимательно ознакомься с содержимым по данной справке.

например

OrderSend(Symbol(), OP_SELL, Lots, Bid, 0, 0, "старт", MagicNumber);
 

спрашивается откуда в переменной up берется левое значение!

подскажите плз мож ошибка какая в коде или я чет не понимаю

int up=0;
int init()
  {
//----
   up=0;
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+


int deinit()
  {
//----
   //Print(up);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   int i;
   int c=0;
   for (i=0;i<=3;i++)
   {
   if (iOpen("EURUSD",PERIOD_M5,i)>iOpen("EURUSD",PERIOD_M5,i+1))
   c++;
   
   }
   if (c==4)
   {
   up=up+1;
   }
   Print("c=",c,"up=",up);
   //----
   return(0);
  }
//+------------------------------------------------------------------+
 
solegs049:

спрашивается откуда в переменной up берется левое значение!

подскажите плз мож ошибка какая в коде или я чет не понимаю


Так UP может на каждом тике увеличиваться. Надо бы его в start() инициализировать.
 

забыл написать что тестировал по отрытиям баров

первое же значение уже левое, а должно быть 0

и в start() если инициализировать она (up) обнуляться будет, а мне надо посчитать сколько раз было (в этом коде 4) последовательности

за определенный период времени

 
Помогите разобраться в таком вопросе:

Функция ArrayMinimum() в применении к тиковым объемам определяет бар с минимальным значением объема и возвращает его индекс. Проблема вот в чем - нужно определить индекс бара, у которого объем тоже минимальный, но выше, чем у определяемого этой функцией (т.е. второго по "минимальности"). Как это можно сделать?
 
-xlapex-:
Помогите разобраться в таком вопросе:

Функция ArrayMinimum() в применении к тиковым объемам определяет бар с минимальным значением объема и возвращает его индекс. Проблема вот в чем - нужно определить индекс бара, у которого объем тоже минимальный, но выше, чем у определяемого этой функцией (т.е. второго по "минимальности"). Как это можно сделать?


Циклом перебирать ячейки массива и сравнивать с уже найденным минимумом. Беда лишь в том, что одинаковых значений может оказаться более одного - поэтому лучше определиться, к концу ближе, или к началу массива должно лежать искомое значение и прерывать цикл, как только оно будет найдено.
 
drknn:

Циклом перебирать ячейки массива и сравнивать с уже найденным минимумом. Беда лишь в том, что одинаковых значений может оказаться более одного - поэтому лучше определиться, к концу ближе, или к началу массива должно лежать искомое значение и прерывать цикл, как только оно будет найдено.

Циклом мы перебираем величины объемов, находим минимум. Как нам теперь определить индекс этого бара?

Цикл я использовал такой:

extern int Quant_Bars=5;
//-----------------------
int start()
{
int i;
double Minimum=10000;

for(i=0;i<=Quant_Bars-1;i++)
{
if (Volume[i]< Minimum)
Minimum=Volume[i];
}
Alert("Minimum ",Minimum);
return;
}

 

Никто не подскажет - как найти, проще всего, все (или не все, но часть) своих постов на форуме в определенной ветке?