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

 
ВСЕГДА ПЕРЕСЧИТЫВАЙТЕ ВСЕ ОБЪЕКТЫ.
 

ОК.


Рустам, Артём, - Спасибо большое!

 

можете помочь?:)советник доделать нужно, сам сижу разбираюсь, а додумать не получается, на самом деле возможно и очень хороший советник получится, около года чуть больше, стратегия идет без сбоев, ну правда последнее время меньше сигналов пошло, если раньше было 22 сделки в месяц из них 2 убыточные, 2-3 безубыток, то сейчас около 16-18 сделок из них 2-3 убыточные, и 2 безубыток, на самом деле советник почти уже работает, но ниправильно введены два индюка в совместной работе, это АС и АО ну стратегию я думаю по ним знаете:) а у меня прописано в советнике тупо АС1>АС2 АО1>АО2 тогда открываем, что в корне тупо:)

Кто может помочь напишите в личку пожалуйста

 
Здравствуйте!Подскажите пожалуйста,как записать правильно условие типа:if(Среди всех открытых ордеров нет ордера с магиком==magic)Спасибо заранее...уже мозг просто кипит...
 
niktron:
Здравствуйте!Подскажите пожалуйста,как записать правильно условие типа:if(Среди всех открытых ордеров нет ордера с магиком==magic)Спасибо заранее...уже мозг просто кипит...

int ExampleMagic = 65536;
if (!PrsntMgc(ExampleMagic)) {
   // Your code here ...
}

bool PrsntMgc(int MgcNum) {
   for (int i = OrdersTotal()-1; i >= 0; i--) {
      OrderSelect(i, SELECT_BY_POS);     
      if(OrderMagicNumber() == MgcNum) 
         return true;
   }
   return false;
}
 
Chiripaha:

2. Надо. Мне нужно просмотреть 2 типа объектов: горизонтальные и трендовые линии. Остальные объекты в данном переборе не актуальны.

Если я правильно понял, мнения разошлись? или ответ на счет "первых" не противоречит предыдущему утверждению?

Нет, не разошлись. Мельком глянул на ваш код и ответил "не глядя". Ваша строка:

for(int i=ObjectsTotal(OBJ_HLINE)-1; i>=0; i--) 

- присваивает индексу цикла i величину, равную общему количеству горизонтальных линий. Если их у вас 3, то и цикл будет от 2 до 0. А там уж, что в вашем цикле - неясно, но будет всего три итерации от 2 до 0.

 
niktron:
Здравствуйте!Подскажите пожалуйста,как записать правильно условие типа:if(Среди всех открытых ордеров нет ордера с магиком==magic)Спасибо заранее...уже мозг просто кипит...

Так:

//+----------------------------------------------------------------------------+
int Magic=12345679;
//+----------------------------------------------------------------------------+
int start() {
   if (!ExistOrdersByTypeWithMagic(Symbol(), OP_BUY, Magic)) {
      Print("Нет открытых позиций Buy с магиком "+Magic);
      }
   else Print("Позиция Buy с магиком "+Magic+" существует однако...");
   if (!ExistOrdersByTypeWithMagic(Symbol(), OP_SELLLIMIT, Magic)) {
      Print("Нет установленных ордеров SellLimit с магиком "+Magic);
      }
   else Print("Висит где-то лимитничек Sell с магиком "+Magic);
   
   // e.t.c.
   
   return(0);
}
//+----------------------------------------------------------------------------+
bool ExistOrdersByTypeWithMagic(string sy, int op, int mn) {
   int i, k=OrdersTotal()-1;
   for (i=k; i>=0; i--) {
      if (OrderSelect(i, SELECT_BY_POS)) {
         if (OrderSymbol()!=sy)  continue;
         if (OrderType()!=op)    continue;
         if (OrderMagicNumber()==mn) return(true);
         }
      }
   return(false);
}
//+----------------------------------------------------------------------------+

Функция ExistOrdersByTypeWithMagic() ищет заданный тип ордера/позиции по заданному символу с магиком Magic и возвращает true, если есть и false, если нету ничего

 
r772ra:

Здесь

Еще раз спасибо!
 
Подскажите какое максимальное количество элементов в массиве?
 
MauzerVII:
Подскажите какое максимальное количество элементов в массиве?
Определяется наличием свободной памяти процесса.