почему эксперт выполняет не все действия в блоке "if", хотя условия для действий соблюдаются и ошибок в эксперте нет

 

Эксперт почему-то при тестировании выполняет не все действия, хотя все условия соблюдаются. В самом эксперте все написано правильно - это точно.

От чего это может происходить? Может ли на это влиять количество вложенных подусловий и действий в одном блоке "if"?

 
Nika писал (а) >>

Эксперт почему-то при тестировании выполняет не все действия, хотя все условия соблюдаются. В самом эксперте все написано правильно - это точно.

От чего это может происходить? Может ли на это влиять количество вложенных подусловий и действий в одном блоке "if"?

перед "if"

поставьте

Print по каждому условию, для отладки... может все же в коде ошибка? точнее в логике

---



я вообще стараюсь блоки if писать следующим образом


// 1
if ( A == 1 )
{  
    if ( B == 1 )
    {
       if ( C == 1 )
       {  
          if ( D == 1 )
          {
            YES = 1; // ура!
          }
        }
    }
}


при этом стараюсь распределить if так что бы самый первый был с самой низкой вероятностью на срабатывание

а самый часто срабатываемый в конце


т е вместо блока

// 2
 if ( A== 1 && B == 1 && C == 1 && D == 1 )


первая конструкция по скорости работает быстрее - может не так красива как последняя но как говорится у кого какие цели

но это исключительно для скорости кода

 
YuraZ писал (а) >>

Юр, ищу тебя, выйди куда-нибудь, плизс)))

 
LeoV писал (а) >>

выйди куда-нибудь

и дверь закрой :-)

 
KimIV писал (а) >>

и дверь закрой :-)

))))) Не путайте Юру. Ася, скайп, мыло )))))

 
LeoV писал (а) >>

мыло )))))

точно ))) на мыло его

 
Юра, прости подлеца! Это я шутил
 
KimIV писал (а) >>
Юра, прости подлеца! Это я шутил

:-))) да я я же посмеялся ...

 
YuraZ писал (а) >>

:-))) да я я же посмеялся ..

хе-хе, сколько всякой переписки вызвал мой маленький вопрос 8))
 
Nika писал (а) >>
хе-хе, сколько всякой переписки вызвал мой маленький вопрос 8))

Просто Ваш вопрос не подразумевает ответа, так как катострофически не хватает данных, а потому ветка автоматически - в разряд флуда... На некоторых форумах за вопросы ведущие к флуду, - "банан" выдают) А ежели хотите конструктива - надо хотя бы проблемный участок кода показать.

 
Figar0 писал (а) >>

Просто Ваш вопрос не подразумевает ответа, так как катострофически не хватает данных, а потому ветка автоматически - в разряд флуда... На некоторых форумах за вопросы ведущие к флуду, - "банан" выдают) А ежели хотите конструктива - надо хотя бы проблемный участок кода показать.

ОК, исправляюсь.

Я пыталась сделать, чтобы поэтапно снималась прибыль при достижении определенных ценовых шагов. Эксперт делает максимум дейстий 6, а все остальные "этапы" посылает лесом, при этом не пишет никакой ошибки 8(

...

if(total==1)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()==OP_BUY)
{

if(Shag==1&&(Bid-OrderOpenPrice())>=30*Point&&(Bid-OrderOpenPrice())<50*Point)

OrderClose(OrderTicket(),Lot,Bid,0,Aqua);

if(Shag==2&&(Bid-OrderOpenPrice())>=50*Point&&(Bid-OrderOpenPrice())<70*Point)
OrderClose(OrderTicket(),Lot,Bid,0,Aqua);

if(Shag==3&&(Bid-OrderOpenPrice())>=70*Point&&(Bid-OrderOpenPrice())<90*Point)
OrderClose(OrderTicket(),Lot,Bid,0,Aqua);

if(Shag==4&&(Bid-OrderOpenPrice())>=90*Point&&(Bid-OrderOpenPrice())<110*Point)
OrderClose(OrderTicket(),Lot,Bid,0,Aqua);

if(Shag==5&&(Bid-OrderOpenPrice())>=110*Point&&(Bid-OrderOpenPrice())<130*Point)
OrderClose(OrderTicket(),Lot,Bid,0,Aqua);

if(Shag==6&&(Bid-OrderOpenPrice())>=130*Point&&(Bid-OrderOpenPrice())<150*Point)
OrderClose(OrderTicket(),Lot,Bid,0,Aqua);

if(Shag==7&&(Bid-OrderOpenPrice())>=150*Point&&(Bid-OrderOpenPrice())<170*Point)
OrderClose(OrderTicket(),Lot,Bid,0,Aqua);

if(Shag==8&&(Bid-OrderOpenPrice())>=170*Point&&(Bid-OrderOpenPrice())<190*Point)
OrderClose(OrderTicket(),Lot,Bid,0,Aqua);

и еще несколько других if в этом же блоке...

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