Эксперт не торгует на разных чартах. Помогите разобраться.

[Удален]  
Создал простенького эксперта:
#include "Actions.dll"
#include "Analise.dll"
 
#import "Actions.dll"
  int OrderManage (int x,double Lots,double TP,double SL,double MNum,string NameExpert);
 
#import "Analise.dll"
 int Locator (double Max, double Min);
 double isMax(double Price);
 double isMin (double Price);
 double isMid (double Price);
 int BarCheck (double HP,double LP,double OP,double CP); 
 
 
extern double NTP=50;
extern double Lots = 0.1;
extern double TP = 25;//Takeprofit
extern double SL = 0;//Stoploss
 
int Timer; //Счетчик времени (дней) Базовый для работы програмы
int Num=11;
int CurrId,PeriodID;
string NameExpert = "IT 011";
bool TradeEnd;
double MaxP,MinP;
double OpPrice,ClPrice; //Ценовые при открытой сделке
double ProfitNow; //Переменная для вычисления 
//Прибыли полученнойпосле закрытия сделки в пунктах.
int tic;
 
 
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
 
Timer = Day();
X1=CurTime();
TradeEnd=false;
ProfitNow=0.0;
 
 
//InitCheckers
//(InChCreateMnum)
  if (Symbol()=="EURUSD")
   CurrId=10;
   
   if (Symbol()=="GBPUSD")
   CurrId=20;
    
  if (Symbol()=="USDCHF")
   CurrId=30;
    
  if (Symbol()=="USDJPY")
   CurrId=40;
    
 
switch(Period())
 {
  case 1:
   PeriodID=1;
   break;
  case 5:
   PeriodID=2;
   break;
  case 15:
   PeriodID=3;
   break;
  case 30:
   PeriodID=4;
   break;
  case 60:
   PeriodID=5;
   break;
  case 240:
   PeriodID=6;
   break;
 
 } 
Num=(Num*100)+CurrId+PeriodID;
 
//(InChOrdSearch)
 if (OrdersTotal() ==0)
 {
 tic=0;
 }
 else
 { 
  for(int i=0; i<OrdersTotal();i++)
  {
   OrderSelect (i,SELECT_BY_POS,MODE_TRADES);
    {
    if (OrderMagicNumber() == Num) tic=OrderTicket();
    }
  }
 }
 
 
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
  
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert external function                                         |
//+------------------------------------------------------------------+
 
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
   
   
   //Take Profit Checkers (TPCh)
   //(TPChIT)
//Check if Closed for Close price
 if (OrderSelect(tic, SELECT_BY_TICKET)&& OrderCloseTime()>0)
    {
     OpPrice = OrderOpenPrice();
     ClPrice = OrderClosePrice();
      if(OrderProfit()<0)
       {
        ProfitNow =ProfitNow-((MathAbs(OpPrice-ClPrice))/Point);
        tic=0;
       }
      if(OrderProfit()>0)
       {
        ProfitNow =ProfitNow+((MathAbs(OpPrice-ClPrice))/Point);
        tic=0;
       }  
    } 
   
   //Check if Closed for Close price (end)
   
   //Check for Taked profit (pips)
   if (ProfitNow>=NTP)//Планируемамя прибыль в день (пункты) меньше текушей зафиксированой
    {
    while (!TradeEnd)
     {
     Print (TimeToStr(CurTime(),TIME_DATE|TIME_SECONDS),NameExpert,"Taked Profit >= Needed Profit. Work Finished today."); 
     TradeEnd=true;
     }
    
    } 
   
   //Check for Taked profit (pips)(end)   
//(TPChIT)(end)   
   //Take Profit Checkers(end)
   
   ///------------------------Checkers (end)-------------------------
   
   /// Active Phase
   while (Timer==Day())
    {//In Timer
    MaxP=isMax(Bid);
    MinP=isMin(Bid);
    Loc=Locator(MaxP,MinP);
    Signal = BarCheck (High[1],Low[1],Open[1],Close[1]); 
 
          
     
 if(tic<1 && !TradeEnd)
  {
    
     //Sell   
     if(Signal==1 && Loc==1)
       tic=OrderManage(2,Lots,TP,SL,Num,NameExpert);//->OrderManage(OpenSELL)
     //Sell (end)
     //---
     //Buy
     if (Signal==2 && Loc==4)
      tic=OrderManage(1,Lots,TP,SL,Num,NameExpert);//->OrderManage(OpenBUY)  
     //Buy (end)    
 
     
   
    }
//END ITS
return(0);
}
     
     return(0);
    }//In Timer(end)
   
   //Out Timer GROSS ZERO
   Timer=Day();
   TradeEnd=false;
   ProfitNow=0.0;
   MaxP=Bid;
   MinP=Bid;
   Signal=0;
   Loc=0;
   //Out Timer GROSS ZERO(end)
   
 
//----
return(0);   
  }
При постановке на один чарт - торгует.
При открытии оного эксперта на чартах разных валют открывает только один ордер (хотя по идее должен "работать паралельно") :( Сделал Четыре копии кода для четырех торгуемых пар. Откомпелировал запустил... Результат тот-же. Только один ордер при море вариантов. .. :( Помогите. Может чего-то не понимаю. Заранее благодарен. Да. Торгую На StraightHold Demo.