Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1101

 
EgorKim:

А как это сделать? В смысле проверить актуальность.

Ну проверяю я чтобы не 0.0 (код выше).

Что я могу ещё сделать? Что мне индикатор отдает - то я и принимаю.

На то он и индикатор

Ошибка в самом индикаторе.

Уже кучю советников переписал и такая проблема впервые.

Можете сами посмотреть и собрать советник, логику я привел выше.

И убедиться как балдеет терминал и тестер. Результаты пляшут даже при одинаковых параметрах индикатора)

 
Vladimir Karputov:

Вы индикатор взяли из КодоБазы? Если так, то можно его URL?

Да

https://www.mql5.com/ru/code/64

Plombiers - Осциллятор в канале
Plombiers - Осциллятор в канале
  • www.mql5.com
Просмотров: 6747 Рейтинг: Опубликован: 2010.01.26 12:54 Обновлен: 2016.11.22 07:33 Пример использования канала и осциллятора Stochastic. Иногда полезно смотреть поведение осциллятора в канале. Оценка ситуации упрощается. Изменяя параметры, можно гибко настроить отображение индикатора. Bulls Bears Power...
 

В общем пока можете потестировать (работает на индикаторе Plombiers - Осциллятор в канале - индикатор должен быть в папке [data folder]\MQL5\Indicators\plombiers.mq5)


Идея торговой стратегии

Советник работает по пользовательскому индикатору Plombiers. Для формирования сигналов рассматриваются две линии индикатора: "Resistance" и "Support".

Plombiers EA

Сигнал на открытие позиции BUY: цена Low на баре #1 была ниже линии "Support" на баре #1

Сигнал на открытие позиции SELL: цена High на баре #1 была выше линии "Resistance" на баре #1

//+------------------------------------------------------------------+
//| Search trading signals                                           |
//+------------------------------------------------------------------+
bool SearchTradingSignals(void)
  {
   double means[],resistance[],support[];
   MqlRates rates[];
   ArraySetAsSeries(means,true);
   ArraySetAsSeries(resistance,true);
   ArraySetAsSeries(support,true);
   ArraySetAsSeries(rates,true);
   int start_pos=0,count=3;
   if(!iGetArray(handle_iCustom,0,start_pos,count,means) || 
      !iGetArray(handle_iCustom,1,start_pos,count,resistance) || 
      !iGetArray(handle_iCustom,2,start_pos,count,support) || 
      CopyRates(m_symbol.Name(),Period(),start_pos,count,rates)!=count)
     {
      return(false);
     }

   int size_need_position=ArraySize(SNeedPosition);
   if(rates[1].low<support[1])
     {
      if(!InpReverse)
        {
         ArrayResize(SNeedPosition,size_need_position+1);
         SNeedPosition[size_need_position].pos_type=POSITION_TYPE_BUY;
         return(true);
        }
      else
        {
         ArrayResize(SNeedPosition,size_need_position+1);
         SNeedPosition[size_need_position].pos_type=POSITION_TYPE_SELL;
         return(true);
        }
     }
   if(rates[1].high>resistance[1])
     {
      if(!InpReverse)
        {
         ArrayResize(SNeedPosition,size_need_position+1);
         SNeedPosition[size_need_position].pos_type=POSITION_TYPE_SELL;
         return(true);
        }
      else
        {
         ArrayResize(SNeedPosition,size_need_position+1);
         SNeedPosition[size_need_position].pos_type=POSITION_TYPE_BUY;
         return(true);
        }
     }
//---
   return(true);
  }
 
Vladimir Karputov:

В общем пока можете потестировать (работает на индикаторе Plombiers - Осциллятор в канале - индикатор должен быть в папке [data folder]\MQL5\Indicators\plombiers.mq5)


Идея торговой стратегии

Советник работает по пользовательскому индикатору Plombiers. Для формирования сигналов рассматриваются две линии индикатора: "Resistance" и "Support".


Сигнал на открытие позиции BUY: цена Low на баре #1 была ниже линии "Support" на баре #1

Сигнал на открытие позиции SELL: цена High на баре #1 была выше линии "Resistance" на баре #1

Со старшего таймфрейма возьмите данные Support и Resistance

Т.е на входе оптимизатора должен быть MTF индикатор

input ENUM_TIMEFRAMES TimeFramePlombiers=PERIOD_H4;

handle_Plombiers=iCustom(Symbol(),TimeFramePlombiers,"plombiers",итд);

Как то так

 
EgorKim:

Со старшего таймфрейма возьмите данные Support и Resistance

Т.е на входе оптимизатора должен быть MTF индикатор

Как то так

1. Никаким MTF тут и не пахнет :) . Просто таймфрейм индикатора отличный от текущего. Но если брать таймфрейм отличный от текущего тогда нужно и цены брать с таймрфейма отличного от текущего.

2. Теперь можете испытывать.


version   "1.001"


Запускал на M5, а во входных параметрах ставил H1 - три запуска дали одинаковы результат по прибыли. (тест проходить должен как минимум в режиме "Все тики" - никаких OHLC и цен открытия!)

Файлы:
Plombiers_EA.mq5  102 kb
 
Vladimir Karputov:

1. Никаким MTF тут и не пахнет :) . Просто таймфрейм индикатора отличный от текущего. Но если брать таймфрейм отличный от текущего тогда нужно и цены брать с таймрфейма отличного от текущего.

2. Теперь можете испытывать.


version   "1.001"

Параметры по умолчанию

2019.07.22 15:38:11.876 2018.02.02 00:50:00   Не удалось скопировать значения индикатора. Error =4806,  copied =-1
[Удален]  
Vladimir Karputov:

1. Никаким MTF тут и не пахнет :) . Просто таймфрейм индикатора отличный от текущего. Но если брать таймфрейм отличный от текущего тогда нужно и цены брать с таймрфейма отличного от текущего.

2. Теперь можете испытывать.


version   "1.001"


Запускал на M5, а во входных параметрах ставил H1 - три запуска дали одинаковы результат по прибыли. (тест проходить должен как минимум в режиме "Все тики" - никаких OHLC и цен открытия!)

Владимир, "Все тики" - это для шлифовки. Если в более быстрых (и не точных) режимах не работает, то никакие "все тики" уже не помогут...

 
Vladimir Karputov:

Запускал на M5, а во входных параметрах ставил H1 - три запуска дали одинаковы результат по прибыли. (тест проходить должен как минимум в режиме "Все тики" - никаких OHLC и цен открытия!)

И вот так

2019.07.22 15:42:17.407 2018.02.02 00:07:01   Не удалось скопировать значения индикатора. Error =4806,  copied =-1


 
EgorKim:

И вот так


Поменяйте торговый сервер. Выставьте в настройках терминала количество баров минимум 500 000. Перезагрузите терминал.

Настройки платформы - Начало работы - MetaTrader 5
Настройки платформы - Начало работы - MetaTrader 5
  • www.metatrader5.com
Торговая платформа обладает множеством настроек, что позволяет организовать работу в ней так, как это удобно именно вам. Выполните команду " Настройки" меню "Сервис" или нажмите "Ctrl+O". Графики — общая настройка отображения ценовых графиков, а также настройка параметров управления объектами: выделение объектов после их создания, немедленная...
 
Vladimir Karputov:

Поменяйте торговый сервер. Выставьте в настройках терминала количество баров минимум 500 000. Перезагрузите терминал.

Хмм

Проверил на демо счете в той же конторе) Нет ошибок.

На реальном счете есть ошибки. Никакие бары в настройках не менял,т.к стоят больше 500 000.


Это что, намек?

Сейчас буду тестировать на корректность тестера

upd

Ваш вариант очень долго оптимизируется.

Несколько проходов глянул - результаты не расходятся