Жаль что никого не зинтересовала эта функция. А между тем советник неплохо отторговал на демо последние выкрутасы на всех парах где он стоял.
BLACK_BOX писал(а) >>
Жаль что никого не зинтересовала эта функция. А между тем советник неплохо отторговал на демо последние выкрутасы на всех парах где он стоял.
Жаль что никого не зинтересовала эта функция. А между тем советник неплохо отторговал на демо последние выкрутасы на всех парах где он стоял.
А поспать после тяжелой недели! Просто поспать, в смысле - без дамы :)
Вот ваш индюк, без оптимизаций кода. Плюс - не перерисовывает. Можете сами убедиться, прогнав в тестере в режиме "мультяшки" и убрав комменты "//!!".
Файлы:
forblackbox.mq4
3 kb
Очень даже близко. Спасибо!
OneDepo >>:
А поспать после тяжелой недели! Просто поспать, в смысле - без дамы :)
Вот ваш индюк, без оптимизаций кода. Плюс - не перерисовывает. Можете сами убедиться, прогнав в тестере в режиме "мультяшки" и убрав комменты "//!!".
Конечно-конечно поспать обязательно надо, чтобы в выходные быть на творческой волне ;).
А вот за индюшок большое спасибо! Весьма неплох.

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Попался на глаза старый советник с простейшым модулем откырия-закрытия ордеров по сигналам одной функции.
Результаты робастые, на разных тф/парах.
Нехило грузит процессор.
Хотелось бы глянуть на значения этой самой функции на истории, т.е. сделать на ее основе индикатор, возможно немного прооптимизировав код.
В идикаторных тонкостях я еще зелен, с буферАми мыкаюсь :), поэтому обратился.
Кто сделает просьба поделиться.
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);
}