AM2
Андрей

 
Уровень 35

  Торгую в компаниях:


Группа "Программирование на MQL"

Рейтинг 280



Еще один советник за 2000$

В поисках торговых систем успешно показавших себя на истории и в реальных торгах, я вчера наткнулся на этот советник. Меня поразила кривая баланса, средства не отставали и я захотел себе такой же. Я скачал советник посмотрел как он открывает сделки и применив всего лишь парочку фильтров получил интересные результаты. Они хоть и уступают советнику с маркета, но все равно заслуживают внимания! Весь незамысловатый код уместился всего лишь в сотню строк.





Рис.1. Результаты теста оригинального советника с 1999-го года.

Советник FOREXSTAY LIGHT — это развитая экспертная система, которая работает с 10 стратегиями и 10 фильтрами и может открывать и управлять до 100 сделок за одну секунду. Также этот простой советник не требует оптимизации или сложных настроек. Просто добавьте его на график, и он будет работать как часы. Измените время ManualGMToffset на время вашего брокера, и совершайте сделки или тестируйте его на GBPUSD (так как советник создавался именно для этой пары). Но вы можете совершать сделки или тестировать советник и на EURUSD или любой иной паре без изменения настроек. Перед запуском советника на реальном счете желательно провести тестирование на истории или на демо-счете.

Советник FOREXSTAY LIGHT работает на большом количестве наших реальных счетов. Работу можно проверить на нашем реальном счете на сайте MQL5, пройдя по ссылке www.mql5.com/ru/users/forexstay. В течение ВСЕХ лет с 1999 года мы применяем одни и те же настройки.

Советник FOREXSTAY LIGHT применяет десять «умных» стратегий и не использует Мартингейл, хеджирование или сетку. Он всегда применяет стоп-лосс для защиты вашего капитала с низкой просадкой и работает на всех брокерах. Советнику необходима всего лишь одна настройка, последующая оптимизация не требуется. Мы создали и разработали советник FOREXSTAY LIGHT для работы только на графиках M15, и если вы хотите, чтобы советник принес хорошую прибыль, необходимо совершать сделки на паре GBPUSD.

Рекомендуется работать с брокером с низким спредом и VPS. Подходит плечо 1:400 или более. При микро-счете вы можете начать использование советника всего лишь с 50$.

Клиентам

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

Результат Тестера Стратегий с настройками по умолчанию:

Тестирование за 16 лет: На паре GBPUSD с 1999 по 2014 год он заработал более 744 981 965,25$ от стартового депозита 10 000$ при Risk= 25%
Тестирование за 16 лет: На паре EURUSD с 1999 по 2014 год он заработал более 575 021 692,59$ от стартового депозита 10 000$ при Risk= 45%
Главные параметры. Не изменяйте их, если не уверены в своих действиях.

Параметры

AllowTrading=true; — разрешение на торговлю.
Lots — размер фиксированного лота при значении FALSE в параметре мани-менеджмента.
UseMM=true; — включение управления капиталом (мани-менеджмент).
LotsRiskReductor — процент от эквити для торговли.
MaxLots — максимальный размер лота (при указанном выше значении параметра MM лот не увеличивается).
TradeMicroLots=true; — рекомендуется применять данный параметр при размере торгового лота от 0,01 до 0,1 и включенном параметре UseMM.
UseAutoGMToffset — автоматический расчет смещения GMT. Не работает в тестере.
ManualGMToffset — ручное выставление смещения GMT. Для остальных ДЦ сравнивает время с предыдущими двумя.
UseDST — переход на летнее/зимнее время. Установите значение TRUE для периода с 13 марта по 6 ноября (13.03 - 06.11).
StartWorkTimeHour — час начала торговли (время начала).
StartSessionMinute — минута начала торговли.
EndSessionMinute — минута завершения торговли.
TradeMonday — разрешение на торговлю в понедельник (False, если торговля не проводится).
TradeFriday — разрешение на торговлю в пятницу.
TradeInStartMonth — разрешение на торговлю с 1 по 4 число каждого месяца. Торговля проводится при значении True.
TradeInEndMonth — разрешение на торговлю с 26 по 31 число каждого месяца. Торговля проводится при значении True.
MaximumTrades — максимальное количество ордеров.
MaxSpread — максимальный спред.
Slippage — проскальзывание. Не больше и не меньше 1-2 предположений.
RequoteAttempts=3; — максимальное количество повторений в реквотах и других ошибок при открытии/закрытии ордеров.
LongTrade — переключение на длинные позиции.
ShortTrade — переключение на короткие позиции.
TakeProfit — тейк-профит.
StopLoss — стоп-лосс.
UseFilterMA=false; — фильтр советником FOREXSTAY. Начинает действие немедленно для всех групп сигналов. Включение не рекомендуется.
PeriodFilterMA=80
PriceFilterMA=1
MethodFilterMA=1


Код советника:


//+------------------------------------------------------------------+
//|                                                          ea2.mq4 |
//|                                           Copyright © 2015, AM2. |
//|                                      http://www.forexsyatems.biz |
//+------------------------------------------------------------------+

#property copyright "Copyright © 2015, AM2."
#property link      "http://www.forexsyatems.biz"

#define MagicNumber  20150509

