Expert Advisor Programming by Andrew R. Young
Expert Advisor Programming by Andrew R. Young
Expert Advisor Programming by Andrew R. Young
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
EXPERT ADVISOR PROGRAMMING<br />
string ErrAlert = StringConcatenate("Open Sell Stop Order - Error ",ErrorCode,<br />
": ",ErrDesc);<br />
Alert(ErrAlert);<br />
}<br />
string ErrLog = StringConcatenate("Ask: ",MarketInfo(argSymbol,MODE_ASK),<br />
" Lots: ",argLotSize," Price: ",argPendingPrice," Stop: ",argStopLoss,<br />
" Profit: ",argTakeProfit," Expiration: ",TimeToStr(argExpiration));<br />
Print(ErrLog);<br />
}<br />
return(Ticket);<br />
double PipPoint(string Currency)<br />
{<br />
int CalcDigits = MarketInfo(Currency,MODE_DIGITS);<br />
if(CalcDigits == 2 || CalcDigits == 3) double CalcPoint = 0.01;<br />
else if(CalcDigits == 4 || CalcDigits == 5) CalcPoint = 0.0001;<br />
return(CalcPoint);<br />
}<br />
int GetSlippage(string Currency, int SlippagePips)<br />
{<br />
int CalcDigits = MarketInfo(Currency,MODE_DIGITS);<br />
if(CalcDigits == 2 || CalcDigits == 4) double CalcSlippage = SlippagePips;<br />
else if(CalcDigits == 3 || CalcDigits == 5) CalcSlippage = SlippagePips * 10;<br />
return(CalcSlippage);<br />
}<br />
bool CloseBuyOrder(string argSymbol, int argCloseTicket, double argSlippage)<br />
{<br />
OrderSelect(argCloseTicket,SELECT_BY_TICKET);<br />
if(OrderCloseTime() == 0)<br />
{<br />
double CloseLots = OrderLots();<br />
while(IsTradeContextBusy()) Sleep(10);<br />
double ClosePrice = MarketInfo(argSymbol,MODE_BID);<br />
bool Closed = OrderClose(argCloseTicket,CloseLots,ClosePrice,argSlippage,Green);<br />
if(Closed == false)<br />
{<br />
int ErrorCode = GetLastError();<br />
string ErrDesc = ErrorDescription(ErrorCode);<br />
string ErrAlert = StringConcatenate("Close Buy Order - Error: ",ErrorCode,<br />
": ",ErrDesc);<br />
Alert(ErrAlert);<br />
184