Expert Advisor Programming by Andrew R. Young
Expert Advisor Programming by Andrew R. Young
Expert Advisor Programming by Andrew R. Young
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
EXPERT ADVISOR PROGRAMMING<br />
ClosePrice = Bid;<br />
Closed = OrderClose(BuyTicket,CloseLots,ClosePrice,UseSlippage,Red);<br />
// Error handling<br />
if(Closed == false)<br />
{<br />
ErrorCode = GetLastError();<br />
ErrDesc = ErrorDescription(ErrorCode);<br />
ErrAlert = StringConcatenate("Close Buy Order - Error ",ErrorCode,<br />
": ",ErrDesc);<br />
Alert(ErrAlert);<br />
}<br />
}<br />
ErrLog = StringConcatenate("Bid: ",Bid," Lots: ",LotSize," Ticket: ",<br />
BuyTicket);<br />
Print(ErrLog);<br />
while(IsTradeContextBusy()) Sleep(10);<br />
RefreshRates();<br />
SellTicket = OrderSend(Symbol(),OP_SELL,LotSize,Bid,UseSlippage,0,0,<br />
"Sell Order", MagicNumber,0,Red);<br />
// Error handling<br />
if(SellTicket == -1)<br />
{<br />
ErrorCode = GetLastError();<br />
ErrDesc = ErrorDescription(ErrorCode);<br />
ErrAlert = StringConcatenate("Open Sell Order - Error ",ErrorCode,<br />
": ",ErrDesc);<br />
Alert(ErrAlert);<br />
}<br />
ErrLog = StringConcatenate("Bid: ",Bid," Lots: ",LotSize);<br />
Print(ErrLog);<br />
else<br />
{<br />
OrderSelect(SellTicket,SELECT_BY_TICKET);<br />
OpenPrice = OrderOpenPrice();<br />
StopLevel = MarketInfo(Symbol(),MODE_STOPLEVEL) * Point;<br />
RefreshRates();<br />
UpperStopLevel = Ask + StopLevel;<br />
LowerStopLevel = Bid - StopLevel;<br />
MinStop = 5 * UsePoint;<br />
if(StopLoss > 0) double SellStopLoss = OpenPrice + (StopLoss * UsePoint);<br />
164