Author: Copyright 2020, Zakhvatkin Aleksandr
0 Views
0 Downloads
0 Favorites
grid_v2
//+------------------------------------------------------------------+
//|                                                         grid.mq5 |
//|                             Copyright 2020, Zakhvatkin Aleksandr |
//|                              https://www.mql5.com/ru/users/z.a.m |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, Zakhvatkin Aleksandr"
#property link      "https://www.mql5.com/ru/users/z.a.m"
#property version   "1.00"
#property script_show_inputs
//--- input parameters
input double   FixedLot=0.1;    // Fixed lot
input ushort   TakeProfit=200;  // Take profit
input ushort   Grid_step=100;   // Grid step
input ushort   N_orders=10;     // Number of orders in one direction
input ushort   Distance=50;     // Price offset
input bool     LimitGrid=false; // Set a grid of limit orders
//--- include
#include <Trade\Trade.mqh> 
CTrade trade;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   for (int j=1; j<=N_orders; j++)
      {
      if (!LimitGrid)
         {
         double _pricebuy = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK)+Distance*_Point+Grid_step*j*_Point,_Digits);
         double _pricesell = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_BID)-Distance*_Point-Grid_step*j*_Point,_Digits);
         trade.BuyStop(FixedLot,_pricebuy,NULL,0,_pricebuy+TakeProfit*_Point,0,0,NULL);
         trade.SellStop(FixedLot,_pricesell,NULL,0,_pricesell-TakeProfit*_Point,0,0,NULL);
         }
      else
         {
         double _pricebuy = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK)-Distance*_Point-Grid_step*j*_Point,_Digits);
         double _pricesell = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_BID)+Distance*_Point+Grid_step*j*_Point,_Digits);
         trade.SellLimit(FixedLot,_pricesell,NULL,0,_pricesell-TakeProfit*_Point,0,0,NULL);
         trade.BuyLimit(FixedLot,_pricebuy,NULL,0,_pricebuy+TakeProfit*_Point,0,0,NULL);
         }
      }
  }
//+------------------------------------------------------------------+

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