Orders Execution
0
Views
0
Downloads
0
Favorites
newgrid_001
#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_absolute = 0.0050 ;
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_absolute, "Buy(#" + 1 + ")", 1, 0, DodgerBlue) ;
}
if(Entertradesell==1)
{
double Ticket2 = OrderSend(Symbol(), OP_SELL, Lots, Bid, slip, 0, Bid-TP_absolute, "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_absolute) ;
if(OrdersTotal() >= max_trades)
Comment("I am full, I have ", max_trades, " positions opened");
return(0);
}
//+------------------------------------------------------------------+
Comments
Markdown Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---