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.
Appendix B<br />
if(TakeProfit > 0) double SellTakeProfit = OpenPrice -<br />
(TakeProfit * UsePoint);<br />
if(SellStopLoss > 0 && SellStopLoss < UpperStopLevel)<br />
{<br />
SellStopLoss = UpperStopLevel + MinStop;<br />
}<br />
if(SellTakeProfit > 0 && SellTakeProfit > LowerStopLevel)<br />
{<br />
SellTakeProfit = LowerStopLevel - MinStop;<br />
}<br />
if(IsTradeContextBusy()) Sleep(10);<br />
if(SellStopLoss > 0 || SellTakeProfit > 0)<br />
{<br />
TicketMod = OrderModify(SellTicket,OpenPrice,SellStopLoss,<br />
SellTakeProfit,0);<br />
// Error handling<br />
if(TicketMod == false)<br />
{<br />
ErrorCode = GetLastError();<br />
ErrDesc = ErrorDescription(ErrorCode);<br />
ErrAlert = StringConcatenate("Modify Sell Order - Error ",<br />
ErrorCode,": ",ErrDesc);<br />
Alert(ErrAlert);<br />
}<br />
}<br />
}<br />
ErrLog = StringConcatenate("Ask: ",Ask," Bid: ",Bid," Ticket: ",<br />
SellTicket," Stop: ",SellStopLoss," Profit: ",SellTakeProfit);<br />
Print(ErrLog);<br />
BuyTicket = 0;<br />
}<br />
return(0);<br />
}<br />
// Pip Point Function<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 />
165