<code>/* open = iOpen (symb,PERIOD_CURRENT,1); close = iClose(symb,PERIOD_CURRENT,1); high = iHigh (symb,PERIOD_CURRENT,1); low = iLow (symb,PERIOD_CURRENT,1); */ open = Open [1]; close = Close[1]; high = High [1]; low = Low [1]; </code>
for(int i=OrdersTotal()-1;i>=0;i--)
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
if(OrderMagicNumber()==MagicNumber)
if(OrderSymbol()==Symbol())
{
op = NormalizeDouble(OrderOpenPrice(),Digits());
tp = NormalizeDouble(OrderTakeProfit(),Digits());
lt = NormalizeDouble(OrderLots(),2);
tk = OrderTicket();
//---
if(OrderType()==OP_BUY)
{
if(b>0 && TakeProfit!=0 && Bid>=op + TakeProfit * Point)
if(OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),Slippage,clrNONE))
Print("Virt TP Buy");
else
Print("Order Buy Close by TP error #",GetLastError());
//---
if(b>=CountAverage)
if(tk==BuyPriceMaxTic || tk==BuyPriceMinTic)
if(Bid<=AwerageBuyPrice)
if(OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),Slippage,clrNONE))
Print("Virt TP Buy");
else
Print("Order Buy Close by Awerage error #",GetLastError());
}
//------
if(OrderType()==OP_SELL)
{
if(s>0 && TakeProfit!=0 && Ask<=op - TakeProfit * Point)
if(OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),Slippage,clrNONE))
Print("Virt TP Buy");
else
Print("Order Buy Close by TP error #",GetLastError());
//---
if(s>=CountAverage)
if(tk==SelPriceMaxTic || tk==SelPriceMinTic)
if(Ask>=AwerageSelPrice)
if(OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),Slippage,clrNONE))
Print("Virt TP Sell");
else
Print("Order Sell Close by Awerage error #",GetLastError());
}
}
}
kvashnin007