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(); }