# OrderCalcProfit : what's the profit variable ?

10530

Hi !

I don't get it, what's the variable profit for obtaining the profit value ? I thought it was a function that calculate the profit based on the opening, closing price & volume.

```bool  OrderCalcProfit(
ENUM_ORDER_TYPE       action,           // type of the order (ORDER_TYPE_BUY or ORDER_TYPE_SELL)
string                symbol,           // symbol name
double                volume,           // volume
double                price_open,       // open price
double                price_close,      // close price
double&               profit            // variable for obtaining the profit value
);```
930

blouf:

Hi !

I don't get it, what's the variable profit for obtaining the profit value ? I thought it was a function that calculate the profit based on the opening, closing price & volume.

yes it is.
10530

belido:
yes it is.
So what's the profit variable ?
22832

blouf:
So what's the profit variable ?
This is the returned value with profit in your account currency.
930

blouf:
So what's the profit variable ?
the profit variable is a variable name you choose where the result will be put in it.
10530

belido:
the profit variable is a variable name you choose where the result will be put in it.

Ok thank !

May you know a function that tell max lot size buyable/sellable for the account ?

930

blouf:

Ok thank !

May you know a function that tell max lot size buyable/sellable for the account ?

that is also i am looking for advice in MQL5. In MQL4 potential lot size can be calculated by AccountFreeMargin()/MarketInfo(Symbol(),MODE_MARGINREQUIRED). And maximum lot for a broker can be calculated  from MarketInfo(Symbol(),MODE_MAXLOT)
Moderator
33778

```   MqlTick tick;
double margin;
double maxLots=AccountInfoDouble(ACCOUNT_FREEMARGIN)/margin;
printf("Margin =%f FreeMargin=%f Max lots to buy=%f",margin,AccountInfoDouble(ACCOUNT_FREEMARGIN),maxLots);
```
930

angevoyageur:

Thanks friend.

It works

and answering blouf, max lot (broker restriction)

`SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MAX)`
10530

angevoyageur:

Thanks !

@belido : yep, just return the max buyable lots for the symbol, not for the current account