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

Рейтинг 2146



РЕКОМЕНДУЮ



Сделать так чо бы советник открывал отложенные ордера, на расстоянии.
[*]

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

Просьба. Сделать так что бы советник открывал отложенные ордера, и перемещал его на расстоянии заданном в настройках.

sova.mq4 (28 Kb)

Если возможно то просто в него встроить код как Кимовский трал стоповых ордеров.
e-SOTrailing.mq4 (10 Kb)

да, у меня такая тема в компе))


вот такое зло постоянно ожидает как на скриншоте каждого рано или поздно.
пара NZDCAD
  • 0
  • Просмотров: 1750
  • 14 мая 2020, 02:09
  • nixepace
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

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

Брокер для ваших роботов, 15 лет на рынке

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

+
0
пишите тз целиком, входы выходы подробнее со скринами
avatar

  35  AM2 Сообщений: 16282 - Андрей

  • 15 мая 2020, 00:47
+
0
Даже не знаю…

ТЗ в то что бы оставить все как есть.
Но нужно что бы открытие ордера было не по маркету, создание стопового ордера.
Другой советник который переносит ордера, поможет не летящий нож поймать, а хотя бы выйти с прибылью из отскока.

п.с.
Долго ждал что б это написать, извините что не понятно.
avatar

  5  nixepace Автор Сообщений: 41 - ОН

  • 15 мая 2020, 03:04
+
0
Вообще ничего не понятно, от слово «совсем».
Пишите подробное техзадание и внятным языком.
Скриншоты с примерами очень желательны.
avatar

  24  ShamanHand Сообщений: 1092 - Наношу добро, причиняю пользу.

  • 20 мая 2020, 08:34
+
0
Никто не поможет?
avatar

  5  nixepace Автор Сообщений: 41 - ОН

  • 20 мая 2020, 01:52
+
+1
Попробуйте написать очень-очень-очень подробно, расписать каждый шаг работы советника. Отложенный ордер от Ма-шки? Параметры ТФ и параметры МА- не надо указывать, это будут параметры советника.
avatar

  18  Boris54 Сообщений: 810 - ПенSионер

  • 20 мая 2020, 06:21
+
0
Советник очень прост.

Когда цена выходит за границу встроенного индикатора enelopes
сразу открывается ордер в обратном направлении.
Далее по стандарту, ставится заранее настроенные TP, SL.
То что не работает безубыток и трал, это можно пережить.

Проблема в том что цена иногда очень сильно разгонятся, то срывает стопы, а если их нет, то можно маржин-колл поймать.

В советнике необходимо сделать открытие отложенного ордера на расстоянии от цены, и что бы расстояние можно было отрегулировать в пунктах.


Редактирован: 20 мая 2020, 20:25
avatar

  5  nixepace Автор Сообщений: 41 - ОН

  • 20 мая 2020, 20:25
+
0
Мне уже делали аналогичные советники, но с использованием индикатора ТМА.
zakaz.opentraders.ru/52712.html

avatar

  18  Boris54 Сообщений: 810 - ПенSионер

  • 21 мая 2020, 06:16
+
0
Можно просто добавить усреднение с шагом. Попробуй slava78.opentraders.ru/54591.html
Редактирован: 21 мая 2020, 07:41
avatar

  12  Slava78 Сообщений: 598

  • 21 мая 2020, 07:24
+
0
Первый аналог еще 2018 гонял. Все они опасные. Исреднение может только усилять убыток и ускорять слив.
Всё это не походит
avatar

  5  nixepace Автор Сообщений: 41 - ОН

  • 21 мая 2020, 11:43
+
0
avatar

  12  Slava78 Сообщений: 598

  • 22 мая 2020, 06:48
+
+1
avatar

  12  Slava78 Сообщений: 598

  • 21 мая 2020, 11:05
+
0
Приделайте плиз стопоывые ордера.

Я вижу что только на этом ресурсе смогут сделать.

Редактирован: 22 мая 2020, 00:11
avatar

  5  nixepace Автор Сообщений: 41 - ОН

  • 21 мая 2020, 11:46
+
0
Самое простое: сделай так, потом компилировать
avatar

  12  Slava78 Сообщений: 598

  • 21 мая 2020, 12:10
