for(i=OrdersTotal()-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderMagicNumber()==Magic && OrderType()==OP_SELL)
{
// найдем линию для этого ордера
double line_price_sell = 0;
if(ObjectFind(0,"SS"+(string)OrderTicket()))
line_price_sell = ObjectGetDouble(0,"SS"+(string)OrderTicket(),OBJPROP_PRICE,0);
// линия есть и мы ее пересекли ценой - pfrhjtvcz
if(line_price_sell>0 && Bid>=line_price_sell) {
RefreshRates();
ticket=OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Black);
if(ticket) {
Alert("Закрыт ордер Sell ",OrderTicket()," прибыль ",OrderProfit()," ",TimeToStr(TimeCurrent(),TIME_SECONDS));
ObjectDelete(0,"SS"+(string)OrderTicket()); // незабудем удалить линию
}
if(ticket<0) {Print("Ошибка ",err," закрытия ордера Sell ",GetLastError()); RefreshRates(); return;}
}
// линии еще нет, но условия для ее создания есть - нарисуем ее.
if(Close[1]>Ma10 && line_price_sell == 0)
{
ObjectCreate("SS"+(string)OrderTicket(),OBJ_HLINE,0,0,High[1]+Delta*Point);
ObjectSet("SS"+(string)OrderTicket(),OBJPROP_COLOR,Red);
ObjectSet("SS"+(string)OrderTicket(),OBJPROP_STYLE,STYLE_SOLID);
ObjectSet("SS"+(string)OrderTicket(),OBJPROP_WIDTH,1);
ObjectSet("SS"+(string)OrderTicket(),OBJPROP_RAY,false);
WindowRedraw();
}
}
}
}