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

Рейтинг 2146



РЕКОМЕНДУЮ



Советник «POKER» (MQL5)

Тезка, доброго времени суток! *hi* 
Наступил момент, когда я могу попросить тебя сделать мне сову *drinks*  не факт конечно, что возьмешься (не знаю просто сложно или нет). Так вот…

ТЗ — СовенокSovenok «POKER» (MQL5).ZIP (284 Kb) «poker» (MQL5, для 4 и 5 значных брокеров).

Каждые раз, после закрытия свечи советник смотрит на наличие сигнала, а это:
в случае BAY
1) индикатор heiken_ashi зеленого цвета;
2) индикатор Awesome_Oscillator зеленого цвета;
3) индикатор BB_MACD зеленого цвета;
4) размер тела (без хвостов) сигнальной свечи не менее ХХХ пунктов;
5) закрытие свечи выше ЕМА8 (период 8, сдвиг 0, метод Exponential, применить к close).
Покупаем рыночным ордером.

Для SELL все сигналы наоборот.

Закрытие позиции:
1) по SL;
2) по TP;
3) по обратному сигналу (функция отключаемая).

Необходимые параметры в советнике:
1) размер лота;
2) размер TP;
3) размер SL;
4) размер тела свечи в пунктах ХХХ менее которого сигнал нужно игнорировать;
5) проскальзывание ХХХ пунктов при открытии ордера по рынку;
6) закрытие позы по обратному сигналу (true/false);
7) в случае открытия позиции сигнал на email (true/false);
8) Magic number.

P.S. Если позиция открыта, то другие сигналы игнорируются до момента закрытия открытого ордера!
Все необходимые индикаторы и шаблон в архиве.
  • +4
  • Просмотров: 5289
  • 5 ноября 2016, 20:14
  • poker
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

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

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

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

+
+1
Начну сегодня, посмотрим что получится.
avatar

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

  • 5 ноября 2016, 21:49
+
+1
Просьба скидывать изображения в топик чтобы всегда были перед глазами

avatar

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

  • 5 ноября 2016, 22:11
+
0
Я когда писал прикреплял картинку и архив, но только архив прицепился *cry*  что то не так делал видимо… спасибо!
avatar

  22  poker Автор Сообщений: 849

  • 6 ноября 2016, 09:57
+
+2
С пользовательским индикатором у меня виснет и глючит. Менять надо на стандартный. Без пользовательского все нормально работает. Можете убедиться:


//+------------------------------------------------------------------+
//|                                                        Poker.mq5 |
//|                                              Copyright 2016, AM2 | 
//|                                     https://www.forexsystems.biz | 
//+------------------------------------------------------------------+ 
#property copyright "Copyright 2016, AM2" 
#property link "https://www.forexsystems.biz" 
#property version   "1.00"

#include <Trade\Trade.mqh>                 // Use CTrade Class

input double   Lot        = 1;
input int      TakeProfit = 333;       // Тейкпрофит
input int      StopLoss   = 333;       // Стоплосс
input int      Slip       = 50;        // Проскальзывание
input long     Magic      = 123;       // Магик

                                       //BB_MACD indicator parameters
input string   IndName    = "BB_MACD";
input int      FastLen    = 12;
input int      SlowLen    = 26;
input int      Length     = 10;
input int      barsCount  = 400;
input double   StDv       = 2.5;

int BBHandle=0,AOHandle=0,MAHandle=0;
double bb1[1],bb2[1],ma[1],ao1[1],ao2[1];
CTrade trade;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   double Ask=SymbolInfoDouble(_Symbol,SYMBOL_ASK);
   double Bid=SymbolInfoDouble(_Symbol,SYMBOL_BID);

   AOHandle=iAO(NULL,0);
   MAHandle=iMA(NULL,0,8,0,1,0);
   BBHandle=iCustom(NULL,0,IndName);
   CopyBuffer(AOHandle,0,0,1,ao1);
   CopyBuffer(AOHandle,0,1,1,ao2);
   CopyBuffer(MAHandle,0,0,1,ma);
   CopyBuffer(BBHandle,0,0,1,bb1);
   CopyBuffer(BBHandle,0,1,1,bb2);

   if(PositionsTotal()<1)
     {
      if(Ask>ma[0] && ao1[0]>ao2[0] && bb1[0]>bb2[0]) trade.PositionOpen(_Symbol,0,Lot,Ask,Ask-StopLoss*_Point,Ask+TakeProfit*_Point);
      if(Ask<ma[0] && ao1[0]<ao2[0] && bb1[0]<bb2[0]) trade.PositionOpen(_Symbol,1,Lot,Bid,Bid+StopLoss*_Point,Bid-TakeProfit*_Point);
     }

   Comment(ao1[0]);
  }
//+------------------------------------------------------------------+

avatar

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

  • 5 ноября 2016, 23:13
+
0
Да мне не столь важно, можно и стандартный, главное работает <img src='http://opentraders.ru/templates/skin/g6h/images/smilies/002.gif' alt=' :) '>&nbsp;  спасибо огромное тезка!!!
P.S. BB_MACD для наглядности, а так стандартный MACD можно… рост значит зеленый, уменьшение — красный.
Редактирован: 6 ноября 2016, 10:26
avatar

  22  poker Автор Сообщений: 849

  • 6 ноября 2016, 09:58
+
+2
Cейчас есть открытие закрытие по двум индюкам, мыло и остальное :) 



//+------------------------------------------------------------------+
//|                                                        Poker.mq5 |
//|                                              Copyright 2016, AM2 | 
//|                                     https://www.forexsystems.biz | 
//+------------------------------------------------------------------+ 
#property copyright "Copyright 2016, AM2" 
#property link "https://www.forexsystems.biz" 
#property version   "1.00"

#include <Trade\Trade.mqh>             // Use CTrade Class

input double   Lot        = 1;         // Лот
input int      TakeProfit = 333;       // Тейкпрофит
input int      StopLoss   = 333;       // Стоплосс
input int      Points     = 50;        // Размер свечи
input int      Slip       = 50;        // Проскальзывание
input bool     Mail       = true;      // Шлем на почту
input bool     CloseSig   = true;      // Закрытие по сигналу

                                       //BB_MACD indicator parameters
input string   IndName    = "BB_MACD";
input int      FastLen    = 12;
input int      SlowLen    = 26;
input int      Length     = 10;
input int      barsCount  = 400;
input double   StDv       = 2.5;

int BBHandle=0,AOHandle=0,MAHandle=0;
double bb1[1],bb2[1],ma[1],ao1[1],ao2[1],op[1],cl[1];
CTrade trade;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   double Ask=SymbolInfoDouble(_Symbol,SYMBOL_ASK);
   double Bid=SymbolInfoDouble(_Symbol,SYMBOL_BID);

   AOHandle=iAO(NULL,0);
   MAHandle=iMA(NULL,0,8,0,1,0);
//BBHandle=iCustom(NULL,0,IndName);
   CopyBuffer(AOHandle,0,1,1,ao1);
   CopyBuffer(AOHandle,0,2,1,ao2);
   CopyBuffer(MAHandle,0,1,1,ma);
//CopyBuffer(BBHandle,0,0,1,bb1);
//CopyBuffer(BBHandle,0,1,1,bb2);
   CopyOpen(NULL,0,1,1,op);
   CopyClose(NULL,0,1,1,cl);

   if(PositionsTotal()<1)
     {
      if(MathAbs((op[0]-cl[0])/_Point>Points))
        {
         if(Ask>ma[0] && ao1[0]>ao2[0]) 
           {
            trade.PositionOpen(_Symbol,0,Lot,Ask,Ask-StopLoss*_Point,Ask+TakeProfit*_Point);
            if(Mail) SendMail("Position Open","Open Buy");
           }
           
         if(Bid<ma[0] && ao1[0]<ao2[0]) 
           {
            trade.PositionOpen(_Symbol,1,Lot,Bid,Bid+StopLoss*_Point,Bid-TakeProfit*_Point);
            if(Mail) SendMail("Position Open","Open Sell");
           }
        }
     }

   if(PositionsTotal()>0)
     {
      if(MathAbs((op[0]-cl[0])/_Point>Points) && CloseSig)
        {
         if(Ask>ma[0] && ao1[0]>ao2[0] && PositionGetInteger(POSITION_TYPE)==1) trade.PositionClose(_Symbol);
         if(Bid<ma[0] && ao1[0]<ao2[0] && PositionGetInteger(POSITION_TYPE)==0) trade.PositionClose(_Symbol);
        }
     }

   Comment(MathAbs((op[0]-cl[0])/_Point));
  }
//+------------------------------------------------------------------+

avatar

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

  • 6 ноября 2016, 00:31
+
0
Тезка СПАСИБО огромное! Есть только один момент… я так и не научился текстовый вариант преобразовывать в програмульку *stesnitelno*  нет ссылки на скачивание готового советника?
Не мешало бы пару уроков взять мне как делать из написанного сову *wall* 
avatar

  22  poker Автор Сообщений: 849

  • 6 ноября 2016, 10:00
