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

Рейтинг 2146



РЕКОМЕНДУЮ




Лучшее от dron5237



"Bollinger Toucher 2021" Комментариев 30
2021-04-08 16:53:33Рейтинг 0

Советник "Ловушка". Комментариев 50
2021-11-11 22:07:35Рейтинг 0

Советник "Ловушка".

Добрый день.Если не сложно, напишите советник для мт4. Суть такова. При запуске: настройки: смена таймфрейма, выбор стоплоса в пунктах, смена тейка в пунктах, смена лота сделки, учёт спреда чтоб можно прописать какой спред, если ноль то без учёта спреда. При выборе допустим Н4, основываясь на период графика неделя, советник определяет самый хай и самый лоу по свече, не по хвостам, предыдущей недели. И выставляет отложку, на самый хай за предыдущую неделю  байстоп, а на самый лоу по телу селлстоп. Но с учётом что ни хай ни лой предыдущей недели небыл перебит.   И так же на Н1, только тут период предыдущего дня. Д1 предыдущий период за месяц. И т.д. по тайфрендам. Чтоб выставлял отложки с тейком и селом в обе стороны, если небыло перебития. Вроде понятно написал))
  • +1
  • Просмотров: 2945
  • 11 ноября 2021, 22:07
  • dron5237
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

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

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

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

+
0
подробные скрины где?
avatar

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

  • 11 ноября 2021, 22:09
+
0
avatar

  4  dron5237 Автор Сообщений: 57

  • 11 ноября 2021, 22:14
+
0
avatar

  4  dron5237 Автор Сообщений: 57

  • 11 ноября 2021, 22:15
+
0
По разделитель периодов. Н1 за предыдущий день, Н4 за предыдущую неделю…
avatar

  4  dron5237 Автор Сообщений: 57

  • 11 ноября 2021, 22:17
+
0
Если допустим выбрал Н1 запустил, а хай перебит, то выставляет только на лоу отложку. И наоборот. Если не перебито то в обе стороны.
avatar

  4  dron5237 Автор Сообщений: 57

  • 11 ноября 2021, 22:21
+
0
Ещё что то нужно?)
avatar

  4  dron5237 Автор Сообщений: 57

  • 11 ноября 2021, 22:23
+
0
на 12-е
avatar

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

  • 11 ноября 2021, 22:43
+
0
Стесняюсь спросить) 12 числа этого месяца?)
avatar

  4  dron5237 Автор Сообщений: 57

  • 12 ноября 2021, 20:34
+
0
*lalala* 
avatar

  4  dron5237 Автор Сообщений: 57

  • 11 ноября 2021, 22:45
+
0
avatar

  4  dron5237 Автор Сообщений: 57

  • 12 ноября 2021, 10:09
+
0
Вот период Н1, та свеча которая стоит справа на полосе периода(выделил на скрине) она относиться к предыдущему периоду и является хаем, как на скрине.
avatar

  4  dron5237 Автор Сообщений: 57

  • 12 ноября 2021, 10:11
+
0
так примерно?




//+------------------------------------------------------------------+
//|                                                      ProWeak.mq4 |
//|                                              Copyright 2021, AM2 |
//|                                     https://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, AM2"
#property link      "https://www.forexsystems.biz"
#property version   "1.00"
#property strict

//--- Inputs
extern double Lots       = 0.1;      // лот
extern double KLot       = 2;        // умножение лота
extern double MaxLot     = 5;        // максимальный лот

extern int StopLoss      = 333;      // лось
extern int TakeProfit    = 4444;     // язь

extern int TrailingStop  = 25;       // трал

extern int Delta         = 100;      // расстояние от цены
extern int Shift         = 1;        // сдвиг
extern int Slip          = 30;       // реквот
extern int Magic         = 0;        // магик

extern ENUM_TIMEFRAMES TF = PERIOD_W1; // период свечи

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   Comment("");
//---
   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,Lot(),NormalizeDouble(price,_Digits),Slip,sl,tp,"",Magic,0,clr);
   return;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Lot()
  {
   double lot=Lots;
   for(int i=OrdersHistoryTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
        {
         if(OrderProfit()>0)
            break;
         if(OrderProfit()<0)
           {
            lot=OrderLots()*KLot;
            break;
           }
        }
     }
   if(lot>MaxLot)
      lot=Lots;
   return(lot);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int CountTrades()
  {
   int count=0;
   for(int 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(int 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 Trail()
  {
   bool mod;
   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(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;
                    }
                 }
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//| Удаление отложенных ордеров                                      |
//+------------------------------------------------------------------+
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 lo=iLow(NULL,TF,Shift);
   double hi=iHigh(NULL,TF,Shift);

   if(TrailingStop>0)
      Trail();

   if(CountTrades()>0)
      DelOrder();

   if(CountTrades()<1)
     {
      if(CountOrders(4)<1 && Bid<hi)
        {
         PutOrder(4,hi+Delta*_Point);
        }
      if(CountOrders(5)<1 && Bid>lo)
        {
         PutOrder(5,lo-Delta*_Point);
        }
     }

   Comment("\n Lot: ",Lot());
  }
//+------------------------------------------------------------------+

avatar

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

  • 12 ноября 2021, 21:39
+
0
Наверно). Я в графиках не силён
avatar

  4  dron5237 Автор Сообщений: 57

  • 12 ноября 2021, 21:57
+
0
Надо потестить чтоб понять
avatar

  4  dron5237 Автор Сообщений: 57

  • 12 ноября 2021, 21:57
+
0
Добрейшей души человек)))
avatar

  4  dron5237 Автор Сообщений: 57

  • 13 ноября 2021, 09:54
+
0
Результат смотрю хороший)
avatar

  4  dron5237 Автор Сообщений: 57

  • 12 ноября 2021, 22:35
+
0
Где советника скачать? Посмотреть всё ли так?
avatar

  4  dron5237 Автор Сообщений: 57

  • 12 ноября 2021, 23:54
+
0
avatar

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

  • 13 ноября 2021, 10:10
+
0
Спасибо.
avatar

  4  dron5237 Автор Сообщений: 57

  • 13 ноября 2021, 11:32
+
0
Что то он натягивает ордера на предыдущую свечу. А надо если по Н1 торговля то хай по телу свечи за прошедший день и лоу тоже по телу и тоже за период предыдущего дня. И настроек много) не понимаю зачем.смена таймфрейма, выбор стоплоса в пунктах, смена тейка в пунктах, смена лота сделки, учёт спреда
avatar

  4  dron5237 Автор Сообщений: 57

  • 13 ноября 2021, 21:28
+
0
extern ENUM_TIMEFRAMES TF = PERIOD_W1; // период свечи
avatar

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

  • 13 ноября 2021, 21:37
+
0
Это заклинание какое то?) Нельзя убрать столько настроек? Лот, тейк в пунктах, селл в пунктах ну трейлинг можно оставить. И всё.)
avatar

  4  dron5237 Автор Сообщений: 57

  • 13 ноября 2021, 22:44
+
0
В общепринятой терминологии
High — максимальная цена за период;
Low — минимальная цена за период;
В переводе с английского низкий и высокий.
Вы уже определитесь по хай лоу или по телу свечи — Open, Close.
И с настройками заберитесь.Исходя из настроек ставьте советник на график того или иного таймфрейма.
avatar

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

  • 13 ноября 2021, 21:45
+
0
По телу свечи по Н1 за предыдущий день самой верхней и самой нижней свечи. Буду разбираться, пока ниче не понятно)
avatar

  4  dron5237 Автор Сообщений: 57

  • 13 ноября 2021, 21:51
+
0
По телу свечи по Н1 за предыдущий день самой верхней и самой нижней свечи.
формулировка интересная. еще попробуй это машине объяснить
avatar

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

  • 14 ноября 2021, 08:45
+
0
Давайте я опять побуду переводчиком с вашего разрешения(плохо, что програмисты не занимаются трейдингом, может тогда бы лучше нас понимали).

Ему нужны два уровня(это дя часового графика):
верхний-- максимальная цена закрытия(цена close) за предыдущий день, а не цена hight
нижний-- минимальная цена закрытия(цена close)за предыдущий день, а не цена low.
avatar

  20  alex30774 Сообщений: 748

  • 14 ноября 2021, 10:42
+
0
Точно)))
avatar

  4  dron5237 Автор Сообщений: 57

  • 15 ноября 2021, 07:23
+
0
пробой с таким условием очень часто ложным оказывается: www.opentraders.ru/downloads/3178/

