newgrid_002

Author: Expert for tests
Orders Execution
Checks for the total of open ordersIt automatically opens orders when conditions are reached
0 Views
0 Downloads
0 Favorites
newgrid_002
#property copyright "Expert for tests"

extern double Lots = 0.1 ;
extern int max_trades = 10 ;
extern int grid_lines = 30 ;
extern double RangeMid = 1.5465 ;
extern double grid_separation = 0.0100 ;
extern double TP = 50 ;
extern int slip = 3 ;
   
int BarCount;
int Current;
bool TickCheck = False;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init() {

   return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit() {
   return(0);
}
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start() {
 
   int Entertradebuy =0 ;
   int Entertradesell =0 ;
   double level ;
   
   if(OrdersTotal()==0)
   GlobalVariableSet("level", 0) ; 
   
    level=GlobalVariableGet("level") ;
   
   if(OrdersTotal()<max_trades)
   {
  for (int i = 1; i<grid_lines; i++)
   
   {
   if (Ask == RangeMid - grid_separation*i && level != RangeMid - grid_separation*i)
   {
   GlobalVariableSet("level", RangeMid - grid_separation*i) ;
   Entertradebuy=1 ;
   }
   if (Bid == RangeMid + grid_separation*i && level != RangeMid + grid_separation*i)
   {
   GlobalVariableSet("level", RangeMid + grid_separation*i) ;
   Entertradesell=1 ; 
   Print(i);
   }
   }
   }
  
   
   if(Entertradebuy==1)
   {
   double Ticket1 = OrderSend(Symbol(), OP_BUY, Lots, Ask, 5, 0, Ask+TP*Point, "Buy(#" + 1 + ")", 1, 0, DodgerBlue) ;         
   }
   
   
   if(Entertradesell==1)
   {
   double Ticket2 = OrderSend(Symbol(), OP_SELL, Lots, Bid, slip, 0, Bid-TP*Point, "Sell(#" + 1 + ")", 1, 0, DeepPink) ;
   }
   
for (i = 1; i<grid_lines; i++)
{
if(Ask - (RangeMid - grid_separation*i) < grid_separation && level != RangeMid - grid_separation*i)
GlobalVariableSet("next_level", RangeMid - grid_separation*i) ;
if(RangeMid + grid_separation*i - Bid < grid_separation && level != RangeMid + grid_separation*i)
GlobalVariableSet("next_level", RangeMid + grid_separation*i) ;
}

double next_level=GlobalVariableGet("next_level") ;

if(OrdersTotal() < max_trades)
Comment("I am trading a grid from ", RangeMid-grid_separation*grid_lines, " to ", RangeMid+grid_separation*grid_lines, "\n",
        "closest grid line to enter trade is ", next_level , "\n", 
        "distance between grid lines is ", grid_separation*10000, " pips", "\n",
        "number of grid lines is ", grid_lines, "\n",
        "maximum number of trades is ", max_trades, "\n",
        "TP is ", TP) ;     
        
if(OrdersTotal() >= max_trades)
Comment("I am full, I have ", max_trades, " positions opened");
        

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