Скачать MetaTrader 5

Кто может написать советника?

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Опубликуй задачу в сервисе Фриланс и разработчики выполнят ее.
MeZirg
12
MeZirg 2010.11.08 16:00 

Это очень прибыльная система проверенно на реале!

 

Стратегия проста! Если линия голубая, надо чтоб советник продал, как только линия поменяет цвет на синий то надо чтоб он закрыл предидущую и  купил!

Кто сможет бесплатно! Это советник не лично мне, а всему форуму! 

Файлы:
Andrew Kornishkin
7011
Andrew Kornishkin 2010.11.08 18:30  
MeZirg:

Это очень прибыльная система проверенно на реале!

 

Стратегия проста! Если линия голубая, надо чтоб советник продал, как только линия поменяет цвет на синий то надо чтоб он закрыл предидущую и  купил!

Кто сможет бесплатно! Это советник не лично мне, а всему форуму! 

Как то так:


//+------------------------------------------------------------------+
//|                                              Moving Averages.mq5 |
//|          Copyright Copyright 2010, MetaQuotes Software Corp.,AM2 |
//|                                              http://www.mql5.com |
//|                                   http://www.crossmaker.narod.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright 2010, MetaQuotes Software Corp.,AM2."
#property link      "http://www.mql5.com"
#property link      "http://www.crossmaker.narod.ru "
#property version   "1.04"

#include <Trade\Trade.mqh>

input int    MovingPeriod       = 20;      // Moving Average period

//---
int   ExtHandle=0;

//+------------------------------------------------------------------+
//| Check for open order conditions                                  |
//+------------------------------------------------------------------+
void CheckForOpen()
  {
   MqlRates rt[2];
//--- go trading only for first ticks of new bar
   if(CopyRates(_Symbol,_Period,0,2,rt)!=2)
     {
      Print("CopyRates of ",_Symbol," failed, no history");
      return;
     }
   if(rt[1].tick_volume>1) return;
//--- get current Moving Average
   double   ma[3];
   if(CopyBuffer(ExtHandle,0,0,3,ma)!=3)
     {
      Print("CopyBuffer from iMA failed, no data");
      return;
     }
//--- check signals
   ENUM_ORDER_TYPE signal=WRONG_VALUE;

   if(ma[0]>ma[1]) signal=ORDER_TYPE_SELL;    // sell conditions
   else
      if(ma[0]<ma[1]) signal=ORDER_TYPE_BUY;  // buy conditions
//--- additional checking
   if(signal!=WRONG_VALUE)
      if(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED))
         if(Bars(_Symbol,_Period)>200)
           {
            CTrade trade;
            trade.PositionOpen(_Symbol,signal,1,
                               SymbolInfoDouble(_Symbol,signal==ORDER_TYPE_SELL ? SYMBOL_BID:SYMBOL_ASK),
                               0,0);
           }
//---
  }
//+------------------------------------------------------------------+
//| Check for close order conditions                                 |
//+------------------------------------------------------------------+
void CheckForClose()
  {
   MqlRates rt[2];
//--- go trading only for first ticks of new bar
   if(CopyRates(_Symbol,_Period,0,2,rt)!=2)
     {
      Print("CopyRates of ",_Symbol," failed, no history");
      return;
     }
   if(rt[1].tick_volume>1) return;
//--- get current Moving Average
   double   ma[3];
   if(CopyBuffer(ExtHandle,0,0,3,ma)!=3)
     {
      Print("CopyBuffer from iMA failed, no data");
      return;
     }
//--- positions already selected before
   bool signal=false;
   long type=PositionGetInteger(POSITION_TYPE);

   if(type==(long)POSITION_TYPE_BUY   && ma[0]>ma[1]) signal=true;
   if(type==(long)POSITION_TYPE_SELL  && ma[0]<ma[1]) signal=true;
//--- additional checking
   if(signal)
      if(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED))
         if(Bars(_Symbol,_Period)>200)
           {
            CTrade trade;
            trade.PositionClose(_Symbol,3);
           }
//---
  }
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   ExtHandle=iCustom(NULL,0,"trend",MovingPeriod);
//---
   return(0);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   if(PositionSelect(_Symbol)) CheckForClose();
   else                        CheckForOpen();
//---
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
  }
//+------------------------------------------------------------------+

 

Ashes
3297
Ashes 2010.11.08 23:11  
AM2:

Как то так:

 

Интересная ситуация. Пытаюсь запустить приведенный выше код в тестере. Компиляция - без ошибок. При запуске в тестере:

 

2010.11.08 22:20:30 Tester loading of C:\Program Files\MetaTrader 5\MQL5\Experts\is7n_trend.ex5 failed
2010.11.08 22:20:30 MQL5 wrong type, loading of is7n_trend failed

??? (build 353).

Andrew Kornishkin
7011
Andrew Kornishkin 2010.11.09 00:35  
Ashes:

Интересная ситуация. Пытаюсь запустить приведенный выше код в тестере. Компиляция - без ошибок. При запуске в тестере:

 

2010.11.08 22:20:30 Tester loading of C:\Program Files\MetaTrader 5\MQL5\Experts\is7n_trend.ex5 failed
2010.11.08 22:20:30 MQL5 wrong type, loading of is7n_trend failed

??? (build 353).

А вы переименовали is7n_trend в trend ?

Или здесь замена:

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---   ExtHandle=iCustom(NULL,0,"trend",MovingPeriod);
//---   return(0);
  }
//+------------------------------------------------------------------+

на:

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---   ExtHandle=iCustom(NULL,0,"is7n_trend",MovingPeriod);
//---   return(0);
  }
//+------------------------------------------------------------------+

 

Ashes
3297
Ashes 2010.11.09 01:45  
AM2:

А вы переименовали is7n_trend в trend ?

Или здесь замена:

на:

 

Всё понял: в "советнике" не оказалось OnTick, OnTrade, OnTimer, но есть OnCalculate... И вообще текст советника скачался совершенно не такой (имя-такое)...

Оказалось, это первоначальный вариант. Что-то не соображу, как выцепить код - все копируется одной длиннной строкой... 

Документация по MQL5: Основы языка / Типы данных / Тип string
Документация по MQL5: Основы языка / Типы данных / Тип string
  • www.mql5.com
Основы языка / Типы данных / Тип string - Документация по MQL5
Andrew Kornishkin
7011
Andrew Kornishkin 2010.11.09 12:39  
Ashes:

Всё понял: в "советнике" не оказалось OnTick, OnTrade, OnTimer, но есть OnCalculate... И вообще текст советника скачался совершенно не такой (имя-такое)...

Оказалось, это первоначальный вариант. Что-то не соображу, как выцепить код - все копируется одной длиннной строкой... 

Вот файл эксперта exptrend.mq5. Положите его в папку /Experts.

И файл индикатора trend.mq5. Д.б. в папке /Indicators. 

 

 

Файлы:
trend.mq5 4 kb
exptrend.mq5 5 kb
VladMih
144
VladMih 2011.07.03 21:07  
MeZirg:

Это очень прибыльная система проверенно на реале! 

Стратегия проста! Если линия голубая, надо чтоб советник продал, как только линия поменяет цвет на синий то надо чтоб он закрыл предидущую и  купил!

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

1.  Открываемся на пробое последнего мах (хай) Х баров  при условии, что на этих Х баров был откат хотя бы по хаям (можно усложнить, но можно попробовать и НАСТОЛЬКО "тупо").

2. СЛ - под минимумом этих Х баров (он может быть и на пробойном!!!), ТП= Y% от СЛ.

Для начала Y=100%, далее можно оптимизировать и его, и Х. Для Х желательно будет подобрать ДИАПАЗОН, т.е. минимальное и максимальное количество баров. Думаю, что должно получиться как минимум несливалово, которое потом можно будет и доработать (в т.ч. "нормировать"/оптимизировать величину отката).

И главное - забудьте про перевороты, особенно на МА. Ситуация есть - выскочил, урвал кусок и назад, в кусты. Совсем не факт, что рынок на малейшем качке должен разворачиваться даже на тяжелой МА, а у вас мелкая МАша... 

PS: набросал "мимоходом", если где описка - сорри, ИМХО смысл понятен. 

Улучшить введением доп. фильтра (напр. МАКД или одной  более тяжелой МА) элементарно, но начать лучше с того, что написал. 

VladMih
144
VladMih 2011.07.03 21:25  

Вообще-то если говорить об оптимизации, то начинать надо с периода МА - подбирать под конкретный инструмент и таймфрейм, сначала визуально/грубо, исходя из того, какие сигналы предпочтительней, а потом уж всё остальное.

Мне всё равно понадобится такой элемент как составная часть будущего советника, поэтому если у кого получится что-нибудь приличное в первом приближении, могу предложить совместно ПЛОТНО поработать онлайн/реалтайм  на ОБЩЕЕ благо. С МАшами работаю давно и плотно, на них основана моя главная ТС.

Sergey Rukhlyadev
152
Sergey Rukhlyadev 2013.05.13 18:06  
AM2:

Вот файл эксперта exptrend.mq5. Положите его в папку /Experts.

И файл индикатора trend.mq5. Д.б. в папке /Indicators. 

 

 

мне показалось или в настройках советника действительно только период МА?
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий