Error in OrderClose #129 - page 2

 
extern double entry_eurusd = 1.27685, entry_eurjpy = 108.731, entry_usdjpy = 85.177, lots = 0.1;
double mark_eurusd, mark_eurjpy, mark_usdjpy;
double mark_eurusdjpy, basket_pl;
double mid_range, high_range, low_range;
double ask_eurusd, bid_eurjpy, ask_usdjpy;
double bid_eurusd, ask_eurjpy, bid_usdjpy;
int current_level, previous_level = 0, x, y, z, buy = 0, sell = 0, cnt;
int buy_eurusd, buy_eurjpy, buy_usdjpy, sell_eurusd, sell_eurjpy, sell_usdjpy;
bool close_eurusd, close_eurjpy, close_usdjpy;
int handle, handle1;
int counter1, magic_number=1, magic, checkmagic; 
int set = 0;
string type = "";

int init()
{
   magic = OrderSelect(OrdersTotal()-1, SELECT_BY_POS);
   counter1=0;
   handle=FileOpen("tri arb close.xls",FILE_CSV|FILE_WRITE, ';');
   handle1=FileOpen("tri arb profit8.xls",FILE_CSV|FILE_WRITE, ';');
   if(OrdersTotal()!=0)
   {
      OrderSelect(OrdersTotal()-1,SELECT_BY_POS);
      if(OrderType() == OP_SELL)
      {
         previous_level = OrdersTotal()/3;
      }
      else if(OrderType() == OP_BUY)
      {
         previous_level = (OrdersTotal()*(-1))/3;
      }
   }
   else
      previous_level = OrdersTotal();
   return(0);
}

