[← MQLArticles](../README.md) # RM Risk management library: position sizing, SL/TP calculation, OCO orders and account-level loss/profit limits. ## Main features - Lot size and SL/TP calculation based on account risk (`CRiskManagemet`). - Personal and prop-firm risk profiles (`CRiskManagemetPersonal`, `CRiskManagemetPropFirm`). - Max loss / max profit limits (daily, weekly, monthly, since peak) with automatic position closing — see [LossProfit](./LossProfit/README.md) for the full inheritance model. - OCO (one-cancels-other) order linking. - Per-account order/position tracking (`COrderGestor`, `CTicketsTable`). ## Basic usage ### Risk management ```mql5 CRiskManagemet rm; // Note: "rm" requires the lot, type, max profit and max loss to be reset (etc.) // before calling functions like GetSL, GetLote, etc. // Check if a limit was hit if(g_loss_profit_manager.MaxLossIsSuperated()) { risk.CloseAllPositions(); CanTrade = false; } // Lot size double entry_price = 1000.0; double l = risk.GetLote(ORDER_TYPE_BUY, entry_price, 100, 0); // Stop loss long sl = risk.GetSL(ORDER_TYPE_BUY, entry_price, 100, 0); // And more: GetPositionsTotal, SetStopLoss, CloseAllOrders, GetPositions... ``` ### OCO order ```mql5 COcoOrder oco; void Function() { unsigned long ticket1 = trade.ResultOrder(); unsigned long ticket2 = trade.ResultOrder(); oco.AddOrders(ticket1, ticket2); } ``` > Only the most representative classes are shown here. See [LossProfit/README.md](./LossProfit/README.md) for the max loss/profit inheritance structure.