[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 775

 
Vinin:

При повторении вынужден буду ходадайствовать о бане.

Выкладывание декомпилированных индикаторов - нарушение правил форума.

опять разные стандарты в этике, морали и понимания правил форума?

;)

 
FoxUA:

Тобиш я так понял вызов функции можно записать просто

PrAskLim = StopLossLastPos(OP_SELL) ; а в самой функции

double StopLossLastPos(int op=-1,) вот так да?

 

Нет, не правильно. Вы попросту недопонимаете, что такое функция.

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

Представьте себе ситуацию, что Вам нужно в разных местах кода вычислять квадратный корень из разных величин. Допустим, что у Вас в языке нет команды вычисления квадратного корня. Чтоб не писать код вычисления квадратного корня кучу раз, Вы пишете подпрограмму (функцию), на вход которой подаётся некая величина, а на выходе которой получается квадратный корень из этой величины. Далее, в основной программе вместо вычисления корня Вы вызываетет свою функцию и она возвращает уже вычисленное значение.

Ну так вот, чтоб Ваша функция понимала, что ей передаётся именно число, а не строка, или иной тип данных, при объявлении функции нужно в скобках перечислять типы передаваемых в неё параметров. Например, Вы написали подпрограмму MyKoren(), которая будет возвращать значение типа double. Когда Вы делаете тело этой функции, в скобках Вы указываете, что передаваемый параметр будет иметь имя MyValue, а тип duble. В результате Ваша функция будет выглядеть так:

 double MyKoren(double MyValue){

 // здесь пишем код нашей подпрограммы, который вычислит квадратный корень из величины, которая лежит в переменной MyValue.

// Именно эта переменная запишет в себя то число, которое поступило на вход подпрограммы в момент её вызова.

double Rezult;

Rezult =......(MyValue).........;// вычисляем квадратный корень и результат заносим в переменную Rezult

return(Rezult);// возвращаем вычисленное значение в основную программу

}

Теперь, когда функцию мы написали, вызываем её в коде:

double PeremennayaDljaKornja;

PeremennayaDljaKornja=(xzc+256)*(AZN+322);
PeremennayaDljaKornja=MyKoren(PeremennayaDljaKornja);
// теперь после вызова нашей функции в переменной "PeremennayaDljaKornja" окажется результат вычислени я квадратного корня из той величины, которая лежала
// в PeremennayaDljaKornja перед тем, как мы вызвали нашу функцию

Ну так вот, если бы Вы описали нашу подпрограмму не правильно, вот  так:

 

 double MyKoren(double MyValue=36){

 // здесь пишем код нашей подпрограммы, который вычислит квадратный корень из величины, которая лежит в переменной MyValue.

// Именно эта переменная запишет в себя то число, которое поступило на вход подпрограммы в момент её вызова.

double Rezult;

Rezult =......(MyValue).........;// вычисляем квадратный корень и результат заносим в переменную Rezult

return(Rezult);// возвращаем вычисленное значение в основную программу

...................... return(Rezult); }

То в тезультате подпрограмма всегда возвращала бы нам значение = 6, так как MyValue всегда была бы равно 36 и корень из 36 = 6

Поэтому инициализировать параметр функции значением в тех скобках, где эти параметры перечисляются, нельзя

Я не буду больше править Ваш код - Вы не понимаете, что делаете - Вам явно не хватает знаний. Нужно читать учебник, пробовать, экспериментировать с небольшими участками кода. И делать так до тех пор, пока у Вас в руках ни появится ясность - чтоб Вы понимали, ЧТО Вы делаете той или иной строкой кода.

 
FreeLance:

Нужно не красть.

Да вряд ли это он украл - скорее всего наткнулся на уже украденное и даже не знал об этом. :)
 
drknn:
Да вряд ли это он украл - скорее всего наткнулся на уже украденное и даже не знал об этом. :)

Всё может быть. ;)

Меня просто двойные стандарты возмущают.

И толкователи-фарисеи...

 
FreeLance:

Всё может быть. ;)

Меня просто двойные стандарты возмущают.

И толкователи-фарисеи...


Это Ваше личное дело. Ничего личного.
 
Vinin:

Это Ваше личное дело. Ничего личного.

Распишите правила подробней.

И выполняем все!

Я только за!

:)

-----

мое личное мнение, что это не только моя личная потребность...

;)

 
drknn:

спс за столь подробное обяснение, а я по вашему что делаю ПИШУ СОВЕТНИКА ДЛЯ РАБОТЫ? НЕТ Я УЧУ как и что должно работать, читаю учебник который тут выложен и делаю по премерам и пытаюь написать советник по той тс которую оставил себе как цель, но я токо неделю как узнал о этом языке чтото болие чем его название и место применения, не надо быть таким сроо котегоричным по своему опыту лучше разобрать рабочее чем с нуля построить новое, но нюанс в том что надо знать для чего оно работает, от я с этим и столкнулся что разобрать тут есть и много чего но тжело разбирать не зная для чего оно было создано, и потому я решил попробывать создать новое, но естествено всего не увидиш, Я КСТАТЕ ДЕЛАЮ ОДНО ДЕЙСТВИЕ ЭТО ОТКЫТИЕ ОТЛОЖЕНОГО ОРДЕРА ПО ЦЕНЕ РЫНОЧНОГО И ВСЕ НЕ БОЛИЕ НЕ МЕНИЕ. НО ТЕМ НИ МЕНИЕ СПОСИБО ЗА ВАШЕ ВРЕМЯ КОТОРОЕ ВЫ ТРАТИТЕ,
 
Доброго вечера всем и удачной предстоящей недели. Наверное я туплю сваливая на жару, собственно вопрос как определить, проставить расстояние между линиями в пунктах?
 

Доброго времени суток!

Кто-нибудь знает, как поставить на графике большую жирную точку, если нужные координаты известны? 

 
inttehn:

Доброго времени суток!

Кто-нибудь знает, как поставить на графике большую жирную точку, если нужные координаты известны?

через создание объекта типа эрроу, где нужно выбрать код символа или при помощи обьекта типа лейбл