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

 

Добрый день.

Я сделал кнопку на экране и хочу к ней прикрепить открывание Offline Chart. Какой функцией можно указать путь к нужному оффлаин графику?

 
Добрый день,  как сделать автоматическое обновление диаграммы через каждые 10 сек. что бы каждый раз не нажимать на кнопку "Обновить" 
[Удален]  
zert:  обновление диаграммы
 void OnTimer()   // По таймеру             WindowRedraw();  // Перерисовать окно
 
LRA:
 void OnTimer()   // По таймеру             WindowRedraw();  // Перерисовать окно
Я не понимаю где это все писать, можешь показать на скрине?  
[Удален]  
zert:   где писать
вставить в используемого советника. Если такого нет - нужно написать. А почему новый ник?
 
LRA:

Щелкнуть по картинке левой кнопкой мыши для увеличения или правой и сохранить

В MetaEditor есть справка по языку MQL-4. Есть смысл прочитать ее всю, или хотя бы пробежаться по ней

Спасибо, за ответ. До конца не понял. К примеру у меня есть функция SendOrder(int &Ticket, int Type ,double LT ,double OP=-1 ,int ModeSL=0) с параметрами. Далее если я к примеру в коде пытаюсь обратиться к ней при каком либо условии у меня выскакивает ошибка "parameter passed as reference, variable".

Что мне делать посоветуйте? Спасибо.

[Удален]  
rabanik:    если обратиться .... ошибка "parameter passed as reference, variable".

Если параметр без & передача по значению, что надежнее. Фактический параметр копируется и копия передается в функцию. Изменения, которым подвергся параметр внутри функции, так внутри нее и остаются. Фактический параметр в месте вызова функции остается неизменным. И функции безразлично, передается ей константа или переменная, ведь в любом случае до функции доходит лишь копия параметра. Это сделано для повышения надежности, для защиты переменных от случайного изменения внутри какой-либо функции.

При передаче параметра по ссылке указывается символ & и это значит, что в функцию передается ссылка, адрес самой переменной. И функция может эту переменную изменить, и эти изменения отразятся на значении переменной внутри функции, вызвавшей такую функцию. Ну и чтобы функция могла изменить значение параметра, это должна быть переменная, Транслятор, скорее всего, написал: parameter passed as reference, variable expected = параметр по ссылке должен быть переменной

Если опять сомнения, то вместо у меня есть функция SendOrder(int &Ticket, int Type ,double LT ,double OP=-1 ,int ModeSL=0) лучше написать, как функция вызывалась. Создается впечатление, что в качестве первого параметра вы передаете число, что лишено смысла. Ваша функция пытается в этом параметре вернуть номер, под которым ордер помещен в базу данных брокера. Ясно, что это должна быть переменная. Если сомневаетесь, посмотрите функцию. А функции ТРУДНО изменить передаваемое число, она хочет на этом месте переменную.

 

Может проще из примера понять?

void OnStart()
{
 int a = 5;
 int b = 7;
 int c = f(a, b);
 Print("a = ", a, ": b = ", b": c = ", c);
}

int f(int k, int n)
{
 k += 2;
 return(k+n);
}

//результат a = 5: b = 7: с = 14

Другой вариант

void OnStart()
{
 int a = 5;
 int b = 7;
 int c = f(a, b);
 Print("a = ", a, ": b = ", b": c = ", c);
}

int f(int &k, int n)
{
 k += 2;
 return(k+n);
}

//результат a = 7: b = 7: с = 14

вот такая разница.

 
Всем доброго времени суток!!! Друзья, подскажите. предположим есть в индикаторе буфер, который мне нужно использовать в расчёте других индикаторов. Так вот этот буфер отображает значки на графике. Как сделать так чтобы буфер индикатора был, но при этом он не отображал бы никаких значков на графике пары??? Всем спасибо!!!!
 
nikelodeon:
Всем доброго времени суток!!! Друзья, подскажите. предположим есть в индикаторе буфер, который мне нужно использовать в расчёте других индикаторов. Так вот этот буфер отображает значки на графике. Как сделать так чтобы буфер индикатора был, но при этом он не отображал бы никаких значков на графике пары??? Всем спасибо!!!!
   Вот пример для 2-х рисуемых (b1, b2) и 2-х  расчётных буферов (b3, b4), расчётные в терминале не отображаются:
#property indicator_buffers       2
#property indicator_level1        0
#property indicator_levelcolor    Silver
#property indicator_type1         DRAW_LINE
#property indicator_color1        Crimson
#property indicator_width1        2
#property indicator_type2         DRAW_LINE
#property indicator_color2        SteelBlue
#property indicator_style2        STYLE_DOT
#property indicator_width2        1

double b1[];
double b2[];
double b3[];
double b4[];

int OnInit()
{
//--- indicator buffers mapping
  IndicatorBuffers(4);
  SetIndexBuffer(0,b1,INDICATOR_DATA);
  SetIndexBuffer(1,b2,INDICATOR_DATA);
  SetIndexBuffer(2,b3,INDICATOR_CALCULATIONS);
  SetIndexBuffer(3,b4,INDICATOR_CALCULATIONS);
  SetIndexLabel (0, "b1");
  SetIndexLabel (1, "b2");
////...
  return(INIT_SUCCEEDED);
}