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

 
Добрый день, вопрос на 5 копеек))) Подскажите пожалуйста, что значит знак "&" при передачи в функции? Пример: int determineSection_D1(int &askSection_D1,int &bidSection_D1) ? Спасибо.
 
rabanik:    Добрый ... на 5 копеек ... что значит ... "&" при передачи в функции?

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

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

 

Добрый день.

Я сделал кнопку на экране и хочу к ней прикрепить открывание 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

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