10 свечей, после закрытия позиции - страница 2

 
ProfessorU:
Да, именно (-50)
До тех пор пока нет падающей свечи, размером (-50) цикл не должен прекращаться в течении 10 свечей от закрытия позиции

Когда испытал: после закрытия позиции не было свечи размером больше (-50) , а код все ровно завершил цикл.

Ну я же не вижу Ваш код.
Наверное цикл прекращается потому что закончились 10 свечей. Он же завершается по двум причинам: или закончились все наблюдаемые бары или встретился нужный бар.
Ну сделайте так, чтобы было понятней:

int i=0;
double g;
do
  {
   g=(Close[i]-Open[i])/_Point;
      i++;
  }
while(g>=-50 && i<10);
if (i==10) Print("Пока рановато");
else Print("Уже пора");
 
Evgeniy Zhdan:

Ошибка как минимум тут:

Это не int, а datetime

Понял, спасибо попробую. Неожиданно
 
Evgeniy Zhdan:

Ошибка как минимум тут:

Это не int, а datetime

Пока от этого не может быть ошибки. Ошибка будет после 2038.01.19 03:14.

 
if ((OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS, MODE_HISTORY)==true))
{
datetime C=OrderCloseTime();
int h=iBarShift(Symbol3,PERIOD_M1,C);
}
Alert("КОЛ-ВО СВЕЧЕЙ ПОСЛЕ ЗАКРЫТИЯ",h);


i=0;
double g;
do
  {
   g=(Close[i]-Open[i])/_Point;
   i++;
  }
while(g>=-50 && i<10);
if (i==10) Print("Пока рановато");
else Print("Уже пора");


metka1();
}
 


return(0);
}

 
int metka1()
{
int send1=OrderSend(Symbol3,OP_BUY,Lots,Ask,3,Bid-30*Point,Bid+30*Point);
return(0);

}



Пишет "Пока рановато" и открывает ордер. Не соблюдается (-50)  

Cтранное дело... Значит колличество учитывается с лёгкостью, код всегда его видит. А вот свойство свечи (падающия или растущая) мимо "кассы", как будто есть какие-то приоритеты....  

 
Alexey Belyakov:

А тиковый объем не забыли учесть?

 
Alexey Belyakov:
if ((OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS, MODE_HISTORY)==true))
{
datetime C=OrderCloseTime();
int h=iBarShift(Symbol3,PERIOD_M1,C);
}
Alert("КОЛ-ВО СВЕЧЕЙ ПОСЛЕ ЗАКРЫТИЯ",h);


i=0;
double g;
do
  {
   g=(Close[i]-Open[i])/_Point;
   i++;
  }
while(g>=-50 && i<10);
if (i==10) Print("Пока рановато");
else Print("Уже пора");


metka1();
}
 


return(0);
}

 
int metka1()
{
int send1=OrderSend(Symbol3,OP_BUY,Lots,Ask,3,Bid-30*Point,Bid+30*Point);
return(0);

}



Пишет "Пока рановато" и открывает ордер. Не соблюдается (-50)  

Ещ

ё ра

з 

прочитайт

е сво

й коммен

т и подумайт

е, захочу ли я е

го читать. 

 
Алексей Тарабанов:

Ещ

ё ра

з 

прочитайт

е сво

й коммен

т и подумайт

е, захочу ли я е

го читать. 

ну привык я так писать, извините уж.  

 
Evgeny Belyaev:

А тиковый объем не забыли учесть?

Нет не учитываю. А в каком месте кода его учесть?

 

Да в принципе решил задачу таким образом. Проблема оказалась крайне банальна - дурацкие фигурные скобки (начало условий, конец), их надо  было правильно расставить, а так многие  варианты подходили.  Всё ж спасибо всем тем, кто откликнулся помочь!

if ((up>=s2)&&(OrdersTotal() == 0))

{

if ((OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS, MODE_HISTORY)==true))

{

datetime C=OrderCloseTime();

int h=iBarShift(Symbol3,PERIOD_M1,C);

Alert("КОЛ-ВО СВЕЧЕЙ ПОСЛЕ ЗАКРЫТИЯ",h);

int g=(Close[i]-Open[i])/Point;

if ((h<=5)&&(g>=-20))

{

Alert("РАНОВАТО !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");

return(-1);

}

}

metka1();

}


 

Alexey Belyakov:

Да в принципе решил задачу таким образом. Проблема оказалась крайне банальна - дурацкие фигурные скобки (начало условий, конец), их надо  было правильно расставить, а так многие  варианты подходили.  Всё ж спасибо всем тем, кто откликнулся помочь!

//+------------------------------------------------------------------+
if((up>=s2) && (OrdersTotal()==0))
  {
   if((OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY)==true))
     {
      datetime C=OrderCloseTime();
      int h=iBarShift(Symbol3,PERIOD_M1,C);
      Alert("КОЛ-ВО СВЕЧЕЙ ПОСЛЕ ЗАКРЫТИЯ",h);
      int g=(Close[i]-Open[i])/Point;
      if((h<=5) && (g>=-20))
        {
         Alert("РАНОВАТО !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
         return(-1);
        }
     }
   metka1();
  }
//+------------------------------------------------------------------+

Вам же уже намекнули на неправильную вставку кода, который нечитаемый в таком виде. Ведь можно же уважать людей, которые вам помогают...


Я же в своём ответе в цитируемом вашем тексте вставил стилизированный при помощи Ctrl+< в редакторе ваш код с убранными пробелами между строк - и он уже не портянка, и выглядит читаемым.

Причина обращения: