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

Рейтинг 2073



РЕКОМЕНДУЮ




Лучшее от axe44



Крутые памм-счета Комментариев 6
2017-10-24 11:58:58Рейтинг 0

БКС Комментариев 8
2017-08-11 02:57:12Рейтинг 0

торги
2017-01-26 00:01:37Рейтинг 0

HelloDual v3.0 Комментариев 3
2017-11-19 02:21:03Рейтинг 0

Создание советников бесплатно Комментариев 2
2017-07-16 22:54:20Рейтинг 0

сетка (требуется поручитель)

пара отлог на пробой экстремумов. одна срабатывает другая удаляется. короткие стопы, трал

  • 0
  • Просмотров: 5188
  • 29 июля 2018, 23:28
  • axe44
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

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

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

+
0
Добрый день.Готов быть поручителем
avatar

  8  magsu Сообщений: 16

  • 30 июля 2018, 07:54
+
+1
я как только увидел, себе сразу же такую штуку сделал. Сегодня уже на тесте:

avatar

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

  • 30 июля 2018, 17:23
+
+1
дай-дай-дай. хочу-хочу-хочу.
avatar

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

  • 30 июля 2018, 18:09
+
0
Как понял, ахе44 — мы в пролёте *think* 
avatar

  11  juozas Сообщений: 156

  • 31 июля 2018, 21:13
+
0
Граали не раздают, их только принимают:D 

avatar

  18  Marik007 Сообщений: 400 - Forexman

  • 31 июля 2018, 22:37
+
0
Ну и пускай хвастается :P 
avatar

  11  juozas Сообщений: 156

  • 31 июля 2018, 23:00
+
0
так идея написана выше.
Вообще можно ее проверить.
Накидал тоже скрипт подобный по идее зависит от настроек сильно, но заработать на нем много не получилось :) 
avatar

  17  vis Сообщений: 193 - ♫♪♫♪

  • 1 августа 2018, 13:30
+
0
зажал что ли? *cry* 
Андрей, ну хоть продай, если стоящий сов… *think* 
avatar

  9  yurez83 Сообщений: 34 - Юрий

  • 5 августа 2018, 19:37
+
0
зажал что ли?

о чем вообще речь? здесь куча пробойников с тралом и мой вариант ничуть не отличается
avatar

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

  • 5 августа 2018, 19:41
+
0
есть даже полностью все сделки в плюсе за день а есть вообще сливной день, теряешь все что заработал. автор сигнала видимо научился предсказывать это с определенной вероятностью. и лот у него скачет день изо дня в определенном диапазоне. тут нужно изучать как человек торгует.

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



avatar

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

  • 5 августа 2018, 20:11
+
0
Скинь что есть, я посмотрю что получилось, подкорректирую отправлю всем.
avatar

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

  • 5 августа 2018, 20:28
+
0
Да я в шутку.:D  а то уже обиделся… *friends* 
avatar

  9  yurez83 Сообщений: 34 - Юрий

  • 5 августа 2018, 20:17
+
0
avatar

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

  • 5 августа 2018, 20:34
+
+1
Ещё 2 ошибки. Ох, Андрей… Разве нужно покупать если Аск меньше Верхушки и на оборот?
Короче это исправил, потом добавил хрень, потом добавил ещё что-то, потом поставил подсчёт движения в пунктах, удалил удаление (ну всё равно экспирация по времени)…
Потом начал исправлять свои ошибки… Итого собрал третью версию:
//+------------------------------------------------------------------+
//|                                                        Proba.mq4 |
//|                                        Copyright 2018, AM2+axe44 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, AM2+axe44 "
#property link      "http://www.forexsystems.biz"
#property version   "3.00"

//--- Inputs
extern double Lots       = 3;        // лот
extern double KLot       = 1.5;        // увеличение лота
extern int StopLoss      = 50;       // лось
extern int TakeProfit    = 280;      // язь
extern int TrailingStop  = 20;       // трал
extern int StartHour     = 7;        // час начала торговли
extern int Slip          = 3;        // реквот
extern int Count         = 5;        // баров для просчета
extern int Delta         = 10;       // расстояние от экстремума
extern int Expir         = 10;       // время жизни ордеров в минутах
extern int Spred         = 4;       // спред 
extern int Counts        = 5;       // число поз
extern int Magic         = 123;      // магик
datetime t=1;int i;
// https://www.mql5.com/ru/signals/383802
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   if(Digits==3 || Digits==5)
     {
      TakeProfit*=10;
      StopLoss*=10;
      Delta*=10;
      Slip*=10;
      Spred*=10;
     }
//---
   return(INIT_SUCCEEDED);
  }

//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Comment("");
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
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,Lots,NormalizeDouble(price,Digits),Slip,sl,tp,"",Magic,TimeCurrent()+Expir*60,clr);
   return;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void Trailing()
  {
   bool mod;
   for(i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==OP_BUY)
              {
               if(Bid-OrderOpenPrice()>TrailingStop*Point)
                 {
                  if(OrderStopLoss()<Bid-TrailingStop*Point)
                    {
                     mod=OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop*Point,OrderTakeProfit(),0,Yellow);
                     return;
                    }
                 }
              }

            if(OrderType()==OP_SELL)
              {
               if((OrderOpenPrice()-Ask)>TrailingStop*Point)
                 {
                  if((OrderStopLoss()>(Ask+TrailingStop*Point)) || (OrderStopLoss()==0))
                    {
                     mod=OrderModify(OrderTicket(),OrderOpenPrice(),Ask+TrailingStop*Point,OrderTakeProfit(),0,Yellow);
                     return;
                    }
                 }
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int CountTrades()
  {
   int count=0;
   for(i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()<2) count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//| Подсчет ордеров по типу                                          |
//+------------------------------------------------------------------+
int CountOrders(int type)
  {
   int count=0;
   for(i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==type) count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//| Удаление отложенных ордеров                                      |
//+------------------------------------------------------------------+
/*void DelOrder()
  {
   bool del;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()>1) del=OrderDelete(OrderTicket());
           }
        }
     }
  }*/
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   double up=High[iHighest(NULL,0,MODE_HIGH,Count,1)];
   double dn=Low[iLowest(NULL,0,MODE_LOW,Count,1)];

   if(TrailingStop>0) Trailing();

   if((Ask-Bid)<Spred*Point)
  
     {
      if(CountOrders(2)<1 && Bid>up)
      {
       for(i=0;i<Counts;i++)
        {
        PutOrder(2,Bid-Delta*_Point-i*Delta*_Point*KLot);
        }
      }
     
       
    
     
      if(CountOrders(3)<1 && Ask<dn) 
       {
       for(i=0;i<Counts;i++)
        {
         PutOrder(3,Ask+Delta*_Point+i*Delta*_Point*KLot);
        }
       
       }
     }
 //  if(CountTrades()>0) DelOrder();
  }
//+------------------------------------------------------------------+
avatar

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

  • 5 августа 2018, 22:12
+
0
Красотень...*good* 
avatar

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

  • 5 августа 2018, 22:17
+
0
Максимальный эффект на графике м5, но оптимизация страшно долго. Аж 1000 часов за 3 года. Как сжать логику хотя бы в 5 раз ?? Окси бы сюда…
avatar

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

  • 5 августа 2018, 22:23
+
0
обоснуй вот это утверждение:

Ещё 2 ошибки. Ох, Андрей… Разве нужно покупать если Аск меньше Верхушки и на оборот?


на хай ставим отложку байстоп. если аск меньше верхушки, то отложку ставим без проблем. также и с ордером селлстоп.

   if(CountTrades()<1 && Hour()>=StartHour)
     {
      if(CountOrders(4)<1 && Ask<up) PutOrder(4,up+Delta*_Point);
      if(CountOrders(5)<1 && Bid>dn) PutOrder(5,dn-Delta*_Point);
     }
avatar

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

  • 5 августа 2018, 23:08
+
0
То есть в этом проблему не видишь?
Если цена не ушла никуда после волатильности, а вошла в паузу, стопы стоят на прежних уроанях, а сопротивоение и поддержка обновились. Вот как то так. И если цена и до ходит дотех старых значений, то как правило отскакивает. Тут и лось. Проверял визуально
Я пересмотрел свой код и нашёл 2 ошибки. Поможешь?Вместо множителя расстояния нужно это значение поставить как ранее задумывал, то есть во множитель лота.
Потом как то нужно впихнуть проверку по барам, вместо каждого тика. И код будет работать быстрее.
Редактирован: 6 августа 2018, 08:51
avatar

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

  • 6 августа 2018, 08:45
+
0
Если цена не ушла никуда после волатильности, а вошла в паузу, стопы стоят на прежних уроанях, а сопротивоение и поддержка обновились

это не ошибка. ошибка когда в журнале красным.
avatar

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

  • 6 августа 2018, 18:07
+
0
Спалил себе мозги


Код не работает.
Вдруг зациклился сам на себе.
double up=High[iHighest(NULL,0,MODE_HIGH,Count,0)];//индикация
   double dn=Low[iLowest(NULL,0,MODE_LOW,Count,0)];
   
   double up1=High[iHighest(NULL,0,MODE_HIGH,Count,1)];
   double dn1=Low[iLowest(NULL,0,MODE_LOW,Count,1)];
   
   if(TrailingStop>0) Trailing();

   if((Ask-Bid)<Spred*Point && t!=Time[0])
  
     {

      if(CountOrders(2)<1 && up>up1)
      {
       for(i=CountOrders(2);i<Counts;i++)
        {
        PutOrder(2,(Bid-Delta*_Point-i*Delta*_Point));
        Sleep(100);
        }
      }
     
       
    
     
      if(CountOrders(3)<1 && dn<dn1) 
       {
       for(i=CountOrders(3);i<Counts;i++)
        {
         PutOrder(3,(Ask+Delta*_Point+i*Delta*_Point));
         Sleep(100);
        }
       }
      t=Time[0];    
     }
 //  if(CountTrades()>0) DelOrder();
  }


*think* 
avatar

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

  • 6 августа 2018, 20:16
+
0
avatar

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

  • 6 августа 2018, 08:49
+
0
avatar

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

  • 6 августа 2018, 12:28
+
0
Интересная игрушка получилась, не взначай *crazy* :D 
Тест за 1 год-2017...*uptrend* 


avatar

  18  Marik007 Сообщений: 400 - Forexman

  • 6 августа 2018, 19:17
+
0
Покажи настройки
avatar

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

  • 6 августа 2018, 22:38
+
0
Спалил себе мозги

заказывай на следующий месяц :) 
avatar

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

  • 6 августа 2018, 21:40
+
+1
Плюс одна ошибка.
В функции скользящего стопа.
Дословно там: если покупки, если цена открытия ниже на размер Х от текущей цены, если стоп ниже от текущей цены на Х, то изменяем ордер.
Если продажи то всё то же самое, но при этом если вдруг стоп равен нулю.
Как то не справедливо к покупкам относимся.
С тебя причитается. Прошу скинуть все личные изменения и дополнения этого советника с настройками одним архивом. Спасибо.
avatar

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

  • 11 августа 2018, 16:23

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