Why StopLoss and TakeProfit oftenly have big integer values?

 

Hello folks I have the following sample code taken from internet...

input int StopLoss = 1000;
input int TakeProfit = 1000;
...
double positionOpenPrice = PositionGetDouble(POSITION_PRICE_OPEN);
if (StopLoss > 0)
        request.sl = positionOpenPrice - (StopLoss * _Point);
if (TakeProfit > 0)
        request.tp = positionOpenPrice + (TakeProfit * _Point);
if (request.sl > 0 || request.tp > 0)
        OrderSend(request, result);

I would like to know why the StopLoss value is oftently given like that?

I think should be better, say something like (for a buy order): if the stop loss will be 100 pips, then:

request.sl = positionOpenPrice - 0.0100;

Is there some convention to deal with that nomenclature?

input int StopLoss = 1000;
input int TakeProfit = 1000;

Thanks in advance, Cyberglassed.

 

Because the price your broker provieded maybe 5 or 4 digits. So the point maybe 0.00001 or 0.0001.

 

And  You can use the following commands:

int OnInit()
{
int mydigit=1;
 if (_Digits== 3 || _Digits == 5 )
    mydigit=10;

}

...
int stoploss=StopLoss*mydigit;
int takeprofit=TakeProfit*mydigit;  
 
cyberglassed:

Hello folks I have the following sample code taken from internet...

I would like to know why the StopLoss value is oftently given like that?

I think should be better, say something like (for a buy order): if the stop loss will be 100 pips, then:

Is there some convention to deal with that nomenclature?

Thanks in advance, Cyberglassed.

It's an input for the user to set . . .  this would be better, try it . . .

input int StopLoss = 1000;   // How many points for the SL ?
input int TakeProfit = 1000; // How many points for the TP ?
 
Thank you!
 
The SL or TP is given in Points.

An automated adjustment would look like this:

double sl = StopLoss * Point();
 
        request.sl = positionOpenPrice - (StopLoss * _Point);

        request.tp = positionOpenPrice + (TakeProfit * _Point);

You buy at the Ask and sell at the Bid. Pending Buy Stop orders become market orders when hit and open at the Ask.

  1. Your buy order's TP/SL (or Sell Stop's/Sell Limit's entry) are triggered when the Bid / OrderClosePrice reaches it. Using Ask±n, makes your SL shorter and your TP longer, by the spread. Don't you want the specified amount used in either direction?

  2. Your sell order's TP/SL (or Buy Stop's/Buy Limit's entry) will be triggered when the Ask / OrderClosePrice reaches it. To trigger close to a specific Bid price, add the average spread.
              MODE_SPREAD (Paul) - MQL4 programming forum - Page 3 #25

  3. The charts show Bid prices only. Turn on the Ask line to see how big the spread is (Tools → Options (control+O) → charts → Show ask line.)
    Most brokers with variable spreads widen considerably at end of day (5 PM ET) ± 30 minutes. My GBPJPY shows average spread = 26 points, but average maximum spread = 134 (your broker will be similar).

Reason: