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

 

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

Что-то совсем простое, например, если текущая цена выше открытия текущего бара, то покупаем, если ниже - продаем.

Чем короче код, тем лучше.

Спасибо. 

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
4R8X:

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

Что-то совсем простое, например, если текущая цена выше открытия текущего бара, то покупаем, если ниже - продаем.

Чем короче код, тем лучше.

Спасибо. 

Здесь навалом
 
спасибо что не гугл))
 

Простота может быть обманчивой. Вот например индикатор:

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_plots   1

#property indicator_label1  "direct"
#property indicator_type1   DRAW_LINE
#property indicator_color1  clrRed
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1

double outBuffer[];

void OnInit()
  {
   SetIndexBuffer(0,outBuffer,INDICATOR_DATA);
  }

int OnCalculate(const int rates_total,
            const int prev_calculated,
            const datetime &time[],
            const double &open[],
            const double &high[],
            const double &low[],
            const double &close[],
            const long &tick_volume[],
            const long &volume[],
            const int &spread[])
  {

   for(int i=0; i<rates_total; i++)
     {
      if((close[i]-open[i])>0) outBuffer[i]=1;
      else if((close[i]-open[i])<0) outBuffer[i]=-1;
     }

   return(rates_total);
  }

И элементарный до предела, бот по его сигналам:

#include <Trade\Trade.mqh>

double cond[];
int i_h;
CTrade trade;

void OnInit()
  {
   i_h=iCustom(NULL,0,"s_ind");
  }

void OnTick()
  {
   CopyBuffer(i_h,0,0,1,cond);

   if(cond[0]<0){
   trade.Buy(0.1);}
   else if(cond[0]>0) {
   trade.Sell(0.1);}
  }

Понятно что это гротеск примитива, сомневаюсь что кто то сможет ещё более упростить, но на тестах он лупит профит))) А если отмаскировать такой банальный принцип по суточной активности, то есть включать в потенциально трендовое время, а выключать на вялом рынке, то получится вообще псевдо грааль. Но это только на тестах.

Не обольщайтесь это иллюзия. На самом деле слив со скоростью спреда.

Файлы:
s_ind.mq5  1 kb
s_ea.mq5  1 kb
 
Alex_Bondar:

Простота может быть обманчивой. Вот например индикатор:

И элементарный до предела, бот по его сигналам:

Понятно что это гротеск примитива, сомневаюсь что кто то сможет ещё более упростить, но на тестах он лупит профит))) А если отмаскировать такой банальный принцип по суточной активности, то есть включать в потенциально трендовое время, а выключать на вялом рынке, то получится вообще псевдо грааль. Но это только на тестах.

Не обольщайтесь это иллюзия. На самом деле слив со скоростью спреда.

Класс! Я недавно тоже именно это хотел спросить, но 4R8X Опередил! Потому что коды советников в кодобазе часто непростые для понимания новичком, как и тот что порождается генератором советников по сигналам.

А такой элементарный минимальный эксперт вдохновляет! Хочется понять что сердцевина а что дополнительные детали.

Единственное, что у меня в тестре почему-то совсем другая картинка. То есть убытки а не прибыль, с чем это может быть связанно?

 
perepel:

Класс! Я недавно тоже именно это хотел спросить, но 4R8X Опередил! Потому что коды советников в кодобазе часто непростые для понимания новичком, как и тот что порождается генератором советников по сигналам.

А такой элементарный минимальный эксперт вдохновляет! Хочется понять что сердцевина а что дополнительные детали.

Единственное, что у меня в тестре почему-то совсем другая картинка. То есть убытки а не прибыль, с чем это может быть связанно?

сли в с скоростью спреда, что ВЫ хотели от советника длинной в 10 строк? 
 
Vladon:
сли в с скоростью спреда, что ВЫ хотели от советника длинной в 10 строк? 

Прошу прощение, беру свои слова обратно. Но результаты всё равно другие, хотя на RoboForex терминале они уже гораздо круче. Действительно это как здесь принято говорить «грааль» Вот мои тесты на RoboForex


Стоит заметить что я естественно уже успел наиграиться с генерацией кода с помощью визарда от различных индикаторов, в слепую пока что, как ни странно коды выходят гигансткие а тесты сливные. А здесь мега-лаконичный код и в принципе интересная кривая при тестировании. Не понятно почему на ней есть такие гиганские импульсы в низ? Если их предусмотреть то будет конфетка.  

При всём уважении, но в приложенных файлах в коде ошибка!!! Интересно что в коде на форуме её уже нет. Это по всей видимости защита от дурака.

Но всё равно большое спасибо, за код. Даже я легко понял как он работает. Для таких новичков как я очень в тему начинать именно с таких супер простых рабочих примеров, а затем усложнять плавно. Чтобы не оглушать сразу излишней структурностью, которая по большей части состоит из не необходимых элементов, но какие необходимые а какие нет, понять новичку сразу нельзя и возникает печалька.

 

Прошу прощения за скорей всего банальные вопросы…

Как понимать выражение «А на деле слив со скоростью спреда»? Верно ли я понял, что при тестировании что то не учтено и эти не учтенные факторы настолько искажают картину что дают совсем неадекватный тестированию результат?

Если в каждой сделке в среднем убытки в размере спреда и комисии, то логично предположить что торговля полностью случайная. Каким образом происходит такая трансформация?

Если бы этот бот работал  на демо счете, в тот промежуток времени в который он затем в ретроспективе тистировался, насколько результаты будут отличаться?

Хочется понять это проблема тестирования как такового, или связанна с нюансами только конкретного реального счета?

Другими словами, насколько тестирование коррелирует с результатами реальной торговли?

Какие условия этой коррреляции в зависимости от ТС и существует ли алгоритм приведения результатов тестера максимально близко к реальным, чтобы можно было ориентироваться на тестрирование?

Спасибо.

 

perepel:
Действительно это как здесь принято говорить «грааль»

Угу, грааль.                         

Вот вам и загадка на начальное понимание рынка и тестера МТ:

Почему в тестере этот элементарный советник-грааль, но не есть таковой даже на демо?

Это будет первый экзамен. Если вы действительно поняли как он работает.

На счет того что маленький, то не значит что заведомо сливной, размер не имеет значения в данном случае. Сама решающая формула вычисления из одного или многих цВР, итоговых торговых сигналов (-1,0,1), обычно не большая, даже для довольно нетривиальных алгоритмов. Ещё короче формулы для расчета лота в алгоритме ММ. 99% массы кода это всякие исключения и технические програмерские моменты которые прямо не соотносятся с главным алгоритмом. Они и создают иллюзию сложности, но эта иллюзия быстро исчезает, как начинаешь сам писать и тестировать.

 
Alex_Bondar:           

Вот вам и загадка на начальное понимание рынка и тестера МТ:

Почему в тестере этот элементарный советник-грааль, но не есть таковой даже на демо?

Это будет первый экзамен. Если вы действительно поняли как он работает.

Очень нестабильная система, при тестировании на OHLC показывает профит, на тиках уже слив, на одних тайм фрэймах профит на других слив. Почему так не знаю. Какому режиму доверять тоже не знаю. Экзамен пока не прошёл, но обязательно пройду. Полагаю всё дело в каких то особенностях тестера. Так как стратегия тривиальна: Покупать если свеча бычья и продавать если медвежья. Элементарная трендовая ТС.

 
perepel:

Очень нестабильная система, при тестировании на OHLC показывает профит, на тиках уже слив, на одних тайм фрэймах профит на других слив. Почему так не знаю. Какому режиму доверять тоже не знаю. Экзамен пока не прошёл, но обязательно пройду. Полагаю всё дело в каких то особенностях тестера. Так как стратегия тривиальна: Покупать если свеча бычья и продавать если медвежья. Элементарная трендовая ТС.

Вам все такие надо занятся не изучением строк советника, а некоторым азам работы на бирже. минимальным азам. 
Причина обращения: