_KeelOver_v1

Author:
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
0 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

Markdown supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---