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

 
alexey1979621:
Спасибо. Про вызов индикатора я знаю. Но настраиваемые параметры индикатора надо перечислять, когда мы их будем применять при тестировании или в работе, а поскольку этот советник протестировать в тестере невозможно (т.к. две пары принимают участие в торгах) - то подобрать эти параметры на истории просто невозможно.

Что-то мне подсказывает, что Вы не до конца понимаете о чём идёт речь. Этот индикатор берёт показания с двух разных валютных пар, эти пары задаются во внешних настройках индикатора. И если Вы в разных советниках на разных валютных парах обращаетесь к этому индикатору с параметрами по умолчанию, то получаете от него неверные значения. И не важно тестируете Вы его или балуетесь - сразу нужно прописывать работу с индикатором правильно!
alexey1979621:
Еще маленький вопрос у нас по двум инструментам сделки открываются или в селл или в бай, а если нам нужно одну открыть в селл по одному инструменту, а по другому в бай, тогда как?

Как пропишите условия открытия, так и будут открываться ордера. Я не разбирался с показаниями этого индикатора - ничем помочь не могу.

alexey1979621:
Советников работало 5 (братья близнецы - под разные пары), естественно с разными Мейджиками.

В Вашем варианте работа с Магиком прописана неверно. Ордера открываются с указанным Магиком, а вот проверка на ордера в рынке осуществляется с Магиком по умолчанию. Нужно так:

NumberOfPositions (/*рабочий символ*/, -1, Magic);
 

alexey1979621, может сначала попытаетесь на одной паре советник без ошибок написать, а потом уже мультивалютники?

 

Пытаюсь организовать тик для эксперта, - нихрена не выходит. Выходные врасплох застали. Как его правильно организовывать? Вот например имеем следующий элементарный эксперт:

int delay = 180;
datetime read_now;
int init(){
   read_now = TimeCurrent() + delay;
}
int start(){
   int how_many_remains = read_now - TimeCurrent();
   Comment(StringConcatenate(
      StringSubstr("-", (how_many_remains%60 >= 0), 0),
      StringSubstr("0", (MathAbs(how_many_remains/60) > 9), 0),
      MathAbs(how_many_remains/60),
      ":",
      StringSubstr("0", (MathAbs(how_many_remains%60) > 9), 0),
      MathAbs(how_many_remains%60)
   ));
   return(0);
}

- как сэмулировать тики и запустить таймер?

Я понимаю, что выходные, но на рынке расписание праздников не совпадает с теми же по РФ, да и работать-таки надо...

 
gyfto:

Пытаюсь организовать тик для эксперта, - нихрена не выходит. Выходные врасплох застали. Как его правильно организовывать? Вот например имеем следующий элементарный эксперт:

- как сэмулировать тики и запустить таймер?

Я понимаю, что выходные, но на рынке расписание праздников не совпадает с теми же по РФ, да и работать-таки надо...


зачем страдать тем, что не нужно будет???

выйдет официальный релиз новых билдов в районе 20 января и.

Там таймер реализован, с какой частотой надо с такой и будет вызываться.

Лучше силы пустить на изучение 5-ки, что бы не было тысяч тупых вопросов.

 
ALXIMIKS:


Там таймер реализован


Это для индикации до следующего парсинга данных. В 03:00 с самого советника запускается парсинг сторонним скриптом, в 00:00 данные выводятся на чарт, и всё запускается снова с настроенной частотой обновления данных в секундах. На пятёрке такая индикация с обратным отсчётом будет реализована проще?
 
К сожалению не компетентен в данном вопросе, но вот сохранил https://forum.mql4.com/ru/59441 чтобы на досуге почитать может вам будет полезно.
 
#property indicator_separate_window
#property indicator_buffers 3
#property indicator_color1 Gold
#property indicator_color2 Gold
#property indicator_color3 Gold
//+---------------------------------------------------------------------+
extern double _N_ = 1; 
extern double _M_ = -1; 
extern int History = 10000;
//+---------------------------------------------------------------------+
int p; 
//+---------------------------------------------------------------------+
double Buf_0[];
double Buf_1[];
double Buf_2[];
double RSI;
double ADX_Main; 
double ADX_dD;
double ADX_DD;
double price;
//+---------------------------------------------------------------------+  
bool R_adx;
bool R_time;
bool R_adx_time;
bool R_rsi_time;
bool R_rrsi_time;
//+---------------------------------------------------------------------+
int init()
{
//+---------------------------------------------------------------------+  
SetIndexBuffer(0,Buf_0);
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1);
//+---------------------------------------------------------------------+  
SetIndexBuffer(1,Buf_1);
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1);
//+---------------------------------------------------------------------+  
SetIndexBuffer(2,Buf_2);
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1);
//+---------------------------------------------------------------------+  
return;
}
//+---------------------------------------------------------------------+
int start()
{
//+---------------------------------------------------------------------+  
for(
p=0;
p<History;
p++)
{
//+---------------------------------------------------------------------+  
price = Bid;
//+---------------------------------------------------------------------+  
ADX_Main    = iADX(Symbol(),0,25,0,0,p);
ADX_dD      = iADX(Symbol(),0,25,0,1,p);
ADX_DD      = iADX(Symbol(),0,25,0,2,p);
RSI         = iRSI(Symbol(),0,25,0,p);
//+---------------------------------------------------------------------+  
R_adx         = (ADX_DD - ADX_dD) * ADX_Main; 
R_time        = Seconds() * Minute() * Hour(); 
//+---------------------------------------------------------------------+  
R_adx_time    = _N_ * (R_time + R_adx); 
R_rsi_time    = _N_ * (R_time + RSI);
R_rrsi_time   = _M_ * (R_time + RSI);
//+---------------------------------------------------------------------+  
Buf_0[p] = R_adx_time;
Buf_1[p] = R_rsi_time;
Buf_2[p] = R_rrsi_time;
//+---------------------------------------------------------------------+  
return; 
}
}
//+---------------------------------------------------------------------+  
Снова здравствуйте!
Всех поздравляю с праздником "Новый год"!

Очередная молва о помощи.
Индикатор "Н" не отображает линии.

Понять не могу с чем это связано.

Код индикатора "Н" представлен выше.
 
ALXIMIKS:
вот сохранил https://forum.mql4.com/ru/59441 чтобы на досуге почитать может вам будет полезно.

Да сам парсинг у меня уже реализован, зачем. Меня интересует, как эмулировать тик так, чтобы этот таймер работал. Переучиваться на mql5 нужно время, которое я потеряю, а время - деньги.
 
Link_x:
Снова здравствуйте!
Всех поздравляю с праздником "Новый год"!

Очередная молва о помощи.
Индикатор "Н" не отображает линии.

Понять не могу с чем это связано.

Код индикатора "Н" представлен выше.

Запредельные значения выходят что-то в результате вычисления...
 
evillive:

Запредельные значения выходят что-то в результате вычисления...
Главное - что бы они отображались. :)

R_adx_time    = _N_ * (R_time + R_adx) / 500; 
R_rsi_time    = _N_ * (R_time + RSI) / 500;
R_rrsi_time   = _M_ * (R_time + RSI) / 500;
Делаем так и запредельные значения испаряются, а проблема остается.
Причина обращения: