В каких случаях есть смысл держать часть кода робота в индикаторе? - страница 15

 
OneDepo:

Нет, не будет. Вы же видите в коде, что управляется процесс расчета сигнала (только последний бар или заданные nMax баров) параметром prevVals[0]. Если он 0, то восстанавливаем по расчет по nMax баров. Управляет значением prevVals[0] другой код.

Но давайте не уклоняться, ближе к сути. Есть два варианта, указанные выше, что быстрее в тестере? Так


Откуда я могу знать, если нет всего кода. Вставьте его в эксперта так, как он там должен быть, тогда будет разговор по существу и можно будет сравнить быстродействие.
 
Integer:

Может ошибся с коэффициентов, сечас проверю, но принцип от этого не изменится.

Речь не про коэффициенты. А про то что ЕМА первые n баров дает не корректное значение, потом все нормально. В советнике это нужно учитывать. Иначе при каждом обрыве связи будут проблемы со значениями
 
Vinin:

Речь не про коэффициенты. А про то что ЕМА первые n баров дает не корректное значение, потом все нормально. В советнике это нужно учитывать. Иначе при каждом обрыве связи будут проблемы со значениями

Такое устроит?

extern double Alpha = 0.1;

double EMA;

double GetPrice( int Shift )
{
  return(Open[Shift]);
}

void init()
{
  int i = Bars - 1;
  
  EMA = GetPrice(i);
  i--;
  
  while (i > 0)
  {
    EMA = EMA * Alpha + (1 - Alpha) * GetPrice(i);
    i--;
  }
  
  return;
}  

void start()
{
  static int PrevTime = 0;
    
  if (PrevTime == Time[0])
    return;
 
  PrevTime = Time[0];
    
  EMA = EMA * Alpha + (1 - Alpha) * GetPrice(0);
  
  return;  
} 
 
Vinin:

Речь не про коэффициенты. А про то что ЕМА первые n баров дает не корректное значение, потом все нормально. В советнике это нужно учитывать. Иначе при каждом обрыве связи будут проблемы со значениями


Не будет проблем, индикатор пересчитается после проблем с получением данных.

То, что с левого края криво, в начале графика, тоже не совсем уж такая проблема, тестер пропускает первую 1000 баров. 

Вот, ровно слева (в приложении).

Файлы:
iema_1.mq4  1 kb
 
Integer:

Откуда я могу знать, если нет всего кода. Вставьте его в эксперта так, как он там должен быть, тогда будет разговор по существу.
Пожалуйста, вариант для тестирования
Файлы:
bb-ii-08.mq4  11 kb
 
Integer:


Не будет проблем, индикатор пересчитается после проблем с получением данных.

То, что с левого края криво, в начале графика, тоже не совсем уж такая проблема, тестер пропускает первую 1000 баров.

Вот, ровно слева (в приложении).


Я про советник говорил, а не про индикатор. Его я уже видел. Только говорил не все это не тебе, а hrenfx
 
hrenfx:

Такое устроит?


Осталось только предусмотреть обрывы связи и подкачку истории (к сожалению это бывает). Индикатор это обрабатывает без проблем. Вот советник этого в упор не видит.
 
OneDepo:
Пожалуйста, вариант для тестирования

Не подходит на объявленную номинацию. Будут ошибки после обрыва связи, чем меньше таймфрейм, тем чаще и больше будут ошибки.
 
Vinin:

Осталось только предусмотреть обрывы связи и подкачку истории (к сожалению это бывает). Индикатор это обрабатывает без проблем. Вот советник этого в упор не видит.

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

... И вдруг меняется история...

Абалдеть!
Причина обращения: