Альтернатива TP

 
Думаю можно....
 
{ for(int i=1; i<=OrdersTotal(); i++)          
   { if (OrderSelect(i-1,SELECT_BY_POS,MODE_TRADES)==true)
  {  if (OrderProfit()>BB)
       if(OrderType()==OP_SELL && OrderSymbol()==Symbol() )
                  {
                     OrderClose(OrderTicket(),OrderLots(),Bid,3);
                  }
 
       if(OrderType()==OP_BUY && OrderSymbol()==Symbol() )
                  {
                     OrderClose(OrderTicket(),OrderLots(),Ask,3);
                  }
                  }return(0);
   }}
 
Что сделать что б это работало?
 
palesandr:
Что сделать что б это работало?
Написать правильно.
 
Может кто-нибуть помочь?
 
palesandr:
Что сделать что б это работало?

на сайте одного хорошего человека есть бесплатный советник . возьмите посмотрите как это сделано там. вопросов на эту тему больше не будет.
 
Спасибо!
 
palesandr:
Можна ли сделать советник, который будет закрывать все ордера при определенном значении общей прибыли?


Элементарно

extern double ProfitClose //это при какой прибыли всё закрыть
extern double pop //количество попыток закрытия
int q;
 
if(OrdersProfit()>=ProfitClose)
      {
         for (int i=OrdersTotal()-1;i>=0;i--)
         {
            bool closed;
            OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
          //закрываем покупку 
            if(OrderType()==OP_BUY) 
            {
                  for(q=0;q<pop;q++)
                  {
                  closed=false;
                  closed=OrderClose(OrderTicket(),OrderLots(),Bid,3,Blue);
                  if(closed==true)q=pop;
                  }
            }
           //закрываем продажу
            if(OrderType()==OP_SELL) 
            {
                  for(q=0;q<pop;q++)
                  {
                  closed=false;
                  closed=OrderClose(OrderTicket(),OrderLots(),Ask,3,Red);
                  if(closed==true)q=pop;
                  }
            }
            Sleep(1000);
//закрываем отложенники, если нужно
            if(OrderType()>1 ) OrderDelete(OrderTicket());
         }
      }

double OrdersProfit()
{
   
  double rezultSymb=0;
  string SMB=Symbol();
  int i;
  for (i=OrdersTotal()-1;i>=0;i--)
   {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == true)
     {
      if(OrderSymbol()!= SMB) continue;
      if(OrderType()==OP_BUY || OrderType()==OP_SELL)
       {
        rezultSymb+=OrderProfit();
       } 
     }
   }
  return(rezultSymb);


}

Как то так.....

Причина обращения: