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

Рейтинг 2081



РЕКОМЕНДУЮ



Торгуем объем.

Уважаемые программисты, прошу написать советник по данному индикатору:Vertex alerts nmc 1.01.mq4 (4 Kb)

1.Открытие позиций:

1)На ТФ на котором установлен индюк, при закрытии каждого бара (ВАЖНО! ПРИ ЗАКРЫТИИ), сов анализирует уровень индикатора, если он «больше» или «равен» линии «LineValue = 0.9» то открывает позу. Красный цвет-Сел, Синий-Бай.
2)При закрытии каждого следующего бара (ВАЖНО! ПРИ ЗАКРЫТИИ), и выполнении условия 1), происходит доливка с учетом «К*Лот» или +начальный лот(по выбору)

2.Закрытие открытых позиций:

1)Сигналом противоположного направления, при ЗАКРЫТИИ бара если он «больше» или «равен» линии «LineValue = 0.9». Закрываются все открытые поз. с любым значением.И открываются поз. противоположного направления.

2)После срабатывания поз. по «Стоп-Лос» или по «Тейк-Профит» открытие новой поз. возможно при выполнении условия 1.1).

3.В настройки:

— Lot // объем первого ордера
— Lot+начальный лот //увеличение на начальный лот,/ 0 — не используется
— KLot // умножение лота

— ТП //при значении=0, не используется/
— СЛ //при значении=0, не используется/

— Профит в валюте депозита //при значении=0, не используется/
— Убыток в валюте депозита //при значении=0, не используется/

— BULevel = 0; // уровень БУ
— BUPoint = 30; // пункты БУ

— TrailingStop = 200; // трал, при значении=0, не используется/

— Magic= 123 // магик своего ордера. Если Magic=0, то отслеживается любой ордер.
Настройки индикатора:

— Trend Period = 30;
— ForcePeriod = 35;
— LineValue = 0.25
— VerticalShift = 0;





Заранее Спасибо! Требуется поручитель!..
  • +1
  • Просмотров: 3924
  • 26 марта 2018, 23:04
  • Marik007
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

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

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

+
0
Выступаю поручителем по этому заказу. :) 
avatar

  11  preasto Сообщений: 445

  • 27 марта 2018, 19:02
+
+1
ВАЖНО! ПРИ ЗАКРЫТИИ

почему так важно?
avatar

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

  • 27 марта 2018, 19:06
+
0
почему так важно?


--по тому, что на закрытии свечи максимальное значение уровня
Редактирован: 29 марта 2018, 13:45
avatar

  18  Marik007 Автор Сообщений: 400 - Forexman

  • 27 марта 2018, 20:59
+
0
какой тф и сколько времени до закрытия бара?
avatar

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

  • 27 марта 2018, 21:14
+
0
какой тф и сколько времени до закрытия бара?


ТФ — тот на который устанавливается сов (т.е. текущий)(на скрине Н-4)

--А «время до закрытия» можно в «Секундах» на пример 3-5сек (можно вынести в настройки, будет Супер!)
avatar

  18  Marik007 Автор Сообщений: 400 - Forexman

  • 27 марта 2018, 21:29
+
0
нет делать на закрытии не возьмусь.
avatar

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

  • 28 марта 2018, 18:17
+
0
Хорошо Андрей, сделай на открытии следующего бара за максимальным!, я то же так подумал и проанализировал, что цена закрытия нужного бара она же есть цена открытия сдедующего, все вполне логично и будет правильно и проще в коде*yes* 
avatar

  18  Marik007 Автор Сообщений: 400 - Forexman

  • 28 марта 2018, 19:44
+
0
avatar

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

  • 28 марта 2018, 21:08
+
0
СПАСИБО! *good*  пробую…
avatar

  18  Marik007 Автор Сообщений: 400 - Forexman

  • 28 марта 2018, 21:15
+
0
Хороший советник, только, он не усредняет ТП при доливки, можно это поправить? Или, если я руками исправлю ТП или СЛ, это скажется на его работе?
avatar

  8  alekseifx Сообщений: 179

  • 29 марта 2018, 15:30
