What are you using for price?
Here is my code.... most of which was Cut and pasted...LOL
I have checked it and just don't see what is wrong....
open_cnt = ticket_count();
if(open_cnt == 0)
{
if(dir == "BUY" || dir == "buy" || dir == "Buy")
{
ticket=OrderSend(Symbol(), OP_BUY, Lots, Ask, 3, Ask-(StopLoss*Point), 0, "Open Buy "+MagicNumber, MagicNumber, 0, Green);
Print(" Buy Price ", Ask);
if(ticket>0)
{
if(OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES))
Print("BUY order opened : ", OrderOpenPrice());
else
Print("Error opening BUY order : ", GetLastError());
}
}
if(dir == "SELL" || dir == "sell" || dir == "Sell")
{
ticket=OrderSend(Symbol(), OP_SELL, Lots,Bid, 3, Bid+(StopLoss*Point), 0, "Open Sell "+MagicNumber, MagicNumber, 0, Red);
Print(" Sell Price ", Bid);
if(ticket>0)
{
if(OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES))
Print("SELL order opened : ", OrderOpenPrice());
}
else
Print("Error opening SELL order : ", GetLastError());
}
}
return(0);
}
I have checked it and just don't see what is wrong....
open_cnt = ticket_count();
if(open_cnt == 0)
{
if(dir == "BUY" || dir == "buy" || dir == "Buy")
{
ticket=OrderSend(Symbol(), OP_BUY, Lots, Ask, 3, Ask-(StopLoss*Point), 0, "Open Buy "+MagicNumber, MagicNumber, 0, Green);
Print(" Buy Price ", Ask);
if(ticket>0)
{
if(OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES))
Print("BUY order opened : ", OrderOpenPrice());
else
Print("Error opening BUY order : ", GetLastError());
}
}
if(dir == "SELL" || dir == "sell" || dir == "Sell")
{
ticket=OrderSend(Symbol(), OP_SELL, Lots,Bid, 3, Bid+(StopLoss*Point), 0, "Open Sell "+MagicNumber, MagicNumber, 0, Red);
Print(" Sell Price ", Bid);
if(ticket>0)
{
if(OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES))
Print("SELL order opened : ", OrderOpenPrice());
}
else
Print("Error opening SELL order : ", GetLastError());
}
}
return(0);
}
Error 129:
Invalid bid or ask price, perhaps, unnormalized price. After 5-second (or more) delay, it is necessary to refresh data using the RefreshRates function and make a retry. If the error does not disappear, all attempts to trade must be stopped, the program logic must be changed.
Maybe you have stale prices...
if(open_cnt == 0)
{
RefreshRates(); // add this line
Ok.. I had that in my close order code but not in my open order, I'll give it a
try...
thanks for you input..
david
thanks for you input..
david
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
thanks in advance
david