Basic GridManager Library – library MetaTrader 5

The library contains basic public methods to manage grids:

public:
                     GridManager(ENUM_GRID_DIRECTION direction, double grid_initial_lot_size, int grid_gap_points, double grid_profit_percent);
                    ~GridManager() {};
   void              SetGridMagicNumber(ulong magic);
   void              SetGridMaxDD(double max_dd_percent);
   void              SetGridMultiplier(double lot_multiplier);
   void              Start(void);
   void              Update(void);
   void              CloseGrid();
   double            GridPnL();
   int               CountPositions();

In above code:

  • MaxDD stands for “maximum allowed drawdown”. This value is disabled by default but using the Set method will activate it. This is a value in %balance.
  • Start method starts a new grid if it is not already running.
  • Update checks for new entries and possible exits.

This is a sample code of EA operating based on GridManager Object:

#include <GridManager.mqh>
GridManager *buy_grid;

int OnInit()
  {
   buy_grid = new GridManager(GRID_BUY, 0.01, 100, 1);
   buy_grid.SetGridMagicNumber(100); 
   buy_grid.SetGridMultiplier(1.5); 
   buy_grid.SetGridMaxDD(5);
   return(INIT_SUCCEEDED);
  }

void OnDeinit(const int reason)
  {
   delete buy_grid;
  }

void OnTick(void)
  {
   bool buy_condition=true;
   if(buy_condition)
      buy_grid.Start();
   buy_grid.Update();
  }

    📈 ROBOTFX MetaTrader Expert Advisors and Indicators to maximize profits and minimize the risks