+
0
Можешь немного переделать советник?
Тралл
void Trall()
  {
   
   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==OP_BUY )
              {
               if(TrailingStop>0)
              {
               if(Bid-FindLastBuyPrice()>Point*TrailingStop)
                 {
                  if(OrderStopLoss()<Bid-Point*TrailingStop)
                    {
                     //--- modify order and exit
                     if(!OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green))
                        Print("OrderModify error ",GetLastError());
                     return;
                    }
                 }
              }
              }
            if(OrderType()==OP_SELL )
              {
              if(TrailingStop>0)
              {
               if((FindLastSellPrice()-Ask)>(Point*TrailingStop))
                 {
                  if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))
                    {
                     //--- modify order and exit
                     if(!OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red))
                        Print("OrderModify error ",GetLastError());
                     return;
                    }
                 }
                }
             }
           }
        }
     }
  }


Подсчёт средней цены
double FindLastBuyPrice()
  {
   int oticket=0;double buy=0;
   double oprice=0;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType()==OP_BUY)
           {
            oticket++;
            buy+=OrderOpenPrice();
           }
        }
     }
    if(oticket!=0)oprice = buy/oticket; 
   return(oprice);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double FindLastSellPrice()
  {
   int oticket=0;double sell=0;
   double oprice=0;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType()==OP_SELL)
           {
            oticket++;
            sell+=OrderOpenPrice();
            
           }
        }
     }
   if(oticket!=0) oprice = sell/oticket;
   return(oprice);
  }


Закрытие по общему прохождению в пунктоах


      if((FindLastSellPrice()-Ask)/Point*CountTrades()>=Take || (FindLastSellPrice()-Ask)/Point*CountTrades()<-Stop) CloseAll();//{CloseOpenPos(0);CloseOpenPos(1);}
      if((Bid-FindLastBuyPrice())/Point*CountTrades()>=Take || (Bid-FindLastBuyPrice())/Point*CountTrades()<-Stop) CloseAll();//{CloseOpenPos(0);CloseOpenPos(1);}


Спасибо

avatar

  13  axe44 Сообщений: 1149 - Алек

  • 7 апреля 2018, 14:05
комментарий был удален 2018-03-29 13:40:17 Marik007

+
0
Андрей, все работает замечательно, но не большую правку надо сделать.

Сейчас лотность по переменной " — Lot+начальный лот //увеличение на начальный лот", не корректна. Лот остается постоянный, увеличенный один раз на указанное значение.

А нужно, что бы в каждой новой серии ордеров Бай и Сел, увеличение было с начального лота по нарастающей на указанное значение.

Пример:
-Начальный лот =0,1
-Лот увеличения =0,1
--Должно быть вот так: 0,1_0,2_0,3_0,4_0,5_ и т. д.
avatar

  18  Marik007 Автор Сообщений: 400 - Forexman

  • 29 марта 2018, 16:14
+
0
avatar

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

  • 29 марта 2018, 17:37
+
0
Еще бы не помешал общий трал всех открытых позиций и БУ тоже
Редактирован: 29 марта 2018, 19:05
avatar

  19  Lobzik Сообщений: 119 - Algoforex

  • 29 марта 2018, 19:04
+
0
трал всех открытых позиций и БУ тоже


--Это все есть в отдельности для каждого ордера
avatar

  18  Marik007 Автор Сообщений: 400 - Forexman

  • 29 марта 2018, 21:31
+
+1
Андрей, такое можно исправить?

--После закрытия серии поз. противоположным сигналом, первый ордер нового направления ставится очень завышенный (очевидно считает последний закрытый Лот плюс Лот увеличения) а это не правильно. Должен открывать начальный минимальный Лот!
--Потом может из за этого быть большая просадка.



Подправьте пожалуйста.
avatar

  18  Marik007 Автор Сообщений: 400 - Forexman

  • 29 марта 2018, 21:46
+
0
попробуйте так сделать:


void OnTick()
  {
   ClosePos();
   if(BULevel>0) BU();
   if(TrailingStop>0) Trailing();
   if((AllProfit()>Profit && Profit>0) || (AllProfit()<-Loss && Loss>0)) CloseAll();
   
   if(t!=Time[0])
     {
      OpenPos();
      t=Time[0];
     }
  }
avatar

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

  • 29 марта 2018, 22:06
комментарий был удален 2018-03-29 23:37:40 Marik007

+
0
Общий трал открытых позиций и БУ так и не работает.
avatar

  19  Lobzik Сообщений: 119 - Algoforex

  • 30 марта 2018, 06:03
комментарий был удален 2018-04-02 13:45:50 Marik007

+
0
вы правда веруете что вот так всё просто...??? вот чудаки…
avatar

  11  FOTON Сообщений: 683 - Иван

  • 30 марта 2018, 17:45
+
0
все индикаторы, что появляются в сети инета, все они убыточны, отработанный материал. Любая прибыльная ТС быстро вычисляется брокерами и вносятся коррективы у «большого брата», что и в дальнейшем эта ТС будет сливает депо. Что б хоть как то вернуть затраты, этот индюк продаётся типа супер пупер прибыльный. Задайте вопрос себе… зачем продавать то что приносит доход. Ни когда прибыльный индюк не всплывёт в инете пока он прибыльный. Так вот и создаются алгоритмы «однодневки», отработают они своё и всё… далее выбрасывают в инет, а мы мля их подбираем и в надежде клеим на его основе ГРААЛЬ. простите — но просто смешно… смех и грусть
avatar

  11  FOTON Сообщений: 683 - Иван

  • 30 марта 2018, 19:06
+
0
и ещё… тестировать советники на истории мт4 ну ет просто бред… тестировать то, что уже давно прошло и ТЕМ БОЛЕЕ то, что ни когда не принесёт прибыль… ет же прошлое..!!!
avatar

  11  FOTON Сообщений: 683 - Иван

  • 30 марта 2018, 19:10
+
0
поймите… в тестере мт4 нет приколов… вроде: расширений спреда, проскальзований, гепов, шпили-вили, зависаний терминала, отсутствие катировок на момент, внезапное потяря связи… да мого чего ещё… Да, на истории совы ну просто граали и мячта трейдера — торгуй робот больше, да по больше.
Ну ни чему вас рынок не учит.!
Удачи !:D 
avatar

  11  FOTON Сообщений: 683 - Иван

  • 30 марта 2018, 19:17
+
0
Иван все красиво написали но даже в тесте на 2 года эта сова уходит в минус а насчет совы в тестере то сову можно ставит на реал только после прогонки по истории лет так так 16-18 так что ваши красивые слова вобщем то ни очем с уважением:) 
avatar

  21  ruslan71 Сообщений: 974 - Руслан

  • 30 марта 2018, 21:33
+
0
что ж… всегда есть и критика и юмор… а мысль моя сие есть о том, что не стоит надеяться на чудо индюк что присутствует в свободном доступе рунета.
avatar

  11  FOTON Сообщений: 683 - Иван

  • 30 марта 2018, 21:46
+
0
один индюк нет прибыльные системы существует продавать их вы правы не имеет смысла я тоже придерживаюсь той же мысли но они существуют но закрыты семью печатями
avatar

  21  ruslan71 Сообщений: 974 - Руслан

  • 30 марта 2018, 21:54
+
0
ну так, а я о чём… лучший торг робот это сам трейдер, а лучший индюк это цена и время… но вот досада, когда время приходит — цена убегает… удачи.!
avatar

  11  FOTON Сообщений: 683 - Иван

  • 30 марта 2018, 22:30
+
0
Это и так ясно, что индикаторы это всего лишь производные от цены. И нет систем кроме как грамотное управление капиталом. Деньги делают деньги.
avatar

  19  Lobzik Сообщений: 119 - Algoforex

  • 1 апреля 2018, 06:22

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