Тобиш я так понял вызов функции можно записать просто
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(doubleMyValue=36){
// здесь пишем код нашей подпрограммы, который вычислит квадратный корень из величины, которая лежит в переменной MyValue.
// Именно эта переменная запишет в себя то число, которое поступило на вход подпрограммы в момент её вызова.
double Rezult;
Rezult =......(MyValue).........;// вычисляем квадратный корень и результат заносим в переменную Rezult
return(Rezult);// возвращаем вычисленное значение в основную программу
......................
return(Rezult);
}
То в тезультате подпрограмма всегда возвращала бы нам значение = 6, так как MyValue всегда была бы равно 36 и корень из 36 = 6
Поэтому инициализировать параметр функции значением в тех скобках, где эти параметры перечисляются, нельзя.
Я не буду больше править Ваш код - Вы не понимаете, что делаете - Вам явно не хватает знаний. Нужно читать учебник, пробовать, экспериментировать с небольшими участками кода. И делать так до тех пор, пока у Вас в руках ни появится ясность - чтоб Вы понимали, ЧТО Вы делаете той или иной строкой кода.
спс за столь подробное обяснение, а я по вашему что делаю ПИШУ СОВЕТНИКА ДЛЯ РАБОТЫ? НЕТ Я УЧУ как и что должно работать, читаю учебник который тут выложен и делаю по премерам и пытаюь написать советник по той тс которую оставил себе как цель, но я токо неделю как узнал о этом языке чтото болие чем его название и место применения, не надо быть таким сроо котегоричным по своему опыту лучше разобрать рабочее чем с нуля построить новое, но нюанс в том что надо знать для чего оно работает, от я с этим и столкнулся что разобрать тут есть и много чего но тжело разбирать не зная для чего оно было создано, и потому я решил попробывать создать новое, но естествено всего не увидиш, Я КСТАТЕ ДЕЛАЮ ОДНО ДЕЙСТВИЕ ЭТО ОТКЫТИЕ ОТЛОЖЕНОГО ОРДЕРА ПО ЦЕНЕ РЫНОЧНОГО И ВСЕ НЕ БОЛИЕ НЕ МЕНИЕ. НО ТЕМ НИ МЕНИЕ СПОСИБО ЗА ВАШЕ ВРЕМЯ КОТОРОЕ ВЫ ТРАТИТЕ,
Доброго вечера всем и удачной предстоящей недели. Наверное я туплю сваливая на жару, собственно вопрос как определить, проставить расстояние между линиями в пунктах?
При повторении вынужден буду ходадайствовать о бане.
Выкладывание декомпилированных индикаторов - нарушение правил форума.
опять разные стандарты в этике, морали и понимания правил форума?
;)
Тобиш я так понял вызов функции можно записать просто
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);// возвращаем вычисленное значение в основную программу
}
Теперь, когда функцию мы написали, вызываем её в коде:
Ну так вот, если бы Вы описали нашу подпрограмму не правильно, вот так:
То в тезультате подпрограмма всегда возвращала бы нам значение = 6, так как MyValue всегда была бы равно 36 и корень из 36 = 6
Поэтому инициализировать параметр функции значением в тех скобках, где эти параметры перечисляются, нельзя.
Я не буду больше править Ваш код - Вы не понимаете, что делаете - Вам явно не хватает знаний. Нужно читать учебник, пробовать, экспериментировать с небольшими участками кода. И делать так до тех пор, пока у Вас в руках ни появится ясность - чтоб Вы понимали, ЧТО Вы делаете той или иной строкой кода.
Нужно не красть.
Да вряд ли это он украл - скорее всего наткнулся на уже украденное и даже не знал об этом. :)
Всё может быть. ;)
Меня просто двойные стандарты возмущают.
И толкователи-фарисеи...
Всё может быть. ;)
Меня просто двойные стандарты возмущают.
И толкователи-фарисеи...
Это Ваше личное дело. Ничего личного.
Это Ваше личное дело. Ничего личного.
Распишите правила подробней.
И выполняем все!
Я только за!
:)
-----
мое личное мнение, что это не только моя личная потребность...
;)
Доброго времени суток!
Кто-нибудь знает, как поставить на графике большую жирную точку, если нужные координаты известны?
Доброго времени суток!
Кто-нибудь знает, как поставить на графике большую жирную точку, если нужные координаты известны?