Функция --> Индикатор

 

Попался на глаза старый советник с простейшым модулем откырия-закрытия ордеров по сигналам одной функции.

Результаты робастые, на разных тф/парах.

Нехило грузит процессор.

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

В идикаторных тонкостях я еще зелен, с буферАми мыкаюсь :), поэтому обратился.

Кто сделает просьба поделиться.

double Ind (int RSIOMA = 5)

{
double rel,negative,positive;
int i=Bars-RSIOMA-1;

//---- Начальный ноль
double RSIbuf=0.0;
//----
while(i>=0)
{
double sumn=0.0,sump=0.0;

if(i==Bars-RSIOMA-1)
{
int k=Bars-2;
//---- Начальное накопление---------------------------------------------------------------------------
while(k>=i)
{

double cma = iMA(Symbol(),0,RSIOMA,0,MODE_EMA,PRICE_CLOSE,k);
double pma = iMA(Symbol(),0,RSIOMA,0,MODE_EMA,PRICE_CLOSE,k+1);

rel=cma-pma;

if(rel>0) sump+=rel;
else sumn-=rel;
k--;
}
positive=sump/RSIOMA;
negative=sumn/RSIOMA;
}

//---- Приглаженное скользящее среднее значение----------------------------------------------------------
double ccma = iMA(Symbol(),0,RSIOMA,0,MODE_EMA,PRICE_CLOSE,i);
double ppma = iMA(Symbol(),0,RSIOMA,0,MODE_EMA,PRICE_CLOSE,i+1);

rel=ccma-ppma;

if(rel>0) sump=rel;
else sumn=-rel;
positive=(positive*(RSIOMA-1)+sump)/RSIOMA;
negative=(negative*(RSIOMA-1)+sumn)/RSIOMA;

if(negative==0.0) RSIbuf=0.0;
else RSIbuf=100.0-100.0/(1+positive/negative);
i--;
}
return(RSIbuf);
}
 
Жаль что никого не зинтересовала эта функция. А между тем советник неплохо отторговал на демо последние выкрутасы на всех парах где он стоял.
 
Это не близко?
 
BLACK_BOX писал(а) >>
Жаль что никого не зинтересовала эта функция. А между тем советник неплохо отторговал на демо последние выкрутасы на всех парах где он стоял.

А поспать после тяжелой недели! Просто поспать, в смысле - без дамы :)

Вот ваш индюк, без оптимизаций кода. Плюс - не перерисовывает. Можете сами убедиться, прогнав в тестере в режиме "мультяшки" и убрав комменты "//!!".

Файлы:
 
granit77 >>:

Это не близко?

Очень даже близко. Спасибо!

OneDepo >>:

А поспать после тяжелой недели! Просто поспать, в смысле - без дамы :)

Вот ваш индюк, без оптимизаций кода. Плюс - не перерисовывает. Можете сами убедиться, прогнав в тестере в режиме "мультяшки" и убрав комменты "//!!".


Конечно-конечно поспать обязательно надо, чтобы в выходные быть на творческой волне ;).

А вот за индюшок большое спасибо! Весьма неплох.