Author: Copyright � 2010, MetaQuotes Software Corp.
Orders Execution
Checks for the total of open ordersIt automatically opens orders when conditions are reachedIt Closes Orders by itself
0 Views
0 Downloads
0 Favorites
Pendulum
//+------------------------------------------------------------------+
//|                                                     mayatnik.mq4 |
//|                      Copyright © 2010, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2010, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

extern double shag = 0.001,
              lot  = 0.01,
              mnoj = 2;
              

double tc, cos, cob, sl, tp;
int tick1, tick2, tick3, tick4;
bool co, co2, co3, co4;
              
int start()
{
tc = NormalizeDouble(MathCeil(Bid / shag) * shag,5);

if (cos == 0) 
   {
    cos = tc - shag;
   }
if (cob == 0)
   {
    cob = tc; 
   }
if (OrdersTotal() == 0)
   {
    if (cos >= Bid)
       {
        tick1 = OrderSend(Symbol(),OP_SELL,lot,Bid,0,0,0,"",0,0,Red);
        sl = cos + shag*2;
        tp = cos - shag;
        cob = cos + shag;
        cos = cos - shag;
       }
    if (cob <= Bid)
       {
        tick1 = OrderSend(Symbol(),OP_BUY,lot,Ask,0,0,0,"",0,0,Green);
        sl = cob - shag*2;
        tp = cob + shag;
        cos = cob - shag;
        cob = cob + shag;
       }
   }
if (OrdersTotal() == 1)
   {
    if (OrderSelect(tick1, SELECT_BY_TICKET) == true)
       {
        if (OrderType() == 0)
           {
            if (cos >= Bid)
               {
                tick2 = OrderSend(Symbol(),OP_SELL,lot*2,Bid,0,0,0,"",0,0,Red);
                sl = cos + shag;
                tp = cos - shag*mnoj;
                cob = cos + shag;
                cos = cos - shag * mnoj;
                return;
               }
            if (tp <= Bid)
               {
                co = OrderClose(tick1,lot,Bid,5,DarkBlue);
                if (co == true)
                   {
                    tick1 = OrderSend(Symbol(),OP_BUY,lot,Ask,0,0,0,"",0,0,Green);
                    cob = tp;
                    sl = cob - shag*2;
                    tp = cob + shag;
                    cos = cob - shag;
                    return;
                   }
               }
           }
        if (OrderType() == 1)
           {
            if (cob <= Bid)
               {
                tick2 = OrderSend(Symbol(),OP_BUY,lot*2,Ask,0,0,0,"",0,0,Red);
                sl = cob - shag;
                tp = cob + shag*mnoj;
                cos = cob - shag;
                cob = cob + shag*mnoj;
                return;
               }
            if (tp >= Bid)
               {
                co = OrderClose(tick1,lot,Ask,5,DarkBlue);
                if (co == true)
                   {
                    tick1 = OrderSend(Symbol(),OP_SELL,lot,Bid,0,0,0,"",0,0,Green);
                    cos = tp;
                    sl = cos + shag*2;
                    tp = cos - shag;
                    cob = cos + shag;
                    return;
                   }
               }
           }
       }
   }
if (OrdersTotal() == 2)
   {
    if (OrderSelect(tick2, SELECT_BY_TICKET) == true)
       {
        if (OrderType() == 0)
           {
            if (cos >= Bid)
               {
                tick3 = OrderSend(Symbol(),OP_SELL,lot*4,Bid,0,0,0,"",0,0,Red);
                sl = cos + shag;
                tp = cos - shag*mnoj;
                cob = cos + shag;
                cos = cos - shag*mnoj;
                return;
               }
            if (tp <= Bid)
               {
                co = OrderClose(tick1,lot,Ask,5,DarkBlue);
                co2 = OrderClose(tick2,lot*2,Bid,5,DarkBlue);
                cob = tp;
                cos = tp - shag;
                return;
               }
           }
        if (OrderType() == 1)
           {
            if (cob <= Bid)
               {
                tick3 = OrderSend(Symbol(),OP_BUY,lot*4,Ask,0,0,0,"",0,0,Red);
                sl = cob - shag;
                tp = cob + shag*mnoj;
                cos = cob - shag;
                cob = cob + shag*mnoj;
                return;
               }
            if (tp >= Bid)
               {
                co = OrderClose(tick1,lot,Bid,5,DarkBlue);
                co2 = OrderClose(tick2,lot*2,Ask,5,DarkBlue);
                cos = tp;
                cob = tp + shag;
                return;
                }
           }
       }
   }

if (OrdersTotal() == 3)
   {
    if (OrderSelect(tick3, SELECT_BY_TICKET) == true)
       {
        if (OrderType() == 0)
           {
            if (tp <= Bid)
               {
                co = OrderClose(tick1,lot,Bid,5,DarkBlue);
                co2 = OrderClose(tick2,lot*2,Ask,5,DarkBlue);
                co3 = OrderClose(tick3,lot*4,Bid,5,DarkBlue);
                //co4 = OrderClose(tick4,lot*8,Bid,5,DarkBlue);
                cob = tp;
                cos = tp - shag;
                return;
               }
            if (sl >= Bid)
               {
                co = OrderClose(tick1,lot,Bid,5,DarkBlue);
                co2 = OrderClose(tick2,lot*2,Ask,5,DarkBlue);
                co3 = OrderClose(tick3,lot*4,Bid,5,DarkBlue);
               // co4 = OrderClose(tick4,lot*8,Bid,5,DarkBlue);
                cos = sl - shag;
                cob = sl + shag;
                return;
               }
           }
        if (OrderType() == 1)
           {
            if (tp >= Bid)
               {
                co = OrderClose(tick1,lot,Ask,5,DarkBlue);
                co2 = OrderClose(tick2,lot*2,Bid,5,DarkBlue);
                co3 = OrderClose(tick3,lot*4,Ask,5,DarkBlue);
                //co4 = OrderClose(tick4,lot*8,Ask,5,DarkBlue);
                cos = tp;
                cob = tp + shag;
                return;
               }
            if (sl <= Bid)
               {
                co = OrderClose(tick1,lot,Ask,5,DarkBlue);
                co2 = OrderClose(tick2,lot*2,Bid,5,DarkBlue);
                co3 = OrderClose(tick3,lot*4,Ask,5,DarkBlue);
                //co4 = OrderClose(tick4,lot*8,Ask,5,DarkBlue);
                cob = sl + shag;
                cos = sl - shag;
               }
           }
       }
   }


ObjectCreate("cen_buy", OBJ_LABEL, 0, 0, 0); 
ObjectSetText("cen_buy","îòêðûòèå áàé " + DoubleToStr(cob,5),10,"Verdana", Orange);
ObjectSet("cen_buy", OBJPROP_XDISTANCE, 0);  
ObjectSet("cen_buy", OBJPROP_YDISTANCE, 10);
   
ObjectCreate("cen_sell", OBJ_LABEL, 0, 0, 0); 
ObjectSetText("cen_sell","îòêðûòèå ñåë " + DoubleToStr(cos,5),10,"Verdana", Orange);
ObjectSet("cen_sell", OBJPROP_XDISTANCE, 0);  
ObjectSet("cen_sell", OBJPROP_YDISTANCE, 25);

ObjectCreate("tps", OBJ_LABEL, 0, 0, 0); 
ObjectSetText("tps","TP " + DoubleToStr(tp,5),10,"Verdana", Orange);
ObjectSet("tps", OBJPROP_XDISTANCE, 0);  
ObjectSet("tps", OBJPROP_YDISTANCE, 40);     
   
ObjectCreate("slb", OBJ_LABEL, 0, 0, 0); 
ObjectSetText("slb","SL " + DoubleToStr(sl,5),10,"Verdana", Orange);
ObjectSet("slb", OBJPROP_XDISTANCE, 0);  
ObjectSet("slb", OBJPROP_YDISTANCE, 55);

}

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 ---