vikas
Алексей

 
Уровень 9

  Торгую в компаниях:


Группа "Стол заказов MQL"

Рейтинг 2088



РЕКОМЕНДУЮ



Прошу добавить трал для ордеров

Добрый вечер АМ2. У меня просьба — доработать советник
Vikas A2. www.opentraders.ru/downloads/568/ Можно ли сделать так, что бы
выставленный советником стоповый ордер тралился вслед за ценой?
Скажем, пошла цена вверх, через какое то кол- во пунктов(указано в
настройках) — выставился Sellstop. Затем цена двинулась выше и ордер
стал бы подтягиваться за ней на то же кол-во пунктов. И так до тех пор
пока цена не пошла вниз и ордер бы сработал. Ссылка на топик
zakaz.opentraders.ru/22399.html
  • 0
  • Просмотров: 3809
  • 30 января 2015, 17:35
  • vikas
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
  Предыдущая запись в группе
необычные скрипты
Следующая запись в группе  
советник по ренко
28 января 2015
30 января 2015

Комментарии (13)

+
0
Посмотрю сейчас.
avatar

  34  AM2 Сообщений: 15882 - Андрей

  • 31 января 2015, 18:53
+
0
Посмотрите вроде бегает за ценой: www.opentraders.ru/downloads/575/


avatar

  34  AM2 Сообщений: 15882 - Андрей

  • 31 января 2015, 22:45
+
0
Доброе утро АМ2. Всё посмотрел. Тралит как надо. Только с тейк профитом что то
не то. Скажем выставляю 10 пунктов, а советник закрывает при гораздо большем тп.
Из за этого иногда начинает усреднять, набирает ордеров, хотя мог бы закрыть
потому что условия позволяли закрыть при установленных 10 пунктах. Поправте по-
жалуйста.
avatar

  9  vikas Автор Сообщений: 113 - Алексей

  • 1 февраля 2015, 09:18
+
0
Посмотрел повнимательнее. При тралении ведь по идее ордер должен идти за ценой
и как бы последий должен установиться за опред. кол-во пунктов, указанных в настройках ( скажем у меня 15). А он как то резко прыгает и устанавливается гдето
в 3-5-7 пунктах от мах. значения цены, цена дёргается в обратную сторону и получается ложный вход.
avatar

  9  vikas Автор Сообщений: 113 - Алексей

  • 1 февраля 2015, 10:03
+
0
Относительно большого тейка — оказывается он выставляет его относительно первого установленного ордера. А надо относительно последнего протраленного.
avatar

  9  vikas Автор Сообщений: 113 - Алексей

  • 1 февраля 2015, 10:27
+
0
Поправил функцию, сейчас с тейком и тралом все в порядке: www.opentraders.ru/downloads/575/
avatar

  34  AM2 Сообщений: 15882 - Андрей

  • 1 февраля 2015, 19:53
+
0
Относительно трала — скажем выставился sellstop, цена пошла выше на 5 п., ему бы
также подтянуться на эти 5 п. А он переустанавливается на 5 п. от цены. Дальше цена
дёргается и опять ложный вход.
avatar

  9  vikas Автор Сообщений: 113 - Алексей

  • 1 февраля 2015, 10:52
+
0
Вот на этой основе, постараюсь трал ордеров написать, а то самому придумывать пришлось :)  www.opentraders.ru/downloads/578/
avatar

  34  AM2 Сообщений: 15882 - Андрей

  • 1 февраля 2015, 19:22
+
0
Надеюсь. Я тут немного код изменил. В блоке void OrderMod():
строчка приобрела вид:

if(OrderType()==OP_BUYSTOP)
{
if((OrderOpenPrice()-Ask)>Delta*Point+Prohod*Point)
{
pr=Ask+Delta*Point+Prohod*Point;
mod=OrderModify(OrderTicket(),pr,OrderStopLoss(),OrderTakeProfit(),0,Blue);
}
}
if(OrderType()==OP_SELLSTOP)
{
if((Bid-OrderOpenPrice())>Delta*Point+Prohod*Point)
{
pr=Bid-Delta*Point-Prohod*Point;
mod=OrderModify(OrderTicket(),pr,OrderStopLoss(),OrderTakeProfit(),0,Red);

Не знаю насколько это грамотно, но вродебы ордера стали тралиться как надо, только вот непонятки с тейк профитом. Он остаётся выставленным как для первоначального ордера
(т.е. тп не тралиться).
avatar

  9  vikas Автор Сообщений: 113 - Алексей

  • 1 февраля 2015, 19:51
+
0
Так., не увидел ваш предпоследний комент. В последней версии с тейком всё впорядке.
А с тралом нет. Прыгает сразу к цене и выставляется на величину Delta от неё.
Может поможет то как я изменил код? как то совместить?
avatar

  9  vikas Автор Сообщений: 113 - Алексей

  • 1 февраля 2015, 20:13
+
0
Сейчас вот так сделаю:
Относительно трала — скажем выставился sellstop, цена пошла выше на 5 п., ему бы
также подтянуться на эти 5 п.
avatar

  34  AM2 Сообщений: 15882 - Андрей

  • 1 февраля 2015, 21:12
+
0
Совместил :) 




//+----------------------------------------------------------------------------+
//|  Сопровождение ордеров простым тралом                                      |
//+----------------------------------------------------------------------------+
void TrailingOrders() 
  {
   double di,pa,pb,pp,st,tk;
   bool mod;

   for(int i=OrdersTotal()-1;i>=0;i--)
    {
     if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
      {
       if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
        {
         pp=MarketInfo(OrderSymbol(),MODE_POINT);
         if(OrderType()==OP_BUYSTOP) 
           {
            pa=MarketInfo(OrderSymbol(),MODE_ASK);
            if(OrderOpenPrice()-pa>(Delta+Prohod+TrailingStep-1)*pp) 
              {
               di=OrderOpenPrice()-pa-(Delta+Prohod)*pp;
               if(OrderStopLoss()  >0) st=OrderStopLoss()  -di; else st=0;
               if(OrderTakeProfit()>0) tk=OrderTakeProfit()-di; else tk=0;
               mod=OrderModify(OrderTicket(),pa+(Delta+Prohod)*pp,st,tk,0,Blue);
              }
           }
         if(OrderType()==OP_SELLSTOP) 
           {
            pb=MarketInfo(OrderSymbol(),MODE_BID);
            if(pb-OrderOpenPrice()>(Delta+Prohod+TrailingStep-1)*pp) 
              {
               di=pb-OrderOpenPrice()-(Delta+Prohod)*pp;
               if(OrderStopLoss()  >0) st=OrderStopLoss()  +di; else st=0;
               if(OrderTakeProfit()>0) tk=OrderTakeProfit()+di; else tk=0;
               mod=OrderModify(OrderTicket(),pb-(Delta+Prohod)*pp,st,tk,0,Red);
              }
           }
         }
       }
     }
  }
//+------------------------------------------------------------------+
avatar

  34  AM2 Сообщений: 15882 - Андрей

  • 1 февраля 2015, 21:58
+
0
Да.Теперь всё как надо. Ух. Спасибо большое АМ2. Продолжим эксперименты.
avatar

  9  vikas Автор Сообщений: 113 - Алексей

  • 1 февраля 2015, 22:28

Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий
Начать торговлю с Альпари