avatar

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

  • 14 ноября 2021, 09:17
+
0
Это смотря что хочешь от пробоя) смена тренда или взять своё и закрыть)
avatar

  4  dron5237 Автор Сообщений: 57

  • 15 ноября 2021, 07:30
+
0
Тестируйте.Для ваших «хотелок» вполне хватит.
Видно что по этой стратегии вы и не торговали, если не можете внятно объяснить условия выставления ордеров.
Если в настройках укажите extern ENUM_TIMEFRAMES TF = PERIOD_W1; // период свечи тогда торгуйте на Н4.
Если укажите в настройках extern ENUM_TIMEFRAMES TF = PERIOD_D1; // период свечи тогда торгуйте на Н1.
А вообще посмотрите в базе разный варианты советников.Это будет познавательно.

//+------------------------------------------------------------------+
//|                                                         OTL v0.1 |
//|                        Copyright 2013, MetaQuotes Software Corp. |
//|                                          http://www.mункцql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, MetaQuotes Software Corp."
#property link      "http://www.mункцql5.com"
#property version   "1.00"
#property strict
//+------------------------------------------------------------------+
//|                                                          OTL.mq4 |
//|                                            Copyright © 2013, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, AM2"
#property link      "http://www.forexsystems.biz"

// 1. Выставляем отложку на расстоянии Delta от цены в StartHour часов на пробой.
// 2. Время истечения ордера Expiration часов.
// 3. Ордер выставляется с установленными значениями стоплосс и тейкпрофит.
// 4. Торговля фиксированным лотом.
// 5. Торговля на открытии свечи на часовом графике.

#define MAGIC  20130228
extern ENUM_TIMEFRAMES TF  = PERIOD_W1; // период свечи
extern bool   Del          = false;    
extern double StopLoss     = 1000; //Стоплосс ордера  
extern double TakeProfit   = 1000; //Тейкпрофит ордера
extern int    StartHour    = 0;    //Час начала торговли(терминальное время)
extern int    Delta        = 100;  //Расстояние от цены для установки ордера
extern int    Expiration   = 23;   //Время истечения ордера
extern double Lot          = 0.1;  //Объём позиции

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---  
   int b,s,p,res;
   double BuyPrice=0; 
   double SellPrice=0;
   datetime expiration;  
   double op=iOpen(NULL,TF,1);
   double cl=iClose(NULL,TF,1);
//----   
   if(cl>op){
        BuyPrice=cl+Delta*Point;
        SellPrice=op-Delta*Point;
        }
     else{
        BuyPrice=op+Delta*Point;
        SellPrice=cl-Delta*Point;
        }
//----        
   if(Expiration>0){
         expiration = TimeCurrent()+3600*Expiration; 
        }
    else{
        expiration = 0;
        }   
//----        
   if(Volume[0]>1) return;
//----  
   for (int i=0; i<OrdersTotal(); i++)
    {
     if (OrderSelect(i, SELECT_BY_POS)==true)
      {  
        if (OrderSymbol()!=Symbol() || OrderMagicNumber()!=MAGIC) continue;
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) p++;
        if (OrderType()==OP_BUYSTOP) b++;
        if (OrderType()==OP_SELLSTOP) s++;        
      }   
    }
//----
   if(Del && p!=0)DelOrder();
//----       
   if(Hour()==StartHour){
//---- buy stop   
      if( b<1 && Bid<BuyPrice)  
        {
         res=OrderSend(Symbol(),OP_BUYSTOP,Lot,BuyPrice,0,BuyPrice-StopLoss*Point,BuyPrice+TakeProfit*Point,"",MAGIC,expiration,Blue);
        }
//---- sell stop        
     if( s<1 && Bid>SellPrice) 
       {
        res=OrderSend(Symbol(),OP_SELLSTOP,Lot,SellPrice,0,SellPrice+StopLoss*Point,SellPrice-TakeProfit*Point,"",MAGIC,expiration,Red );
      }            
   } 
//----
  }
//+------------------------------------------------------------------+
//| Удаление отложенных ордеров                                      |
//+------------------------------------------------------------------+
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());
           }
        }
     }
  }
//+------------------------------------------------------------------+


Это советник тоже из базы.Я его лишь немного переписал.
avatar

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

  • 14 ноября 2021, 10:01
+
0
сейчас сделано как на скрине:



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

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

  • 14 ноября 2021, 11:39
+
0
это уже работа советника:

avatar

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

  • 14 ноября 2021, 11:41
+
0
Вот так и надо, по телу. По Н1 за предыдущий день.
avatar

  4  dron5237 Автор Сообщений: 57

  • 15 ноября 2021, 07:17
+
0
Переделали? Можно качать и пробовать?)
avatar

  4  dron5237 Автор Сообщений: 57

  • 15 ноября 2021, 09:48
+
0
avatar

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

  • 16 ноября 2021, 19:03
+
0
Добрый вечер. Тестил на тестере. Не переставляет отложки на следующий день.После срабатывания одной из зделок, перестаёт вообще выставлять отложки…
avatar

  4  dron5237 Автор Сообщений: 57

  • 16 ноября 2021, 19:15
+
0
Добрый вечер. Тестил на тестере. Не переставляет отложки на следующий день.После срабатывания одной из зделок, перестаёт вообще выставлять отложки…
все это надо прописывать в тз когда выставлять через сколько удалять и др.
avatar

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

  • 16 ноября 2021, 21:22
+
0
Это где надо это настраивать? В настройках? в входных параметрах вроде нет таких настройках. Сорри что не догоняю…
avatar

  4  dron5237 Автор Сообщений: 57

  • 16 ноября 2021, 21:50
+
0
в первоначальном задании нужно все подробно описывать.
т.к. у вас ничего не было описано подробно сделал самый простой вариант.

у меня прописаны следующие условия:

1. ставим отложки если нет позиций.
2. ставим байстоп если нет байстопов
3. ставим селлстоп если нет селлстопов
4. удаляем отложку если появилась поза
avatar

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

  • 16 ноября 2021, 21:59
+
0
Может я не правильно донёс) но он должен переносить отложки, если начался другой день, отложки должны быть предыдущего дня, а не того дня когда советника включил. Т.е. день начался отложки перешли на предыдущий день. Бай стоп сработал, селлстоп стоит, не пропадает.Я так и писал: отложки Предыдущего дня. Если Н1.А так смысла от него? Он должен каждый день ловить хаи лои предыдущего дня(Н1 если торгуем)
avatar

  4  dron5237 Автор Сообщений: 57

  • 16 ноября 2021, 22:38
+
0
Ну все нюансы не объяснишь одним разом. Я думал так понятно ) Доброй души человек))
avatar

  4  dron5237 Автор Сообщений: 57

  • 17 ноября 2021, 20:01
+
0
Ну все нюансы не объяснишь одним разом. Я думал так понятно ) Доброй души человек))


к следующему топику подготовьте четкое тз
avatar

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

  • 17 ноября 2021, 20:26
+
0
Это когда?)) Я просто не в курсе)
avatar

  4  dron5237 Автор Сообщений: 57

  • 17 ноября 2021, 21:19
+
0
Этот топик доделаем?) Доброй души человек))
avatar

  4  dron5237 Автор Сообщений: 57

  • 17 ноября 2021, 21:47
+
0
Одно ТЗ в месяц.
В следующем месяце создавайте топик, с четким тз.
У Вас будет время обдумать всё
avatar

  14  verta81 Сообщений: 392

  • 17 ноября 2021, 21:59
+
0
Ок
avatar

  4  dron5237 Автор Сообщений: 57

  • 18 ноября 2021, 09:45
+
0
Доброе утро. Модно скрин настроек? По Н1 выставляю период свечи день, выставляет не по телу а по хвостам…
avatar

  4  dron5237 Автор Сообщений: 57

  • 15 ноября 2021, 07:15
+
0
Добрейшей души человек!
avatar

  4  dron5237 Автор Сообщений: 57

  • 15 ноября 2021, 07:31
+
+1
Хотел «Ловушку»?
Попал в «Ловушку»! аХАхахаХАХАХАХАХАХАХАХАХ
____аХАхахаХАХАХАХАХАХАХАХАХ
аХАхахаХАХАХАХАХАХАХАХАХ
avatar

  3  RinsWind Сообщений: 38

  • 18 ноября 2021, 10:44
+
+1
Поменяйте клавиатуру. У вас клавиши западают.
avatar

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

  • 18 ноября 2021, 12:44

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