extern double StopLoss     = 290;
extern double TakeProfit   = 130;
extern double BBPeriod     = 8;
extern double BBDev        = 2.4;
extern double Razmah       = 400;
extern int    StartHour    = 22;        // начало торговли
extern int    EndHour      = 8;         // окончание торговли
extern double Lots         = 0;
extern double minLots      = 0.1;
extern double maxLots      = 1000;
extern int    Risk_percent = 55;
//+------------------------------------------------------------------+
//| Check for open order conditions                                  |
//+------------------------------------------------------------------+
void CheckForOpen()
  {
//----   
   int    res;
//---- get Indicatorrs
   double bbh=iBands(NULL,0,BBPeriod,BBDev,0,PRICE_CLOSE,MODE_UPPER,1);
   double bbl=iBands(NULL,0,BBPeriod,BBDev,0,PRICE_CLOSE,MODE_LOWER,1);
   double r=bbh-bbl;
//---- buy 
   if(Ask<bbl && OrdersTotal()<1 && r<=Razmah*Point)
      //if(Low[2]<bbl && Close[1]>bbl&& Ask>ma && OrdersTotal()<1)   
     {
      res=OrderSend(Symbol(),OP_BUY,Lot(),Ask,30,Ask-StopLoss*Point,Ask+TakeProfit*Point,"",MagicNumber,0,Blue);
     }
//---- sell   
   if(Bid>bbh && OrdersTotal()<1 && r<=Razmah*Point)
      //if(High[2]>bbh && Close[1]<bbh  && Bid<ma && OrdersTotal()<1) 
     {
      res=OrderSend(Symbol(),OP_SELL,Lot(),Bid,30,Bid+StopLoss*Point,Bid-TakeProfit*Point,"",MagicNumber,0,Red);
     }
  }
//+------------------------------------------------------------------+
//| Check for close order conditions                                 |
//+------------------------------------------------------------------+
void CheckForClose()
  {
//---- get Indicatorrs 
   double bbh=iBands(NULL,0,BBPeriod,BBDev,0,PRICE_CLOSE,MODE_UPPER,0);
   double bbl=iBands(NULL,0,BBPeriod,BBDev,0,PRICE_CLOSE,MODE_LOWER,0);
//----
   for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if(OrderMagicNumber()!=MagicNumber || OrderSymbol()!=Symbol()) continue;
      //---- check order type 
      if(OrderType()==OP_BUY)
        {
         if(OrderProfit()>0) bool cl=OrderClose(OrderTicket(),OrderLots(),Bid,30,White);
         break;
        }
      if(OrderType()==OP_SELL)
        {
         if(OrderProfit()>0) cl=OrderClose(OrderTicket(),OrderLots(),Ask,30,White);
         break;
        }
     }
//----
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Lot()
  {
   double lots;
   if(Lots==0)
     {
      lots=AccountFreeMargin()/100000*Risk_percent;

      lots=MathMin(maxLots,MathMax(minLots,lots));
      if(minLots<0.1)
         lots=NormalizeDouble(lots,2);
      else
        {
         if(minLots<1) lots=NormalizeDouble(lots,1);
         else          lots=NormalizeDouble(lots,0);
        }
     }  
    else lots=Lots;
    
   return(lots);
  }
//+------------------------------------------------------------------+
//| Start function                                                   |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(Volume[0]>1) return;
   if(Hour()>=StartHour)CheckForOpen();
   if(Hour()<=EndHour)CheckForOpen();
   if(Hour()>EndHour && Hour()<StartHour) CheckForClose();
  }
//+------------------------------------------------------------------+






Рис.2. Результаты теста написанного советника с 2000-го года.



Рис.3. Результаты работы написанного советника.

П.С. Немного доработав данный советник и применив более совершенные фильтры вполне возможно превзойти результаты оригинала.
  • +7
  • Просмотров: 18135
  • 10 мая 2015, 20:32
  • AM2
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

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

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

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

+
0
*shock* 
avatar

  8  Miha Сообщений: 485 - Михаил

  • 10 мая 2015, 21:47
+
0
Цена хороша))
avatar

  3  Rugal Сообщений: 9

  • 11 мая 2015, 07:48
+
0
avatar

  1  Sashulya Сообщений: 2

  • 8 июня 2015, 00:19
+
+1
У меня в тестере льёт...*cry*  (пара GBPUSD м15 5-ти знак) А можете подсказать с какими настройками вы проходили тест. Спасибо.*hi* 
avatar

  1  YADenis Сообщений: 1

  • 3 июня 2015, 00:54
+
0
а можно узнать, Андрей, вы советника взломали ex4 в mt4 или нет? то есть сами придумали похожий алгоритм или посмотрели немного идеи в взломанном? И что вы скажете насчет постоянного лота 100, начиная с 2002..2004 года у вас и у оригинального советника в тестере?
avatar

  1  Sashulya Сообщений: 2

  • 8 июня 2015, 00:09
комментарий был удален 2015-07-27 11:48:58 AM2

+
0
Кривая, вернее, почти прямая эквити конечно впечатляет.

Но. «может открывать и управлять до 100 сделок за одну секунду».

Внимание, вопрос: какой наш так называемый дилинговый центр позволит торговать с такой интенсивностью? Ответ: видимо, никакой :)  Более того, кажется, ни один не позволит с частотой даже 100 сделок в час.
avatar

  0  TrendDealer Сообщений: 1

  • 22 августа 2015, 12:25

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