Исправил всякие мелкие опечатки, теперь советник работает, не зависает. НО! другая проблема: ордера плодятся, один за другим открываются, теперь походу вообще ничего из этого алгоритма не работает так, как надо. Вообще странно!!!
вот код правильный, исправлены всякие опечатки.
for (int s=OrdersHistoryTotal()-1; s>=0; s--) {
if (OrderSelect (s,SELECT_BY_POS, MODE_HISTORY))
if (OrderProfit() < 0) ubytok += OrderProfit(); }
for (int t=0; t<OrdersTotal(); t++) {
if (OrderSelect (t, SELECT_BY_POS, MODE_TRADES)) profit = OrderProfit();
if (profit >= ubytok + Nado_profit) {
if (OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(), Bid,0);
if (OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(), Ask,0); }}
for (int p=OrdersTotal()-1; p>=0; p--) {
OrderSelect(p,SELECT_BY_POS,MODE_TRADES);
if (OrderType()==OP_BUY && Bid < iOpen(Symbol(),PERIOD_MN1,0)-otstup*Point) {
OrderClose(OrderTicket(),OrderLots(),Bid,0); }
if (OrderType()==OP_SELL && Bid > iOpen(Symbol(),PERIOD_MN1,0)+otstup*Point) {
OrderClose(OrderTicket(),OrderLots(),Ask,0); } }
if (OrdersTotal()==0) {
if (Bid > iOpen(Symbol(),PERIOD_MN1,0)+otstup*Point) OrderSend (Symbol(), OP_BUY, lot, Ask, 0, 0, 0);
if (Bid < iOpen(Symbol(),PERIOD_MN1,0)-otstup*Point) OrderSend (Symbol(), OP_SELL, lot, Bid, 0, 0, 0); }