Correct lot value by currency pair/indexes/stocks

 

Hello,

I'm a bit confused when it comes about calculating lot value as long as I have a fixed profit target per transaction.

Supposing I have following:

double tp = Bid +  (80 + spread)* Point;
double profit= AccountBalance() * 0.1 / 100.0;
double lot = (profit/(spread +80) /(SymbolInfoDouble(Symbol(), SYMBOL_TRADE_TICK_VALUE)));
OrderSend(Symbol(),OP_BUY,lot,Ask,0,NULL,tp);

So I put my take profit 80 points higher than Ask value.

Profit is always 0.1% from my total amount. 

This is working pretty well for any currency pair (EUR/USD , NZD/USD etc..).

However, when I try to make the same transaction for PLATINNUM , the value of lot should be higher for 80 points,that increase the risk to lose faster and it's getting confusing for me.

How to keep the same proportion for commodities and stocks ? Maybe use ATR ? Or maybe check the average of candle body size ?


Thanks a lot

Iulian

 
For MT4: Risk depends on your initial stop loss, lot size, and the value of the pair.
  1. 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.
  2. 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.)
  3. 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.
              MODE_TICKVALUE is not reliable on non-fx instruments with many brokers.
  4. You must normalize lots properly and check against min and max.
  5. 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.
Reason: