Соблюдение условий if или else через историю торгов...помогите пожалуйста. - страница 2

 
Forexai >>:

Фигня получается, тогда условие зацикливается и Z становится бесполезной..тоесть все время выскакивает Z=0 потом Z=1 и так на каждом новом баре (стратегия проверки по барам)

Хорошо, давайте объясню еще проще:

1)Если X>Y то Z =1

Если X<Y то Z =-1

Теперь проверка условий по истории:

Если X>Y И Z=1 И прибыль Z<0 то Z = 2

Если X<Y И Z=-1 и прибыль Z<0 то Z = -2

Возвращаемся к 1)

Но как описать это в формуле не могу понять. Уже неделю с лишним бьюсь над этой логикой. Не могу верно зациклить или расставить правильно приоритеты :(

похоже, у тебя Z int, а ты ей присваиваешь отрицательные значения. Уточни.

Если так, то проделай перекодировку состояний, чтобы значения Z были больше нуля.

 
avtomat >>:

похоже, у тебя Z int, а ты ей присваиваешь отрицательные значения. Уточни.

Нет, не int.

просто в этом куске кода цикл не доходит до последнего нижнего условия Z. Что, естественно, не дает ей присвоить значение.

 

покажи этот кусок кода



Если X>Y И Z=1 И прибыль Z<0 то Z = 2


условие заведомо невыполнимое!


это что? или это различные переменные?

 

Z - ордер

 

Если X>Y И Z=1 И прибыль Z<0 то Z = 2 - противоречие

Если X<Y И Z=-1 и прибыль Z<0 то Z = -2 - тавтология

 
Forexai >>:

Z - ордер

я не об этом. 

Не может быть одновременно выполнено (Z==1)&&(Z<0)

А здесь лишняя (не нужная) проверка (Z==-1)&&(Z<0)


Если это различные переменные, то тогда другое дело

(Za==1)&&(Zb<0)

(Za==-1)&&(Zb<0)

 

Еще раз поясняю 1 или 2 это тип ордера! селл или бай тоесть.

(Z==1)&&(Z<0) означает что если z ордер является типом бай ии при этом прибыль z ордера < нуля то ордеру Z присваивается тип ордера 2 или -2

 
Forexai >>:

Еще раз поясняю 1 или 2 это тип ордера! селл или бай тоесть.

(Z==1)&&(Z<0) означает что если z ордер является типом бай ии при этом прибыль z ордера < нуля то ордеру Z присваивается тип ордера 2 или -2

В таком случае это должны быть разные переменные

Z тип ордера

Zp прибыль по ордеру


(Z==1)&&(Zp<0)

 
Так понятней ? ->


 if (Sell1_1 < Sell1_2) Order = SIGNAL_SELL;
    {
   int total=OrdersHistoryTotal();
   for (int o=total-1;o>=0;o--) {
      if (OrderSelect(o,SELECT_BY_POS,MODE_HISTORY)){
         if (OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber ) {
            if (OrderProfit()<0 && OrderType()==OP_BUY) Order = SIGNAL_Zamoksell;
         }
      
        
        
      }
     
   }
 {
 
         if (Buy1_1 > Buy1_2 ) Order = SIGNAL_BUY;
  
   for (int p=total-1;p>=0;p--) {
      if (OrderSelect(o,SELECT_BY_POS,MODE_HISTORY)){
         if (OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber ) {
            if (OrderProfit()<0 && OrderType()==OP_sell) Order = SIGNAL_Zamokbuy;
         }
 
      }
     
   }   }
     
  
        
        
  
}
Но вот Order = SIGNAL_Zamokbuy;
не срабатывает никак..хотя условие выполняется!
 
есть ли подобный советник с такими условиями ? может ктонить подскажет а то я все перерыл и немогу найти с локированием подобным..
Причина обращения: