time_open_1_01

Author: Qstr © 2018
Orders Execution
Checks for the total of open ordersIt automatically opens orders when conditions are reached
0 Views
0 Downloads
0 Favorites
time_open_1_01
ÿþ//+------------------------------------------------------------------+

//|                                                time_open_1_0.mq4 |

//|                                                    Qstr © 2018 |

//|                                                  http://qstr.ru/ |

//+------------------------------------------------------------------+

#property copyright "Qstr © 2018"

#property link      "http://qstr.ru/"

#property strict

extern string vline_name="time";

extern double Lots=0.1; //@01>G89 ;>B

extern int TP=500; //B59: ?@>D8B

extern int SL=200; //AB>? ;>AA

extern datetime Open_Time=D'01.09.2018 13:00'; //2@5<O >B:@KB8O >@45@>2

datetime Close_Time=D'01.09.2018 13:00'; //2@5<O 70:@KB8O >@45@>2

extern int time_op = 11; // @5<O 687=8 =5>B:@KB>3> >@45@0

extern int slippage =2;  //C@>25=L 4>?CAB8<>3> @5:2>B0

extern int MagicNumber=5345; //<038G5A:>5 G8A;> >@45@>2

extern bool Open_Sell_Stop=True; //2:;NG5=85/2K:;NG5=85 @01>BK A sell stop->@45@0<8

extern bool Open_Buy_Stop=True;  //2:;NG5=85/2K:;NG5=85 @01>BK A buy stop->@45@0<8

extern bool Open_Sell=false; //2:;NG5=85/2K:;NG5=85 @01>BK A sell->@45@0<8

extern bool Open_Buy=false;  //2:;NG5=85/2K:;NG5=85 @01>BK A buy->@45@0<8

extern bool Open_Sell_Limit=false; //2:;NG5=85/2K:;NG5=85 @01>BK A sell limit->@45@0<8

extern bool Open_Buy_Limit=false;  //2:;NG5=85/2K:;NG5=85 @01>BK A buy limit->@45@0<8

extern int  Open_Level=300; //C@>25=L >B40;5=8O >B F5=K, =0 :>B>@>< AB028< >B;>65==K9 >@45@



//+------------------------------------------------------------------+

//| expert initialization function                                   |

//+------------------------------------------------------------------+

int init()

  {

//----



//----

   return(0);

  }

//+------------------------------------------------------------------+

//| expert deinitialization function                                 |

//+------------------------------------------------------------------+

int deinit()

  {

//----

  

//----

   return(0);

  }

  

  

//+------------------------------------------------------------------+

//| expert start function                                            |

//+------------------------------------------------------------------+

int start()

  {

//----





//+----------------------------------------------------------------------------------------------+

//|                              ?>8A: >B:@KBKE >@45@>2 ?> ?0@5                                  |

    bool pos_sell=false;

  for (int i_op_sell=OrdersTotal()-1; i_op_sell>=0; i_op_sell--)

  {

   if (!OrderSelect(i_op_sell,SELECT_BY_POS,MODE_TRADES)) break;

   if (Symbol()==OrderSymbol()

   &&(OrderType()==OP_SELL||OrderType()==OP_SELLSTOP||OrderType()==OP_SELLLIMIT)

   &&(OrderMagicNumber()==MagicNumber)

   &&MathFloor(OrderOpenTime()/60)==TimeCurrent()/60)

   {

    pos_sell=true; break;  

   }

  }

    

    bool pos_buy=false;

  for (int i_op_buy=OrdersTotal()-1; i_op_buy>=0; i_op_buy--)

  {

   if (!OrderSelect(i_op_buy,SELECT_BY_POS,MODE_TRADES)) break;

   if (Symbol()==OrderSymbol()

   &&(OrderType()==OP_BUY||OrderType()==OP_BUYSTOP||OrderType()==OP_BUYLIMIT)

   &&(OrderMagicNumber()==MagicNumber)

    &&MathFloor(OrderOpenTime()/60)==TimeCurrent()/60)

   {

    pos_buy=true; break;  

   }

  }    

//|                              ?>8A: >B:@KBKE >@45@>2 ?> ?0@5                                  |

//+----------------------------------------------------------------------------------------------+

//+--------------------------------------------+

//|               @0AGQB TP 8 SL               |    

  double sl_buy, sl_sell, tp_buy, tp_sell

  

         ,sl_buy_stop, sl_sell_stop,

         tp_buy_stop, tp_sell_stop

        

         ,sl_buy_limit, sl_sell_limit,

         tp_buy_limit, tp_sell_limit;

  if(!SL)

  {

   sl_buy=0;

   sl_sell=0;

  

   sl_buy_stop=0;

   sl_sell_stop=0;

  

   sl_buy_limit=0;

   sl_sell_limit=0;        

  }

  else

  {

   sl_buy=Bid-SL*Point;

   sl_sell=Ask+SL*Point;

  

   sl_buy_stop=Bid+Open_Level*Point-SL*Point;

   sl_sell_stop=Ask-Open_Level*Point+SL*Point;  

  

   sl_buy_limit=Bid-Open_Level*Point-SL*Point;

   sl_sell_limit=Ask+Open_Level*Point+SL*Point;    

  }



  if(!TP)

  {

   tp_buy=0;

   tp_sell=0;

  

   tp_buy_stop=0;

   tp_sell_stop=0;  

  

   tp_buy_limit=0;

   tp_sell_limit=0;    

  }

  else

  {

   tp_buy=Bid+TP*Point;

   tp_sell=Ask-TP*Point;

  

   tp_buy_stop=Bid+Open_Level*Point+TP*Point;

   tp_sell_stop=Ask-Open_Level*Point-TP*Point;    

  

   tp_buy_limit=Bid-Open_Level*Point+TP*Point;

   tp_sell_limit=Ask+Open_Level*Point-TP*Point;    

  }  

//|               @0AGQB TP 8 SL               |    

//+--------------------------------------------+





//+-----------------------------------------------------------------------------------------------------------+

//|                                                >B:@KB85 >@45@>2                                           |

 

// 0:><5=B8@>20=> 2KAB02;5=85 2@5<5=8 25@B8:0;L=>9 ;8=859. 8=8N =0720BL time

 

 //  if(ObjectFind(vline_name)==-1)return(0);  

 //  datetime t=ObjectGet(vline_name,OBJPROP_TIME1);

//   if(t/60==TimeCurrent()/60 ) 

  

   if((Open_Time)/60 == TimeCurrent()/60 )     

        

  

{

 // Alert("@5<O 2KAB02;5=8O >@45@>2 -" ) ;

  if(!pos_buy)

  {

   if(Open_Buy)

   {

    OrderSend(Symbol(), OP_BUY, Lots, Ask, slippage, sl_buy,tp_buy, "time_open", MagicNumber, 0, NULL);  

   }

   if(Open_Buy_Stop)

   {

   Close_Time = Open_Time + 60*time_op;

    OrderSend(Symbol(), OP_BUYSTOP, Lots, Ask+Open_Level*Point, slippage, sl_buy_stop,tp_buy_stop,

    "time_open", MagicNumber, Close_Time, NULL);      

   }

  

   if(Open_Buy_Limit)

   {

    OrderSend(Symbol(), OP_BUYLIMIT, Lots, Ask-Open_Level*Point, slippage, sl_buy_limit,tp_buy_limit,

    "time_open", MagicNumber, 0, NULL);      

   }  

  }

  

  if(!pos_sell)

  {

   if(Open_Sell)

   {

    OrderSend(Symbol(), OP_SELL, Lots, Bid, slippage, sl_sell, tp_sell, "time_open", MagicNumber, 0, NULL);

   }

  

   if(Open_Sell_Stop)

   {

    OrderSend(Symbol(), OP_SELLSTOP, Lots, Bid-Open_Level*Point,slippage, sl_sell_stop, tp_sell_stop,

    "time_open", MagicNumber, Close_Time, NULL);  

   }

  

   if(Open_Sell_Limit)

   {  

    OrderSend(Symbol(), OP_SELLLIMIT, Lots, Bid+Open_Level*Point,slippage, sl_sell_limit, tp_sell_limit,

    "time_open", MagicNumber, 0, NULL);    

   }    

  }  

}

int close_sellstop,close_buystop,cnt,total=OrdersTotal();

    for(cnt=0;cnt<total;cnt++)

     {

      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

      if(OrderType()<=OP_SELL && OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)

        {

         if(OrderType()==OP_BUY)

           {

            if(OrderOpenPrice()>0)

                {

                 Print("buy opened");

                 yDeleteOrder(5);

                 

                }

           }

         if(OrderType()==OP_SELL) 

           {

            if(OrderOpenPrice()>0)

                {

                 Print("Sell opened");

                 yDeleteOrder(4);

                }

           }

        }

     }



//|                                                >B:@KB85 >@45@>2                                           |

//+-----------------------------------------------------------------------------------------------------------+





//----

   return(0);

  }

//+------------------------------------------------------------------+

int yDeleteOrder(int type)

{

   for( int i=1; i<OrdersTotal(); i++)          

      {

         if(OrderSelect(i-1,SELECT_BY_POS)) 

            {                                       

               if(OrderType()==type && OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)

                  {

                     OrderDelete(OrderTicket()); 

                  }//if

  

           }//if

      }

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