int start()
  {
   mark_eurusd = entry_eurusd - MarketInfo("EURUSD",MODE_ASK);
   mark_eurjpy = entry_eurjpy - MarketInfo("EURJPY",MODE_BID);
   mark_usdjpy = entry_usdjpy - MarketInfo("USDJPY",MODE_ASK);
   
   mark_eurusdjpy = mark_eurusd * MarketInfo("USDJPY",MODE_BID);
   
   basket_pl = 100 * (mark_eurusdjpy + mark_eurjpy + mark_usdjpy);
   current_level = MathRound(basket_pl / 25);
      
   mid_range = current_level * 25;
   high_range = mid_range + 3.75;
   low_range = mid_range - 3.75;
   
   checkProfit();
   Comment("Basket PL: ",basket_pl," EURUSDJPY: ",mark_eurusdjpy, " EURJPY: ",mark_eurjpy," USDJPY: ",mark_usdjpy, " Previous Level: ",previous_level, " Current Level: ",current_level);
   
   if(basket_pl > low_range && basket_pl < high_range && previous_level != current_level)
   { 
      if(current_level > 0)
      {
         Print("Basket PL: ",basket_pl, " Previous Level: ",previous_level," Current Level: ",current_level);
         if(previous_level < current_level)
         {
            sell = OrdersTotal();
            if(sell > 0)
               sell = sell / 3;
            while(sell < MathAbs(current_level))
            {
               sell_eurusd = -1;
               buy_eurjpy = -1;
               sell_usdjpy = -1;
               
               while(sell_eurusd == -1)
               {
                  bid_eurusd = MarketInfo("EURUSD",MODE_BID);
                  sell_eurusd = OrderSend("EURUSD",OP_SELL,lots,bid_eurusd,3,0,0,NULL,magic_number,0,Red);
                  RefreshRates();
               }
               
               while(buy_eurjpy == -1)
               {          
                  ask_eurjpy = MarketInfo("EURJPY",MODE_ASK);       
                  buy_eurjpy = OrderSend("EURJPY",OP_BUY,lots,ask_eurjpy,3,0,0,NULL,magic_number,0,Red);
                  RefreshRates();
               }
                  
               while(sell_usdjpy == -1)
               {              
                  bid_usdjpy = MarketInfo("USDJPY",MODE_BID);
                  sell_usdjpy = OrderSend("USDJPY",OP_SELL,lots,bid_usdjpy,3,0,0,NULL,magic_number,0,Red);
                  RefreshRates();
               }
               sell++;
               magic_number++;
            }
         }
         previous_level = current_level;
      }
      else if(current_level < 0)
      {
         Print("Basket PL: ",basket_pl, " Previous Level: ",previous_level," Current Level: ",current_level);
         if(previous_level > current_level)
         {
            buy = OrdersTotal();
            if(buy > 0)
               buy = buy / 3;
            while(buy < MathAbs(current_level))
            {
               buy_eurusd = -1;
               sell_eurjpy = -1;
               buy_usdjpy = -1;
               
               while(buy_eurusd == -1)
               {
                  ask_eurusd = MarketInfo("EURUSD",MODE_ASK);
                  buy_eurusd = OrderSend("EURUSD",OP_BUY,lots,ask_eurusd,3,0,0,NULL,magic_number,0,Blue);
                  RefreshRates();
               }
               
               while(sell_eurjpy == -1)
               {         
                  bid_eurjpy = MarketInfo("EURJPY",MODE_BID);
                  sell_eurjpy = OrderSend("EURJPY",OP_SELL,lots,bid_eurjpy,3,0,0,NULL,magic_number,0,Blue);
                  RefreshRates();
               }
               
               while(buy_usdjpy == -1)
               {            
                  ask_usdjpy = MarketInfo("USDJPY",MODE_ASK);
                  buy_usdjpy = OrderSend("USDJPY",OP_BUY,lots,ask_usdjpy,3,0,0,NULL,magic_number,0,Blue);
                  RefreshRates();
               }
               buy++;
               magic_number++;
            }
         }
         previous_level = current_level;
      }
      else
      {
         Print("Basket PL: ",basket_pl, " Previous Level: ",previous_level," Current Level: ",current_level);
         previous_level = current_level;
      }
   }
   return(0);




void magicnumber()
{
   for(cnt=1;cnt<OrdersTotal()-1;cnt++)
   {  
      OrderSelect(cnt, SELECT_BY_POS);
      checkmagic = OrderMagicNumber();
   }
}
 
that is also part of the code...
 
How about showing part of the log as previously asked ?
 
RaptorUK:
How about showing part of the log as previously asked ?
2011.12.16 17:12:49 triangulararbitrage EURUSD,M30: Magic: 27 Ticket 0: 1710977 Ticket 1: 1710978 Ticket 2: 1710979 Set: 3 Cnt: 128
2011.12.16 17:12:49 triangulararbitrage EURUSD,M30: Profit: 11.92
2011.12.16 17:12:49 triangulararbitrage EURUSD,M30: Magic: 26 Ticket 0: 1710974 Ticket 1: 1710975 Ticket 2: 1710976 Set: 3 Cnt: 127
2011.12.16 17:12:49 triangulararbitrage EURUSD,M30: Profit: 12.02
2011.12.16 17:12:48 triangulararbitrage EURUSD,M30: Magic: 25 Ticket 0: 1710971 Ticket 1: 1710972 Ticket 2: 1710973 Set: 3 Cnt: 126
2011.12.16 17:12:48 triangulararbitrage EURUSD,M30: Profit: 12.02
2011.12.16 17:12:47 triangulararbitrage EURUSD,M30: Magic: 24 Ticket 0: 1710968 Ticket 1: 1710969 Ticket 2: 1710970 Set: 3 Cnt: 125
2011.12.16 17:12:47 triangulararbitrage EURUSD,M30: Profit: 12.02
2011.12.16 17:12:46 triangulararbitrage EURUSD,M30: Magic: 23 Ticket 0: 1710965 Ticket 1: 1710966 Ticket 2: 1710967 Set: 3 Cnt: 124

sample log when checking profit...

 
There are no errors on that bit of the log so I assume you have fixed your issue . . . well done.
 
I'm waiting for the profit to reach 22.. if the log doesn't prompt me any error I think I fixed the problem.. by the way thanks for your help