То есть, я так понимаю, никто не знает, почему при вызове внутренней функции, содержащей вызов даных индикаторов, начинаются тормоза? Сие есть тайна за семью печатями? :( Печально...
То есть, я так понимаю, никто не знает, почему при вызове внутренней функции, содержащей вызов даных индикаторов, начинаются тормоза? Сие есть тайна за семью печатями? :( Печально...
Нормальный код. Надо посмотреть, как ты его вызываешь. Если каждый тик, то будет тормозить.
Функция данная вызывается побарно.
Вопрос не в том, будет не будет тормозить. Она не тормозит! На ДРУГИХ билдах. А на 180 - тормозит!
Вопрос не в том, будет не будет тормозить. Она не тормозит! На ДРУГИХ билдах. А на 180 - тормозит!
К сожалению, это не код эксперта, а лишь вырванный фрагмент.
По фрагменту никто теста провести не может, не так ли?
Приходится повторять: если есть вопрос по экспертам, то без кода эксперта не стоит надеяться на ответ.
Жаль, что раз за разом появляются однотипные вопросы без кода.
По фрагменту никто теста провести не может, не так ли?
Приходится повторять: если есть вопрос по экспертам, то без кода эксперта не стоит надеяться на ответ.
Жаль, что раз за разом появляются однотипные вопросы без кода.
Хм... Там же всё стандартное, чего его выкладывать то было?
Надо весь - вот вам весь. Вызывает другой индикатор, но так же успешно безуспешно не работает!
extern int ADX=18, ADXPM=18, ADXPer=10;
datetime prevtime;
//| Функция определения тренда |
int Trend() // Возвращает int переменную, если -1 - то нижний тренд, если 1 - то верхний
{
int znak=0;
if (iADX(NULL, 0, ADXPer, PRICE_CLOSE, MODE_MAIN, 1)>ADX && iADX(NULL, 0, ADXPer, PRICE_CLOSE, MODE_MINUSDI, 1)>ADXPM) znak=-1;
if (iADX(NULL, 0, ADXPer, PRICE_CLOSE, MODE_MAIN, 1)>ADX && iADX(NULL, 0, ADXPer, PRICE_CLOSE, MODE_PLUSDI, 1)>ADXPM) znak=1;
return(znak);
}
// конец функции
//+------------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//----------------------------------------------------------------------------------/
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
if(prevtime != Time[0])
{
prevtime = Time[0];
// Проверяем ПОКУПКИ
if (Trend()==-1) Print("Покупка!");
// Проверяем ПРОДАЖИ
if (Trend()==1) Print("Продажа!");
}
//----
return(0);
}
Надо весь - вот вам весь. Вызывает другой индикатор, но так же успешно безуспешно не работает!
extern int ADX=18, ADXPM=18, ADXPer=10;
datetime prevtime;
//| Функция определения тренда |
int Trend() // Возвращает int переменную, если -1 - то нижний тренд, если 1 - то верхний
{
int znak=0;
if (iADX(NULL, 0, ADXPer, PRICE_CLOSE, MODE_MAIN, 1)>ADX && iADX(NULL, 0, ADXPer, PRICE_CLOSE, MODE_MINUSDI, 1)>ADXPM) znak=-1;
if (iADX(NULL, 0, ADXPer, PRICE_CLOSE, MODE_MAIN, 1)>ADX && iADX(NULL, 0, ADXPer, PRICE_CLOSE, MODE_PLUSDI, 1)>ADXPM) znak=1;
return(znak);
}
// конец функции
//+------------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//----------------------------------------------------------------------------------/
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
if(prevtime != Time[0])
{
prevtime = Time[0];
// Проверяем ПОКУПКИ
if (Trend()==-1) Print("Покупка!");
// Проверяем ПРОДАЖИ
if (Trend()==1) Print("Продажа!");
}
//----
return(0);
}
Если надо ещё информации - система Windows 2000, Celeron 2.4GHz, 512 RAM
Запустил на 180 билде:
1) прогон на 17000 баров - меньше секунды в режиме open prices
2) в режиме тестирования с перебором 23 значений первого параметра - 3 секунды.
Не заметил ни одного тормоза.
Может стоит сначала определиться, что понимаете под тормозами?
И почему тело функции Trend() вдруг заменилось с Ишимоки на iADX ?
1) прогон на 17000 баров - меньше секунды в режиме open prices
2) в режиме тестирования с перебором 23 значений первого параметра - 3 секунды.
Не заметил ни одного тормоза.
Может стоит сначала определиться, что понимаете под тормозами?
И почему тело функции Trend() вдруг заменилось с Ишимоки на iADX ?
Вот и меня удивляет - в чем тут дело!
По времени - сейчас скажу:
тестирование на периоде с 2003-01-01 по сейчас - все тики - после закачки внутренних периодов - 105 секунд.
Тут же запускаю его на 178 с теми же параметрами - 15 секунд.
Заменил Ишимоку на ADX - просто короче текст, суть та же (я сейчас гонял на ADX).
Из-за чего такая ерунда - понять не могу!
По времени - сейчас скажу:
тестирование на периоде с 2003-01-01 по сейчас - все тики - после закачки внутренних периодов - 105 секунд.
Тут же запускаю его на 178 с теми же параметрами - 15 секунд.
Заменил Ишимоку на ADX - просто короче текст, суть та же (я сейчас гонял на ADX).
Из-за чего такая ерунда - понять не могу!
Причем на OpenPrices гоняет быстро и там и тут (что не удивительно).
А вот как только идет фрактальная интерполяция, как я понимаю - тут то и начинается "волшебство"....
А вот как только идет фрактальная интерполяция, как я понимаю - тут то и начинается "волшебство"....
Скачай версию 180 для установки с сайта. Удали свою. Сотри все папки которые удалятор не удалит и переустанови метатрейдер из нового установщика.
PS. Папку с экспертами своими сохрани.
PS. Папку с экспертами своими сохрани.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
И что в нем такого особенного, что в 178 он пашет как из пушки, а в 180 тормозит???
//+------------------------------------------------------------------------+
//| Функция определения тренда |
//+------------------------------------------------------------------------+
extern int TenkanSen=8, KijunSen=5;
int Trend() // Возвращает int переменную, если -1 - то нижний тренд, если 1 - то верхний
{
int znak=0;
double tksenStart=iIchimoku(NULL, 0, 9, 26, 52, MODE_TENKANSEN, 3);
double tksenEnd=iIchimoku(NULL, 0, 9, 26, 52, MODE_TENKANSEN, 3+TenkanSen);
double kjsenStart=iIchimoku(NULL, 0, 9, 26, 52, MODE_KIJUNSEN, 4);
double kjsenEnd=iIchimoku(NULL, 0, 9, 26, 52, MODE_KIJUNSEN, 4+KijunSen);
// Проверяем Down тренд...
// ... по Ишимоку
if (tksenStart<tksenEnd && kjsenStart!=kjsenEnd) znak=-1;
// Проверяем Up тренд...
// ... по Ишимоку
if (tksenStart>tksenEnd && kjsenStart!=kjsenEnd) znak=1;
return(znak);
}
// конец функции
//+------------------------------------------------------------------------+
?... вот в чем вопрос ! :)