RndTrade





//+------------------------------------------------------------------+
//|                                                     RndTrade.mq4 |
//|                                            Copyright © 2008 Grib |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008 Grib"
#property link      ""

#define NUM_BUY  20050611
#define NUM_SELL  20050612
int ticket;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
if(OrdersTotal() == 0)
{
   checkForOpen();
}
else
{
   checkForClose();
}

//----
   return(0);
  }
  
//+------------------------------------------------------------------+
//| Ïðîâåðêà íà îòêðûòèå ïîçèöèè                                    |
//+------------------------------------------------------------------+
void checkForOpen()
{
int a = 0;
MathSrand(TimeLocal());
  // Îòîáðàæàåò 10 ÷èñåë.
  for(int i=0;i<10;i++ )
    if(i==5)
    {
      a = MathRand();
      if(a > 16383.5)
      {
      // Ñîâåðøàåì ïîêóïêó
        ticket = OrderSend(Symbol(),OP_BUY,1,Ask,3,0,0,"TestDrawSell",NUM_BUY);
        if (ticket == -1) Alert("Îøèáêà ïðè ñîâåðøåíèè îïåðàöèè ïîêóïêè");
      }
      else
      {
      //Ñîâåðøàåì ïðîäàæó
        ticket = OrderSend(Symbol(),OP_SELL,1,Bid,3,0,0,"TestDrawBuy",NUM_SELL);
        if (ticket == -1) Alert("Îøèáêà ïðè ñîâåðøåíèè îïåðàöèè ïðîäàæè");
      }
    }
    else
    {
      a = MathRand();
    } 
}
//+------------------------------------------------------------------+
//| Ïðîâåðêà íà çàêðûòèå ïîçèöèè                                     |
//+------------------------------------------------------------------+
void checkForClose()
{
  if(OrderSelect(0, SELECT_BY_POS)==true)
  {
    if( (OrderOpenTime()+14400) < TimeLocal() )
       if(OrderClose(OrderTicket(),1,Ask,3) == false)
          Print("Îøèáêà ïðè çàêðûòèè ïîçèöèè");
  }
  else
  {
    Print("OrderSelect() âåðíóë îøèáêó - ",GetLastError());
  }
}
//+------------------------------------------------------------------+



Sample





Analysis



Market Information Used:



Indicator Curves created:


Indicators Used:



Custom Indicators Used:

Order Management characteristics:
Checks for the total of open orders
It automatically opens orders when conditions are reached

It Closes Orders by itself

Other Features:

It issuies visual alerts to the screen