Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 174

 
GameOver:

ну не совсем так.

есть массив отношений величин. одной к другой. это не абсолютные значения, а индексы, отношения.
это значит, что скажем 0.5 - это не "на 50% меньше". это значит, меньше В 2 РАЗА
а 0.2 - это не на 80% меньше, а в 5 раз.
при этом 2 или 5 - это как раз корректно, выражает суть - в 2 и 5 раз больше, соответственно

пример массива
1.2 1.02 0.833 10 0.98 0.1


Уважаемый что не так? я же скрипт написал вам, может не совсем понял что и как вы мыслите - но ведь блин рабочий

double volume[7]={1,1.2, 1.02, 0.833, 10, 0.98, 0.1};
int aver_bar=7;                         
//double muss[n];
 for (  int n=0; n>=0;n--)                                          // n - номер бара для поиска коеффициента, i- количество баров в которіх будет найдено коефф.
 {
  double z,k,zz,f;
  k=0;                                                              // k счетчик
  z=volume[n];                                                      // Volume- буфер величины которую сравниваем, z-записываем чтобы каждый раз не обращаться в массив
  for (int m=n+aver_bar-1; m>=n+1;m--)                              // перебор всех баров влияющих на коееф.
  {
   zz=(volume[m])/z-1;                                              // отношение во сколько раз величина на исходном баре больше или меньше искомого 
   if( zz<0) zz= -1/(zz+1)+1;                                       // если величина zz меньще 1
   k+=zz;                                                           // сумируем в k значение
  }       
  //muss[n]=-k/((aver_bar-1)/1.0);                                  //  рассчитиваем коеффициент на n-м  баре
  Alert ("rez = ", k/((aver_bar-1)/1.0)+1);
 }

Алерт возвращает 0.9999

Индикатор посторенный на етом алгоритме показывает неправильную логику ( вернее если в индикаторе будет muss[n]=-k/((aver_bar-1)/1.0) в место muss[n]=k/((aver_bar-1)/1.0)+1)

И он чемто напоминает отдаленно RSI но более чувствителен (в плане угла наклона между барами)

 

если кто знает иное, математическое решение - буду благодарен )


Нету иного решения, так как вы массив разделяете на две части для которых производите разные вычисления

1) для чисел больше 1 - находите прирост члена массива в процентах от единицы

2) для чисел меньше 1 - находите прирост от меньшего единицы числа в процентах, чтобы получить единицу, и результат берете со знаком минус "-"

3) находите среднее ареффметическое значений рассчитаных по двум разным формулам

4) прибавляете единицу (непонятно зачем, честно говоря, возможно для дальнейших расчетов, но нагляднее когда все крутится вокруг 0 (по крайней мере лично мне) )

 
ALXIMIKS:


4) прибавляете единицу (непонятно зачем, честно говоря, возможно для дальнейших расчетов, но нагляднее когда все крутится вокруг 0 (по крайней мере лично мне) )


по этому пункту я пояснял уже.

если посчитать пример типа 0.2 5 5 0.2 без прибавления 1цы, получится 0.
но нам то надо коэффициент. физическим смысл ноля в данном случае - "значение не изменится".
т е коэф на самом деле 1.0

при этом если все значения скажем равны -> 5 5 5 5
итог будет 5 - и это будет верным итогом.

у меня получилось как то так

for(i=0; i<n; i++){ // цикл по массиву
if (Arr[i]>=1) {Sum=Sum+(Arr[i]-1);}
else (Sum=Sum-(1/Arr[i] -1));
}
Sum=Sum/n;

if (Sum>0) res=1+Sum;
else res=-1/(Sum-1);

зачем это надо?
ну скажем, надо найти отношение HL вторника к HL понедельника, среднее за -цать лет ;-)



 
GameOver:


зачем это надо?
ну скажем, надо найти отношение HL вторника к HL понедельника, среднее за -цать лет ;-)

а как учитывать операции с нульом вы придумали? ОНО очень влияет если в массиве дельта каких-то величин))
 
rosomah:

А в MQL5 есть тиковая история, не в курсе? Я как не читал и там найти не смог.

В МТ5 тиковой истории тоже нет. В тестере тики генерируются, каким образом описывается здесь.
 
pu6ka:
В МТ5 тиковой истории тоже нет. В тестере тики генерируются, каким образом описывается здесь.
thank you, уже прочёл, любимая тема, последние три дня.
 

Добрый день, уважаемые!

Прошу помощи в поиске или написания элементарного советника.

Условия следующие:

Если предыдущий бар растет, (open < close) то на текущем мы продаем.

Если предыдущий бар падает, (open > close) то на текущем мы покупаем.

Открытие позиции происходит по цене open нового бара. Закрытие позиции происходит по закрытию бара.

Сам не могу че-то найти.

Заранее спасибо.

 
zorkiy911:

Добрый день, уважаемые!

Прошу помощи в поиске или написания элементарного советника.

Условия следующие:

Если предыдущий бар растет, (open < close) то на текущем мы продаем.

Если предыдущий бар падает, (open > close) то на текущем мы покупаем.

Открытие позиции происходит по цене open нового бара. Закрытие позиции происходит по закрытию бара.

Сам не могу че-то найти.

Заранее спасибо.


И не найдете, потому что смысла в этом нет. Если думаете что смысл всё же есть, предоставьте картинку с чарта с отмеченными точками входа и выхода, хотябы за один день, только с учетом спреда.
 
BeerGod:

И не найдете, потому что смысла в этом нет. Если думаете что смысл всё же есть, предоставьте картинку с чарта с отмеченными точками входа и выхода, хотябы за один день, только с учетом спреда.
Я достаточно четко представляю для чего мне нужен такой советник, поэтому огромная просьба помочь. Словом или делом) У самого пока не получается написать. Что за картинку нужно сделать?
 
zorkiy911:
Я достаточно четко представляю для чего мне нужен такой советник, поэтому огромная просьба помочь. Словом или делом) У самого пока не получается написать. Что за картинку нужно сделать?

Откройте великую тайну, для чего такой алгоритм ?

по вашему условию будет так

с реверсом

но стабильности не будет ни в первом ни во втором случае.

Советник набросал за 5ть минут, балуйтесь)

Файлы:
Причина обращения: