[Архив!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 2. - страница 13

 
Здравствуйте! неподскажите как сделать в советнике чтоб работал трейлингстоп или безубыток который отдельно от советника работает отлично, но вот с совместно никак??? может у кого нибудь есть какие нибудь примеры таких советников?
 
paukas:

Понял, спасибо. По другому как написать это условие? Надо чтоб закрывал все только если если есть профит.
 
todem:
Здравствуйте! неподскажите как сделать в советнике чтоб работал трейлингстоп или безубыток который отдельно от советника работает отлично, но вот с совместно никак??? может у кого нибудь есть какие нибудь примеры таких советников?
//-------------------------------------------------------------------+
extern bool   Trailing       = True;
extern int    MinProfit      = 55;
extern int    TrailingStop   = 5;
extern int    TrailingStep   = 1;
//-------------------------------------------------------------------+
extern bool   LossKiller     = True;
extern int    MinProfitB     = 21;
extern int    KillLossLevel  = 16;
//-------------------------------------------------------------------+
int start()
  {
//----
   if(LossKiller) KillLoss();
   if(Trailing) TrailPositions();
//+------------------------------------------------------------------+
//|-----------------------// Trail positions //----------------------+
//+------------------------------------------------------------------+
void TrailPositions()
{
  int Orders = OrdersTotal();
  for (int i=0; i<Orders; i++)
  {
    if (!(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))) continue;
    if (OrderSymbol() != Symbol()) continue;
    {    
      if (OrderType() == OP_BUY && OrderMagicNumber() == Magic)  
      {
        if (Bid-OrderOpenPrice() > MinProfit*Point) 
        {
          if (OrderStopLoss() < Bid-(TrailingStop+TrailingStep-1)*Point) 
          {
          OrderModify(OrderTicket(), OrderOpenPrice(), Bid-TrailingStop*Point,OrderTakeProfit(), 0, Gold);           
          }
        }
      }   
      if (OrderType() == OP_SELL && OrderMagicNumber() == Magic)  
      {
        if (OrderOpenPrice()-Ask > MinProfit*Point) 
        {
          if (OrderStopLoss() > Ask+(TrailingStop+TrailingStep-1)*Point) 
          {
          OrderModify(OrderTicket(), OrderOpenPrice(), Ask+TrailingStop*Point,OrderTakeProfit(), 0, Gold);           
          }
        }
      }   
    }   
  }  
}
//+------------------------------------------------------------------+
//|--------------------------// KillLoss //--------------------------+
//+------------------------------------------------------------------+
void KillLoss()
{
  int Orders = OrdersTotal();
  for (int i=0; i<Orders; i++)
  {
    if(!(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))) continue;
    if(OrderSymbol() != Symbol()) continue;
    {    
      if(OrderType()==OP_BUY && (OrderStopLoss()<OrderOpenPrice() || OrderStopLoss()==0) && OrderMagicNumber()==Magic)
      {
        if(Bid-OrderOpenPrice() > MinProfitB*Point) 
        {
          if(OrderStopLoss() < Bid-(KillLossLevel-1)*Point) 
          {
          OrderModify(OrderTicket(), OrderOpenPrice(),OrderOpenPrice()+KillLossLevel*Point,OrderTakeProfit(), 0, Gold);          
          }
        }
      }        
      if(OrderType()==OP_SELL && (OrderStopLoss()>OrderOpenPrice() || OrderStopLoss()==0) && OrderMagicNumber()==Magic)
      {
        if(OrderOpenPrice()-Ask > MinProfitB*Point) 
        {
          if(OrderStopLoss() > Ask+(KillLossLevel-1)*Point) 
          {
          OrderModify(OrderTicket(), OrderOpenPrice(),OrderOpenPrice()-KillLossLevel*Point,OrderTakeProfit(), 0, Gold);          
          }
        }
      }   
    }   
  }  
}
//+------------------------------------------------------------------+
 
rustein:
Помогите исправить, не закрывает все открытые позиции...

Спасибо.


А какие не закрывает?

Если убыточные - то все нормально

 
VINAR:


А какие не закрывает?

Если убыточные - то все нормально

Только один прибыльный :) Почему ? Спасибо.

Искал на форуме. Но не разобрался...

 
Doberman101:

Приветствую.

Помогите написать советник.

С уважением.

Люди должны срочно кинуться с предложениями - каждый со своим причём... Даже не определили на основании какой ТС нужен советник... И почему в "джобу" не ходили... :))

Если нужна помощь в написании кода (а лучше в его понимании), то милости просим, а если... то... в джобу ... :)))

 
artmedia70:

Люди должны срочно кинуться с предложениями - каждый со своим причём... Даже не определили на основании какой ТС нужен советник... И почему в "джобу" не ходили... :))

Если нужна помощь в написании кода (а лучше в его понимании), то милости просим, а если... то... в джобу ... :)))

Артем, все воспитываешь?

Только вопрошающему нужно другое.

Советник не сливной и прямо сейчас.

 
rustein:

Только один прибыльный :) Почему ? Спасибо.

Искал на форуме. Но не разобрался...


AccountProfit() возвращает значение прибыли для текущего счета в базовой валюте.

При закрытии первого прибыльного, по всей видимости, AccountProfit() становится меньше 0.

Можно записать, например, так:

void CloseAllOrders()
{
  if(AccountProfit() > 0)
    for(int i=OrdersTotal()-1;i>=0;i--)
    {
      RefreshRates();
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
      {
        if(OrderType()== OP_BUY) 
           OrderClose (OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),10,CLR_NONE);
        if(OrderType()== OP_SELL)
           OrderClose (OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),10,CLR_NONE);
      }
    }  
    return(0);
}
 
artmedia70:

Люди должны срочно кинуться с предложениями - каждый со своим причём... Даже не определили на основании какой ТС нужен советник... И почему в "джобу" не ходили... :))

Если нужна помощь в написании кода (а лучше в его понимании), то милости просим, а если... то... в джобу ... :)))


К чему такой негативный ответ? Взрослый человек..., а уважению в жизни не кто не научил?

На этом деспут закончет. Я к старшим отношусь уважительно какими бы "гнилыми" они небыли.

 
VINAR:

Артем, все воспитываешь?

Только вопрошающему нужно другое.

Советник не сливной и прямо сейчас.


Я попросил помощи в написании кода...

Где вы прочитали что мне нужно " Советник не сливной и прямо сейчас"?
Причина обращения: