Fix Lot = Balance

 

Hi everyone, I need to create a code for autolot.

But I'm having trouble.

I want to lot based on the bank account that the lot doubles the value when the balance  doubles the value.

EX: Balance = 100 to 199, 0.01, balance 200 to 299 = 0.02, 300 to 399 = 0.03 and so on.

This is my  code for money managment ;  


//+------------------------------------------------------------------+
//|LOTS                                                              |
//+------------------------------------------------------------------+
double Risk_lot(double Stop, double OpenPrice)
{
double Lot=0;
Lot=AccountBalance()*(Risk/10)/Stop;
return (Lot);
}
 
Risk depends on your initial stop loss, lot size, and the value of the pair.
  • You place the stop where it needs to be - where the reason for the trade is no longer valid. E.g. trading a support bounce the stop goes below the support.
  • Account Balance * percent/100 = RISK = OrderLots * (|OrderOpenPrice - OrderStopLoss| * DeltaPerLot + CommissionPerLot) (Note OOP-OSL includes the SPREAD, and DeltaPerLot is usually around $10/pip but it takes account of the exchange rates of the pair vs. your account currency.)
  • Do NOT use TickValue by itself - DeltaPerLot and verify that MODE_TICKVALUE is returning a value in your deposit currency, as promised by the documentation, or whether it is returning a value in the instrument's base currency (EUR, in this case).
              MODE_TICKVALUE is not reliable on non-fx instruments with many brokers.
  • You must normalize lots properly and check against min and max.
  • You must also check FreeMargin to avoid stop out
Most pairs are worth about $10 per PIP. A $5 risk with a (very small) 5 PIP SL is $5/$10/5=0.1 Lots maximum.