+
+1
avatar

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

  • 6 ноября 2016, 12:57
+
0
Андрей, спасибо! Пошел гонять совенка :D 
avatar

  22  poker Автор Сообщений: 849

  • 6 ноября 2016, 13:31
+
0
Андрей, приветствую!
В процессе тестирования нашел 2 момента…
1) не по стратегии открыл ордер один раз...heiken_ashi зеленый, а позу открыл в селл, хотя не должен был…
2) возможно сделать открытие 1 раз ордера на свечке, другими словами — есть сигнал, открывает позу, я её руками закрываю, а он опять открывает… ну это и понятно, так прописано видимо…
А так пока все гуд!
P.S. Вот еще журналы… может помогут чем…
cloud.mail.ru/public/Jrq6/TqLzrWYs2
avatar

  22  poker Автор Сообщений: 849

  • 9 ноября 2016, 12:24
+
0
Открывает закрывает по МА и АО. Раз на свечке добавлю вечером.
avatar

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

  • 9 ноября 2016, 13:34
+
+1
Сделал раз на свечке:

//+------------------------------------------------------------------+
//|                                                        Poker.mq5 |
//|                                              Copyright 2016, AM2 | 
//|                                     https://www.forexsystems.biz | 
//+------------------------------------------------------------------+ 
#property copyright "Copyright 2016, AM2" 
#property link "https://www.forexsystems.biz" 
#property version   "1.00"

#include <Trade\Trade.mqh>             // Use CTrade Class

input double   Lot        = 1;         // Лот
input int      TakeProfit = 333;       // Тейкпрофит
input int      StopLoss   = 333;       // Стоплосс
input int      Points     = 50;        // Размер свечи
input int      Slip       = 50;        // Проскальзывание
input bool     Mail       = true;      // Шлем на почту
input bool     CloseSig   = true;      // Закрытие по сигналу

int AOHandle=0,MAHandle=0;
double ma[1],ao1[1],ao2[1],op[1],cl[1],opa[1],open;
CTrade trade;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   double Ask=SymbolInfoDouble(_Symbol,SYMBOL_ASK);
   double Bid=SymbolInfoDouble(_Symbol,SYMBOL_BID);

   AOHandle=iAO(NULL,0);
   MAHandle=iMA(NULL,0,8,0,1,0);

   CopyBuffer(AOHandle,0,0,1,ao1);
   CopyBuffer(AOHandle,0,1,1,ao2);
   CopyBuffer(MAHandle,0,1,1,ma);

   CopyOpen(NULL,0,1,1,op);
   CopyOpen(NULL,0,0,1,opa);
   CopyClose(NULL,0,1,1,cl);

   if(open!=opa[0])
     {
      if(PositionsTotal()<1)
        {
         if(MathAbs((op[0]-cl[0])/_Point>Points))
           {
            if(Ask>ma[0] && ao1[0]>ao2[0])
              {
               trade.PositionOpen(_Symbol,0,Lot,Ask,Ask-StopLoss*_Point,Ask+TakeProfit*_Point);
               if(Mail) SendMail("Position Open","Open Buy");
              }

            if(Bid<ma[0] && ao1[0]<ao2[0])
              {
               trade.PositionOpen(_Symbol,1,Lot,Bid,Bid+StopLoss*_Point,Bid-TakeProfit*_Point);
               if(Mail) SendMail("Position Open","Open Sell");
              }
           }
        }
      open=opa[0];
      
      if(PositionsTotal()>0 && open!=opa[0])
        {
         if(MathAbs((op[0]-cl[0])/_Point>Points) && CloseSig)
           {
            if(Ask>ma[0] && ao1[0]>ao2[0] && PositionGetInteger(POSITION_TYPE)==1) trade.PositionClose(_Symbol);
            if(Bid<ma[0] && ao1[0]<ao2[0] && PositionGetInteger(POSITION_TYPE)==0) trade.PositionClose(_Symbol);
           }
        }
      open=opa[0];
     }
  }
//+------------------------------------------------------------------+

Редактирован: 9 ноября 2016, 20:55
avatar

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

  • 9 ноября 2016, 20:31
+
0
Андрей, спасибо! А ты не перезалил его? А то я…
avatar

  22  poker Автор Сообщений: 849

  • 9 ноября 2016, 21:20
+
+1
avatar

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

  • 10 ноября 2016, 07:27

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