help needed

 
Hi,
I'm trying to make an EA that only places one trade at the time. I loop through the open orders to see if there 
is any trade open from this EA. If one of the magic no's is found, trade should be set to true and ordersend should not be executed. 

Thing is; it doesn't work. While backtesting it generates loads of trades at the same moment. I tried looping with i++ also, but didn't work as well.

Could somebody please have a look and point out what I'm missing here?

Many thanks!

the code:

trade = false;


if (OrdersTotal()>0)
{
   
    for(i=OrdersTotal()-1;i==0;i--) 
       {
   
       ticket =OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
       
       
       if(OrderMagicNumber()==magicb1||OrderMagicNumber()==magicb2||OrderMagicNumber()==magics1||OrderMagicNumber()==magics2)
         {
         trade=true;
         break;  
         }
      }   
 
 } 
     


if (Bid>(boven+gap)&&trade==false)
   {
    ordersend()
   }
 

this is wrong

ticket =OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

try

if(OrderSelect(12, SELECT_BY_POS)==true)
order=OrderTicket();
else
Print("OrderSelect failed error code is",GetLastError());

 
for(i=OrdersTotal()-1;i==0;i--) 
       {
       //ticket =OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
       OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
       
       
       if(OrderMagicNumber()==magicb1||OrderMagicNumber()==magicb2||OrderMagicNumber()==magics1||OrderMagicNumber()==magics2)
         {
         ...................


if (Bid>(boven+gap)&& trade==true) wrong //trade==false)
   {
    ordersend()
   }