For arrays use IIF
=============

Buy = IIF( dir == 5 OR dir == 7, d1,
            IIF( dir == 4, 0 ) );

Best regards,
Tomasz Janeczko
amibroker.com
  ----- Original Message ----- 
  From: DrazenStricek12 
  To: [email protected] 
  Sent: Wednesday, September 03, 2008 12:49 PM
  Subject: [amibroker] 3 in 1 trading system


  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