+
0
Как говорил Кузьмич из фильма «Особенности национальной рыбалки»:«Учите русский, пригодится!». В Вашем случае:«Учите MQL, пригодится!».
//--- Inputs
extern double Lots       = 0.1;      // лот
extern double KLot       = 1;        // умножение лота
extern double MaxLot     = 5;        // максимальный лот
extern int StopLoss      = 0;        // стоп лосс
extern int TakeProfit    = 0;        // тейк профит
extern double Profit     = 100;      // общая прибыль
extern double Loss       = 100;      // общий убыток
extern int BULevel       = 0;        // уровень БУ
extern int BUPoint       = 0;        // пункты БУ
extern int TrailingStop  = 0;        // трал
extern bool Usredn       = 1;        // 1-использовать усреднение 0-не использовать
extern int Step          = 50;       // шаг усреднения
extern int Count         = 5;        // число ордеров
extern bool Buystop      = 1;        //1-выстовить байстоп 0-не выставлять
extern int Count_bs      = 5;        // число ордеров
extern bool Sellstop     = 1;        //1-выстовить селлстоп 0-не выставлять
extern int Count_ss      = 5;        // число ордеров
extern int Expiration    = 5;        // истечение
extern int Step_stop     = 50;       // дистанция для стопордера
extern int StartHour     = 0;        // час начала торговли
extern int StartMin      = 30;       // минута начала торговли
extern int EndHour       = 23;       // час окончания торговли
extern int EndMin        = 30;       // минута окончания торговли
extern int CloseSig      = 0;        // 1-закрытие по сигналу 0-нет
extern int TaimOut       = 1;        // тайм аут ордера
extern int Slip          = 30;       // реквот
extern int Magic         = 123;      // магик

extern int MAPeriod      = 240;      // период МА
extern int EPeriod       = 240;
extern int Method        = 0;
extern int Price1        = 0;
extern int Shift         = 0;
extern double Dev        = 0.3;

datetime TimeBar;
avatar

  16  ssg Сообщений: 817

  • 21 мая 2020, 18:22
+
0
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutOrder(int type,double price)
  {
   int r=0;
   color clr=Green;
   double sl=0,tp=0;

   if(type==1 || type==3 || type==5)
     {
      clr=Red;
      if(StopLoss>0)
         sl=NormalizeDouble(price+StopLoss*_Point,_Digits);
      if(TakeProfit>0)
         tp=NormalizeDouble(price-TakeProfit*_Point,_Digits);
     }

   if(type==0 || type==2 || type==4)
     {
      clr=Blue;
      if(StopLoss>0)
         sl=NormalizeDouble(price-StopLoss*_Point,_Digits);
      if(TakeProfit>0)
         tp=NormalizeDouble(price+TakeProfit*_Point,_Digits);
     }

   r=OrderSend(NULL,type,Lot(),NormalizeDouble(price,_Digits),Slip,sl,tp,"",Magic,TimeCurrent()+Expiration*3600,clr);
   return;
  }
avatar

  16  ssg Сообщений: 817

  • 21 мая 2020, 18:23
+
0
<code>//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   
   double ma=iMA(NULL,0,MAPeriod,0,0,0,Shift);
   double EUP=iEnvelopes(Symbol(),0,EPeriod,Method,Shift,Price1,Dev,1,1);
   double EDN=iEnvelopes(Symbol(),0,EPeriod,Method,Shift,Price1,Dev,2,1);
   
   if(BULevel>0) BU();
   if(TrailingStop>0) Trailing();
   if(AllProfit()>Profit && Profit>0) CloseAll();
   if(AllProfit()<-Loss && Loss>0) CloseAll();

//---  стоповые в обратную сторону первой позиции  
   if(CountTrades()<1 && TimeSession(StartHour,StartMin,EndHour,EndMin,TimeCurrent()) && TimeBar<Time[0])
     {
      if(Ask<EDN) 
        {
          PutOrder(0,Ask); TimeBar=Time[0]+Period()*TaimOut*60;
          if(Sellstop) PutOrder(5,Bid-Step_stop*_Point);
        }
      
      if(Bid>EUP)
        {
          PutOrder(1,Bid); TimeBar=Time[0]+Period()*TaimOut*60;
          if(Buystop)PutOrder(4,Ask+Step_stop*_Point);
        }    
     }
//--- 
 if(Usredn)
  {
   if(CountTrades()>0 && CountTrades()<Count)
     {
      if(FindOrderType()==0 && (FindLastBuyPrice()-Ask)/_Point>=Step) PutOrder(0,Ask);  
      if(FindOrderType()==1 && (Bid-FindLastSellPrice())/_Point>=Step) PutOrder(1,Bid); 
     }
  }
   if(CloseSig>0)
     {
      if(Bid>ma) CloseAll(0);
      if(Ask<ma)  CloseAll(1);
     }

   Comment("\n Lot: ",Lot(),
           "\n Trades: ",CountTrades(),
           "\n Profit: ",AllProfit());
  }
//+------------------------------------------------------------------+
</code>

Редактирован: 21 мая 2020, 18:25
avatar

  16  ssg Сообщений: 817

  • 21 мая 2020, 18:24
+
0
Судя по Вашему выражению :«Приделайте плиз стопоывые ордера.

Я вижу что только на этом ресурсе смогут сделать. На остальных дилетанты, которым не простота, а извращенная вычурность нужна.»
Вы относите себя как минимум к профессионалам?
Тогда зачем Вы здесь со своей просьбой?
Специально использовал решения Андрея. Все взято из советников из базы файлов.
Вам уже и ссылки давали, а Вы все игнорировали.
Лень было искать? Или халява слаще?
С таким подходом Вам здесь вряд ли кто то поможет в дальнейшем.
Редактирован: 21 мая 2020, 18:40
avatar

  16  ssg Сообщений: 817

  • 21 мая 2020, 18:31
