You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
I use this function:
void BuySample3()
{
//--- 3. example of buying at the specified symbol with specified SL and TP
double volume=0.1; // specify a trade operation volume
string symbol="EURUSD"; //specify the symbol, for which the operation is performed
int digits=(int)SymbolInfoInteger(symbol,SYMBOL_DIGITS); // number of decimal places
double point=SymbolInfoDouble(symbol,SYMBOL_POINT); // point
double bid=SymbolInfoDouble(symbol,SYMBOL_BID); // current price for closing LONG
double SL=bid-200*point; // unnormalized SL value
SL=NormalizeDouble(SL,digits); // normalizing Stop Loss
double TP=bid+200*point; // unnormalized TP value
TP=NormalizeDouble(TP,digits); // normalizing Take Profit
//--- receive the current open price for LONG positions
double open_price=SymbolInfoDouble(symbol,SYMBOL_ASK)+1.2;
Print("UWAGA ",open_price);
string comment=StringFormat("Buy %s %G lots at %s, SL=%s TP=%s",
symbol,volume,
DoubleToString(open_price,digits),
DoubleToString(SL,digits),
DoubleToString(TP,digits));
if(!trade.Buy(volume,symbol,open_price,SL,TP,comment))
{
//--- failure message
Print("Buy() method failed. Return code=",trade.ResultRetcode(),
". Code description: ",trade.ResultRetcodeDescription());
}
else
{
Print("Buy() method executed successfully. Return code=",trade.ResultRetcode(),
" (",trade.ResultRetcodeDescription(),")");
}
//---
}
But when I test used wrong opening price:
double open_price=SymbolInfoDouble(symbol,SYMBOL_ASK)+1.2;
It still open positions ... I tried to use a function:
int deviation=1;
trade.SetDeviationInPoints(deviation);
, but it did not help.
What should I do to get the effect: when I try to open using wrong opening value the program does not open position?