Fenicks_v01

Orders Execution
Checks for the total of open ordersIt can change open orders parameters, due to possible stepping strategy
0 Views
0 Downloads
0 Favorites
Fenicks_v01
//+------------------------------------------------------------------+
//|                                                      Fenicks.mq4 |
//|                                                                  |
//|                                               widragon@mail.ru   |
//+------------------------------------------------------------------+
#property link      "widragon@mail.ru"

extern double Lot=0.01;
int h=15; //íà÷àëî îò öåíû
int g=20; //òåéêïðîôèò
int i=0;
int k=1;
int l=1;
double TakeB=0;
double TakeS=0;
int olbuy=0;
int olsell=0;
int oldbuy=0;
int oldsell=0;
int otkbuy=0;
int otlbuy=0;
int otksell=0;
int otlsell=0;


int openbuy()  // Âûñòàâëåíèÿ îòëîæåííûõ îðäåðîâ íà ïðîäàæó
  {
   double PRICE=Ask-Point*h;
   OrderSend (Symbol(),OP_BUYLIMIT,Lot*1,PRICE,0,0,PRICE+Point*g,"My order #",11);
   PRICE=Ask-Point*(h+10);
   OrderSend (Symbol(),OP_BUYLIMIT,Lot*2,PRICE,0,0,PRICE+Point*g,"My order #",12);
   PRICE=Ask-Point*(h+20);
   OrderSend (Symbol(),OP_BUYLIMIT,Lot*4,PRICE,0,0,PRICE+Point*g,"My order #",13);
   PRICE=Ask-Point*(h+30);
   OrderSend (Symbol(),OP_BUYLIMIT,Lot*8,PRICE,0,0,PRICE+Point*g,"My order #",14);
   PRICE=Ask-Point*(h+40);
   OrderSend (Symbol(),OP_BUYLIMIT,Lot*16,PRICE,0,0,PRICE+Point*g,"My order #",15);
   PRICE=Ask-Point*(h+50);
   OrderSend (Symbol(),OP_BUYLIMIT,Lot*32,PRICE,0,0,PRICE+Point*g,"My order #",16);
   PRICE=Ask-Point*(h+60);
   OrderSend (Symbol(),OP_BUYLIMIT,Lot*64,PRICE,0,0,PRICE+Point*g,"My order #",17);
   PRICE=Ask-Point*(h+70);
   OrderSend (Symbol(),OP_BUYLIMIT,Lot*128,PRICE,0,0,PRICE+Point*g,"My order #",18);
   PRICE=Ask-Point*(h+85);
   OrderSend (Symbol(),OP_BUYLIMIT,Lot*256,PRICE,0,0,PRICE+Point*1.5*g,"My order #",19);
   PRICE=Ask-Point*(h+100);
   OrderSend (Symbol(),OP_BUYLIMIT,Lot*512,PRICE,0,0,PRICE+Point*1.5*g,"My order #",20);
  return(0);
  }

int opensell()  // Âûñòàâëåíèÿ îòëîæåííûõ îðäåðîâ íà ïðîäàæó
  {
   double PRICE=Bid+Point*h;
   OrderSend (Symbol(),OP_SELLLIMIT,Lot*1,PRICE,0,0,PRICE-Point*g,"My order #",21);
   PRICE=Bid+Point*(h+10);
   OrderSend (Symbol(),OP_SELLLIMIT,Lot*2,PRICE,0,0,PRICE-Point*g,"My order #",22);
   PRICE=Bid+Point*(h+20);
   OrderSend (Symbol(),OP_SELLLIMIT,Lot*4,PRICE,0,0,PRICE-Point*g,"My order #",23);
   PRICE=Bid+Point*(h+30);
   OrderSend (Symbol(),OP_SELLLIMIT,Lot*8,PRICE,0,0,PRICE-Point*g,"My order #",24);
   PRICE=Bid+Point*(h+40);
   OrderSend (Symbol(),OP_SELLLIMIT,Lot*16,PRICE,0,0,PRICE-Point*g,"My order #",25);
   PRICE=Bid+Point*(h+50);
   OrderSend (Symbol(),OP_SELLLIMIT,Lot*32,PRICE,0,0,PRICE-Point*g,"My order #",26);
   PRICE=Bid+Point*(h+60);
   OrderSend (Symbol(),OP_SELLLIMIT,Lot*64,PRICE,0,0,PRICE-Point*g,"My order #",27);
   PRICE=Bid+Point*(h+70);
   OrderSend (Symbol(),OP_SELLLIMIT,Lot*128,PRICE,0,0,PRICE-Point*g,"My order #",28);
   PRICE=Bid+Point*(h+85);
   OrderSend (Symbol(),OP_SELLLIMIT,Lot*256,PRICE,0,0,PRICE-Point*1.5*g,"My order #",29);
   PRICE=Bid+Point*(h+100);
   OrderSend (Symbol(),OP_SELLLIMIT,Lot*512,PRICE,0,0,PRICE-Point*1.5*g,"My order #",30);
  return(0);
  }

int closebuy()  // Çàêðûâàåò îòëîæåííûé îðäåðà íà ïîêóïêó
{
   for(i=1; i<OrdersTotal(); i++)
    {
      if((OrderSelect(i-1,SELECT_BY_POS)==true)
      && (OrderType()==2))
      {
      OrderDelete(OrderTicket());
      }
    }
}

int closesell()  // Çàêðûâàåò îòëîæåííûé îðäåðà íà ïðîäàæó
{
   for(i=1; i<OrdersTotal(); i++)
    {
      if((OrderSelect(i-1,SELECT_BY_POS)==true)
      && (OrderType()==3))
      {
      OrderDelete(OrderTicket());
      }
    }
}

int start()
  {
// íà÷àëî îòêðûòèÿ îòëîæåííûõ îðäåðîâ 
   if (OrdersTotal()==0)
     {
     openbuy();
     opensell();
     }
// Îòêðûâàåò íà ïðîäàæó åñëè íà ïîêóïêó îòêðûòà ðàíåå
   for(i=0; i<OrdersTotal(); i++)
    {
      if((OrderSelect(i,SELECT_BY_POS)==true)
      && (OrderType()==3))
      {
      olsell++;
      }
    } 
    for(i=0; i<OrdersTotal(); i++)
    {
      if((OrderSelect(i,SELECT_BY_POS)==true)
      && (OrderType()==1))
      {
      oldsell++;
      }
    }   
        if(olsell<1 && oldsell<1)
          {
          opensell();
          } 
// Îòêðûâàåò íà ïîêóïêó åñëè íà ïðàäàæó óæå îòêðûòà ðàíåå
   for(i=0; i<OrdersTotal(); i++)
    {
      if((OrderSelect(i,SELECT_BY_POS)==true)
      && (OrderType()==2))
      {
      olbuy++;
      }
    }
   for(i=0; i<OrdersTotal(); i++)
    {
      if((OrderSelect(i,SELECT_BY_POS)==true)
      && (OrderType()==0))
      {
      oldbuy++;
      }
    }
        if(olbuy<1 && olbuy<1)
          {
          openbuy();
          }
// êîíåö îòêðûòèÿ îòëîæåííûõ îðäåðîâ

// ---------- Íà÷àëî ìîäèôèêàöèé îòëîæåííûõ îðäåðîâ --------------
// Ìîäèôèêàöèÿ òåéê ïðîôèòà äëÿ îòêðûòûõ îðäåðîâ íà ïîêóïêó

   for(i=0; i<OrdersTotal(); i++)
     {
      if((OrderSelect(i,SELECT_BY_POS)==true)
      && (OrderType()==0))
       {
       TakeB=OrderTakeProfit();
       }
     }
   for(i=0; i<OrdersTotal(); i++)
     {
      if((OrderSelect(i,SELECT_BY_POS)==true)
      && (OrderType()==0))
       {
       OrderModify(OrderTicket(),OrderOpenPrice(),0,TakeB,0);
       }
      }
 // Ìîäèôèêàöèÿ òåéê ïðîôèòà äëÿ îòêðûòûõ îðäåðîâ íà ïðîäàæó
   for(i=0; i<OrdersTotal(); i++)
     {
      if((OrderSelect(i,SELECT_BY_POS)==true)
      && (OrderType()==1))
       {
       TakeS=OrderTakeProfit();
       }
     }
   for(i=0; i<OrdersTotal(); i++)
     {
      if((OrderSelect(i,SELECT_BY_POS)==true)
      && (OrderType()==1))
       {
       OrderModify(OrderTicket(),OrderOpenPrice(),0,TakeS,0);
       }
      }
// Ïîäñ÷åò îòêðûòûõ è çàêðûòûõ îðäåðîâ
   for(i=0; i<OrdersTotal(); i++)
     {
      if((OrderSelect(i,SELECT_BY_POS)==true)
      && (OrderType()==0))
       {
       otkbuy++;                              // Îòêðûòûõ ïîêóïîê
       }
     }
   for(i=0; i<OrdersTotal(); i++)
     {
      if((OrderSelect(i,SELECT_BY_POS)==true)
      && (OrderType()==2))
       {
       otlbuy++;                              // Îòëîæåííûõ ïîêóïîê
       }
     }
   for(i=0; i<OrdersTotal(); i++)
     {
      if((OrderSelect(i,SELECT_BY_POS)==true)
      && (OrderType()==1))
       {
       otksell++;                             // Îòêðûòûõ ïðîäàæ
       }
     }
   for(i=0; i<OrdersTotal(); i++)
     {
      if((OrderSelect(i,SELECT_BY_POS)==true)
      && (OrderType()==3))
       {
       otlsell++;                             // Îòëîæåííûõ ïðîäàæ
       }
     }
// Î÷èñòêà ëèøíèõ îðäåðîâ íà ïîêóïêó
if((otkbuy==0) && (otlbuy<=5))
   {
   closebuy();
   }
// Î÷èñòêà ëèøíèõ îðäåðîâ íà ïðîäàæè
if((otksell==0) && (otlsell<=5))
   {
   closesell();
   }
// Ìîäèôèêàöèÿ îòëîæåííûõ îðäåðîâ íà ïîêóïêó
   otkbuy=0;
   otlbuy=0;
   otksell=0;
   otlsell=0;
   olbuy=0;
   olsell=0;
   oldbuy=0;
   oldsell=0; 
   return(0);
  }
//+------------------------------------------------------------------+

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