+
0
Каждый силен в своей сфере. с кодом я никак не дружу «смотрю в „книгу вижу фигу“. Могу только нормально настроить готовый продукт.

Не прошу каких то жизненных поучений. Первый раз вижу тут „поучения“

Советник взял с другого форума, но там автор сказал что это слишком геморно доработать и не будет.
Вот и обращаюсь сюда, где наблюдал нормальное отношение.
Те ссылки которые тут выложили, они ни на что не влияют.
Поэтому прошу по человечески просто сделать открытие STOP ордера на расстоянии от цены.

avatar

  5  nixepace Автор Сообщений: 41 - ОН

  • 22 мая 2020, 00:10
+
0
Так Вам я уже сделал то что Вы хотите. Как я понял из Ваших сумбурных пожеланий.Скопируйте блоки что я выложил и замените ими такие же блоки из Вашего советника. Это всего три блока:
-внешние настройки,
-функция открытия позиций и ордеров (void PutOrder(int type,double price)),
-функция void OnTick().
Просто уберите (за комментируйте) старые и добавьте те, что я выложил.
Советник будт по сигналу открывать позицию бай(селл) и сразу выставлять ордер селлстоп(байстоп)
//---  стоповые в обратную сторону первой позиции  
   if(CountTrades()<1 && TimeSession(StartHour,StartMin,EndHour,EndMin,TimeCurrent()) && TimeBar<Time[0])
     {
      if(Ask<EDN) 
        {
          PutOrder(0,Ask); TimeBar=Time[0]+Period()*TaimOut*60;
          if(Sellstop) PutOrder(5,Bid-Step_stop*_Point);
        }
      
      if(Bid>EUP)
        {
          PutOrder(1,Bid); TimeBar=Time[0]+Period()*TaimOut*60;
          if(Buystop)PutOrder(4,Ask+Step_stop*_Point);
        }    
     }
//--- 

Цена идет в нужную сторону получаете закрытие по тейку.
Цена пойдет не в сторону открытой позиции стоповый ордер заблокирует размер убытка.Получиться лок.
В настройках стоят триггеры использовать или не использовать стоповые ордера (оба или каждого по отдельности), кроме этого есть триггер использовать или нет усреднение.
С этим Вы надеюсь разберетесь: " Могу только нормально настроить готовый продукт."
А советник из другого форума, но состоит он из функции Андрея!
Так, что «гонит» Ваш «автор». И весь «гимор» в добавлении одной переменной в настройках — extern int Expiration = 5; // истечение
и двух строчек в главной функции
PutOrder(5,Bid-Step_stop*_Point);
PutOrder(4,Ask+Step_stop*_Point);
avatar

  16  ssg Сообщений: 817

  • 22 мая 2020, 04:45
+
0
Спасибо ssg, за ваше участие. Думаю лучше поменять на лимитные ордера. Пробуйте slava78.opentraders.ru/54600.html
avatar

  12  Slava78 Сообщений: 598

  • 22 мая 2020, 06:38
+
0
Slava78, спасибо!
Я просто сделал то, что хотел nixepace.Как я понял ему был нужен страховочный ордер для фиксации убытка (лок).
Это очередной канальный советник со всеми его плюсами и минусами.
Еще можно и так
<code>//---  стоповые в обратную сторону первой позиции  
   if(CountTrades()<1 && TimeSession(StartHour,StartMin,EndHour,EndMin,TimeCurrent()) && TimeBar<Time[0])
     {
      if(Ask<EDN) 
        {
          PutOrder(0,Ask); TimeBar=Time[0]+Period()*TaimOut*60;
          if(Buylimit)PutOrder(2,Ask-Step_stop*_Point);
          if(Sellstop) PutOrder(5,Bid-Step_stop*_Point);
        }
      
      if(Bid>EUP)
        {
          PutOrder(1,Bid); TimeBar=Time[0]+Period()*TaimOut*60;
          if(Selllimit)PutOrder(3,Bid+Step_stop*_Point);
          if(Buystop) PutOrder(4,Ask+Step_stop*_Point);
        }    
     }
//--- </code>

Иногда захожу на форум где вы с Маратом канальные индикаторы пытаете.
Редактирован: 22 мая 2020, 16:50
avatar

  16  ssg Сообщений: 817

  • 22 мая 2020, 07:19
+
0
*good* 
avatar

  12  Slava78 Сообщений: 598

  • 22 мая 2020, 10:30
+
0
Благодарю! Спасибо всем!

Сразу не понял что за коды.
Однажды уже пытался сделать подобное, ничего не вышло.
avatar

  5  nixepace Автор Сообщений: 41 - ОН

  • 22 мая 2020, 16:15

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