//+------------------------------------------------------------------+
//|                                                         test.mq4 |
//|                                        Copyright © 2009, artsnz. |
//|                                                 artsnz@gmail.com |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, artsnz."
#property link      "artsnz@gmail.com"

extern double lot = 1.0;
int ticket.buy, ticket.sell;
int Magic = 94236572;
void start()
 {
  // TRO_InsideBar_Plot2.
  if (IsTesting()) iCustom(NULL, 0, "TRO_InsideBar_Plot2", 50, true, Blue, Lime, 0, 0);
  double LineRed = ObjectGet("HIGH_0", OBJPROP_PRICE1);
  double LineGreen = ObjectGet("LOW_0", OBJPROP_PRICE1);
  
  // IBFX - CPR.
  if (IsTesting()) iCustom(NULL, 0, "IBFX - CPR", true,  true, true, true, DarkBlue, DimGray, 
                                                            Lime, Red, Blue, FireBrick, 50, 0, 0);
  double StopLoss = ObjectGet("STOPTARGET", OBJPROP_PRICE1);
  double TakeProfit = ObjectGet("PROFITTARGET", OBJPROP_PRICE1);
  color ZM30 = ObjectGet("ScanM30O", OBJPROP_COLOR),
        ZH1 = ObjectGet("ScanH1O", OBJPROP_COLOR),
        ZH4 = ObjectGet("ScanH4O", OBJPROP_COLOR),
        expRecomend = ObjectGet("Commentary4", OBJPROP_COLOR);
  
  // Trend.
  double trend.buy = iCustom(NULL,0,"trend",15,3,0,0,0),
         trend.sell = iCustom(NULL,0,"trend",15,3,0,1,0);
         
  // Ροπεδ.       
  double spread = MarketInfo(Symbol(), MODE_SPREAD)*Point;       
    
  if (trend.buy != EMPTY_VALUE && Close[1] > LineGreen && Ask < TakeProfit - spread && 
      OrdersTotal() < 1 && ZM30 == Lime && ZH1 == Lime && ZH4 == Lime && expRecomend == Lime &&
      Ask + MarketInfo(Symbol(), MODE_STOPLEVEL)*Point < TakeProfit &&
      Ask - MarketInfo(Symbol(), MODE_STOPLEVEL)*Point > StopLoss)
   {
    for (int i = 0; i< OrdersTotal(); i++)
     {
      OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
      if (OrderComment() == "Only_profit_H4" && OrderType() == OP_SELL) if(OrderClose(
                   OrderTicket(), lot, NormalizeDouble(Bid, Digits), 3, White)) ticket.sell = 0;
     } 
    ticket.buy = OrderSend (Symbol(), OP_BUY, lot, NormalizeDouble(Ask, Digits), 3, 
                                           StopLoss, TakeProfit, "Only_profit_H4", Magic, Lime);
   }
  else if (trend.sell != EMPTY_VALUE && Close[1] < LineRed && Bid > TakeProfit + spread &&
           OrdersTotal() < 1 && ZM30 == Red && ZH1 == Red && ZH4 == Red && expRecomend == Red &&
           Bid - MarketInfo(Symbol(), MODE_STOPLEVEL)*Point > TakeProfit &&
           Bid + MarketInfo(Symbol(), MODE_STOPLEVEL)*Point < StopLoss)
        {
         for (int j = 0; j< OrdersTotal(); j++)
          {
           OrderSelect(j, SELECT_BY_POS, MODE_TRADES);
           if (OrderComment() == "Only_profit_H4" && OrderType() == OP_BUY) if(OrderClose(
                    OrderTicket(), lot, NormalizeDouble(Ask, Digits), 3, White)) ticket.buy = 0;
          } 
         ticket.sell = OrderSend (Symbol(), OP_SELL, lot, NormalizeDouble(Bid, Digits), 3, 
                                             StopLoss, TakeProfit, "Only_profit_H4", Magic, Red);
        }
  
 }