_KeelOver_v1

Author:
Profit factor:
0.00
Orders Execution
Checks for the total of open ordersIt Closes Orders by itself It automatically opens orders when conditions are reached
Miscellaneous
It issuies visual alerts to the screen
10 Views
0 Downloads
0 Favorites
_KeelOver_v1
//+------------------------------------------------------------------+
//|                                                    _KeelOver.mq4 |
//|                                           "ÑÊÐÈÏÒÛ ÄËß ËÅÍÈÂÎÃÎ" |
//|                ÏÅÐÅÂÎÐÎÒ:  Ñêðèïò çàêðûâàåò âñå îòêðûòûå ïîçèöèè |
//|                è îòêðûâàåò îäíó íà ðàçíèöó ñóìì ëîòîâ Buy è Sell |
//|                ÂÍÈÌÀÍÈÅ: åñëè ñóììû ëîòîâ Buy è Sell ðàâíû - âñå |
//|                                     ïîçèöèè ïðîñòî áóäóò çàêðûòû |
//|                           Bookkeeper, 2006, yuzefovich@gmail.com |
//+------------------------------------------------------------------+
#property copyright ""
#property link      ""
#property show_inputs // Åñëè åñòü æåëàíèå ìåíÿòü ýêñòåðíû â ïðîöåññå
//----
extern int    DistSL    =35;   // StopLoss â ïóíêòàõ
extern int    DistTP    =35;   // TakeProfit â ïóíêòàõ
extern int    Slippage  =7;    // Ïðîñêàëüçûâàíèå
extern bool   StopLoss  =true; // Ñòàâèòü èëè íåò
extern bool   TakeProfit=true; // Ñòàâèòü èëè íåò
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void start()
  {
   int    Total, i, Pos, ticket, MinLotDgts;
   bool   Result;
   double MinLot=MarketInfo(Symbol(), MODE_MINLOT);
   double SL=0, TP=0, Stake, BuyLots=0, SellLots=0;
   Total=OrdersTotal();
   if(Total > 0) // Åñëè åñòü îðäåðà
     {
      for(i=Total - 1; i>=0; i--)
        {
         if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)==true)
           {
            Pos=OrderType();
            Stake=OrderLots();
            if((OrderSymbol()==Symbol()) &&
               (Pos==OP_BUY || Pos==OP_SELL)) // Ñìîòðèì òîëüêî îòêðûòûå Buy è Sell
              {                                   // â àêòèâíîì îêíå
               if(Pos==OP_BUY)
                 {
                  BuyLots=BuyLots + Stake;    // Ñóììèðóåì Ëîòû îòêðûòûõ Buy
                  Result=OrderClose(OrderTicket(), OrderLots(), Bid , Slippage);
                  if(Result!=true)
                     Alert("KeelOver: CloseBuyError = ", GetLastError());
                 }
               else
                 {
                  SellLots=SellLots + Stake;  // Ñóììèðóåì Ëîòû îòêðûòûõ Sell
                  Result=OrderClose(OrderTicket(), OrderLots(), Ask , Slippage);
                  if(Result!=true)
                     Alert("KeelOver: CloseSellError = ", GetLastError());
                 }
              }
           }
        }
      if(MinLot < 0.1)
         MinLotDgts=2;
      else
        {
         if(MinLot < 1.0)
            MinLotDgts=1;
         else
            MinLotDgts=0;
        }
      Stake=NormalizeDouble(BuyLots - SellLots, MinLotDgts);
      if(Stake!=0) // Åñëè åñòü ÷òî ïåðåâîðà÷èâàòü
        {
         if(Stake > 0) // ïðîäàæåé
           {
            RefreshRates();
            if(StopLoss==true)
               SL=NormalizeDouble(Ask + DistSL*Point, Digits);
            if(TakeProfit==true)
               TP=NormalizeDouble(Bid - 2*DistTP*Point, Digits);
            ticket=OrderSend(Symbol(), OP_SELL, Stake, Bid , Slippage, SL, TP, "");
            if(ticket<=0)
               Alert("KeelOver: OpenSellError: ", GetLastError());
           }
         else // ïîêóïêîé
           {
            Stake=-Stake;
            RefreshRates();
            if(StopLoss==true)
               SL=NormalizeDouble(Bid - DistSL*Point, Digits);
            if(TakeProfit==true)
               TP=NormalizeDouble(Ask + 2*DistTP*Point, Digits);
            ticket=OrderSend(Symbol(), OP_BUY, Stake, Ask , Slippage, SL, TP, "");
            if(ticket<=0)
               Alert("KeelOver: OpenBuyError: ", GetLastError());
           }
        }
      else
         Alert("KeelOver: BuyLots = SellLots");
     }
   return;
  }
//+------------------------------------------------------------------+

Comments