I don't think you need the for loop or iif(...).
you can use logic statements something like this:

buy = sell = short = cover = False;

// LONGS
buy = di AND uptrend AND !dwtrend;
Sell= u1 and uptrend AND !dwtrend;

// SHORTS
Short = u1 AND dwtrend AND !uptrend;
Cover = d1 AND dwtrend AND !uptrend;

// BOTH
Buy = Cover = di AND uptrend AND dwtrend;
Sell= Short = u1 AND uptrend AND dwtrend;

Barry

--- In [email protected], "DrazenStricek12" <[EMAIL PROTECTED]> 
wrote:
>
> Hello,
> 
> Im building system:
> 1. that goes long only ie. buys  down bar in uptrend
> 2. that goes short only ie. shorts up bar in downtrend
> 3. goes  long and short when both trends are present   
> 
> The problem is that it signals error because IF  loop has to be 
numeric and not aray.
> Could anyone point me to where I can find solution  for this 
problem ?
> 
> 
> 
> It goes like this
> 
> // CODE BEGINN ********** 3 in 1 EOD system
> 
> p=20;
> 
> uptrend=RSI(p) >55;
> dwtrend=RSI(p) < 45;
> DIR=IIf( uptrend,5 ,IIf( dwtrend,4 ,7)); // direction up down both
> 
> u1=C >O;// trigger
> d1=C < O;
> 
>  
> if( dir==5)
> {
>  // LONGS
> Buy=d1* dir==5;
> Sell=u1*dir==5;
> Short=0;
> Cover=0;
> }
> 
>  if( dir==4)
>  {
>  // SHORTS
>  Buy=0;
>  Sell=0;
>  Short=u1*dir==4;
>  Cover=d1*dir==4;
>  }
>   if( dir==7)
>   {
>   // BOTH
>   Buy=d1* dir==7;
>   Sell=u1*dir==7;
>   Short=u1*dir==7;
>   Cover=d1*dir==7;
>    } else;
> 
> // 
> //  *****************END CODE
> 
> 
> I tried this combination but  it is not working:
> 
> 
> p=20;
> 
> uptrend=RSI(p) >55;
> dwtrend=RSI(p) < 45;
> DIR=IIf( uptrend,5 ,IIf( dwtrend,4 ,7)); // direction up down both
> 
> u1=C >O;// trigger
> d1=C < O;
> 
> for(i=1;i<BarCount;i++)
>   {
>         if (dir[i]==5) 
> Buy=d1* dir==5;
> Sell=u1*dir==5;
> Short=0;
> Cover=0;
> 
>       
> 
>    if (dir[i]==4) 
>          Buy=0;
>          Sell=0;
>          Short=u1*dir==4;
>          Cover=d1*dir==4;
> 
>         if (dir[i]==7) 
>              // BOTH
>               Buy=d1* dir==7;
>               Sell=u1*dir==7;
>               Short=u1*dir==7;
>               Cover=d1*dir==7;
> }
>


Reply via email to