Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Не поставляешь сигналы и не продаешь приложения? Не проблема, заработать могут все!
CanisLC
67
CanisLC 2010.03.01 20:21 
До недавного времени пользовался обычным перенесением в безубыток. Подскажите, есть ли советник, который может после достижения определённого профита закрыть половину лота (разумеется лот предполагается делящимся на 2), а остальное - в безубыток???
Warstein
799
Warstein 2010.03.01 20:57  
CanisLC >>:
До недавного времени пользовался обычным перенесением в безубыток. Подскажите, есть ли советник, который может после достижения определённого профита закрыть половину лота (разумеется лот предполагается делящимся на 2), а остальное - в безубыток???

Библиотека функций и советники для трейлинга / Юрий Дзюбан

CanisLC
67
CanisLC 2010.08.22 11:33  
Блин, готовые функции это конечно хорошо. Но вот если бы готовый эксперт. Я нифига особо не понимаю пока этот MQL.
Бедовый
2311
Бедовый 2010.08.22 13:14  
Vasiliy Orlov
1175
Vasiliy Orlov 2010.08.22 14:01  
CanisLC:
До недавного времени пользовался обычным перенесением в безубыток. Подскажите, есть ли советник, который может после достижения определённого профита закрыть половину лота (разумеется лот предполагается делящимся на 2), а остальное - в безубыток???
могу сделать, но за деньги
CanisLC
67
CanisLC 2010.09.05 18:39  

Не, там такого нет. Фактически нужен тот же  e-MovingInWL от KimIV, но только чтобы от не всё переносил на установленный уровень, а только 1/2 лота, другую 1/2 закрывал.
Evgeniy Butakov
1069
Evgeniy Butakov 2010.09.06 00:58  
CanisLC:
До недавного времени пользовался обычным перенесением в безубыток. Подскажите, есть ли советник, который может после достижения определённого профита закрыть половину лота (разумеется лот предполагается делящимся на 2), а остальное - в безубыток???

Этот кусок кода как раз делает, то что вам нужно... при достижении определенного профата (к примеру 15 пунктов) передвигает стоп в безубыток и закрывает половину объема сделки. Если цена продолжает двигаться в направлении сделки, то еще через 15 пунктов передвигает стоп и закрывает половину половины объема и т.д. пока не сработает СЛ или не закончатся лоты.

////////////////Трейлинг (tr=уровень трейлинга в пунктах, ml=минимальный лот)
void tral (int tr,double ml,int mn)
{
int cnt;
int k;
int x;
datetime last_time;
double close_lot;
for (cnt=0;cnt<OrdersTotal();cnt++)
   {
   OrderSelect(cnt,SELECT_BY_POS);
   if (OrderMagicNumber()!=mn) continue;
   close_lot=NormalizeDouble(OrderLots()/2,2);
   if (close_lot<ml) close_lot=ml;
   if (OrderType()==OP_BUY)
      {
      if (OrderStopLoss()==0||OrderStopLoss()<OrderOpenPrice())
         {
         if (MarketInfo(OrderSymbol(),MODE_BID)-OrderOpenPrice()>=tr*MarketInfo(OrderSymbol(),MODE_POINT))
            {
            Print("Двигаем стоп и закрываем половину ",OrderTicket()," ", OrderSymbol()," ",OrderType());
            OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(MarketInfo(OrderSymbol(),MODE_BID)-tr*MarketInfo(OrderSymbol(),MODE_POINT),MarketInfo(OrderSymbol(),MODE_DIGITS)),0,0);
            OrderClose (OrderTicket(),close_lot,MarketInfo(OrderSymbol(),MODE_BID),10000);
            }
         }
      else
         {
         if (MarketInfo(OrderSymbol(),MODE_BID)-OrderStopLoss()>=tr*MarketInfo(OrderSymbol(),MODE_POINT)*2)
            {
            Print("Двигаем стоп и закрываем половину ",OrderTicket()," ", OrderSymbol()," ",OrderType());
            OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(MarketInfo(OrderSymbol(),MODE_BID)-tr*MarketInfo(OrderSymbol(),MODE_POINT),MarketInfo(OrderSymbol(),MODE_DIGITS)),0,0);
            OrderClose (OrderTicket(),close_lot,MarketInfo(OrderSymbol(),MODE_BID),10000);
            }
         }
      }
   if (OrderType()==OP_SELL)
      {
      if (OrderStopLoss()==0||OrderStopLoss()>OrderOpenPrice())
         {
         if (OrderOpenPrice()-MarketInfo(OrderSymbol(),MODE_ASK)>=tr*MarketInfo(OrderSymbol(),MODE_POINT))
            {
            Print("Двигаем стоп и закрываем половину ",OrderTicket()," ", OrderSymbol()," ",OrderType());
            OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(MarketInfo(OrderSymbol(),MODE_ASK)+tr*MarketInfo(OrderSymbol(),MODE_POINT),MarketInfo(OrderSymbol(),MODE_DIGITS)),0,0);
            OrderClose (OrderTicket(),close_lot,MarketInfo(OrderSymbol(),MODE_ASK),10000);
            }
         }
      else
         {
         if (OrderStopLoss()-MarketInfo(OrderSymbol(),MODE_ASK)>=tr*MarketInfo(OrderSymbol(),MODE_POINT)*2)
            {
            Print("Двигаем стоп и закрываем половину ",OrderTicket()," ", OrderSymbol()," ",OrderType());
            OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(MarketInfo(OrderSymbol(),MODE_ASK)+tr*MarketInfo(OrderSymbol(),MODE_POINT),MarketInfo(OrderSymbol(),MODE_DIGITS)),0,0);
            OrderClose (OrderTicket(),close_lot,MarketInfo(OrderSymbol(),MODE_ASK),10000);
            }
         }
      }
   
   
   } 
}
Diamant
337
Diamant 2010.09.06 07:52  

Ну этот код только для тестера хорош

CanisLC
67
CanisLC 2011.02.06 17:52  
Diamant:

Ну этот код только для тестера хорош

В каком смысле? Неужели нет нормально работающего советника?
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий