[АРХИВ!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4. - страница 518

 
hoz:

Честно казать, я уже совсем запутался. Даже примеров нет таких, чтоб посмотреть как у других.

 Я так понимаю, кроме как получить значения, потом их нужно присвоить ещё каким-то переменным? 

 


  Азы мне не нужны. Про видимости переменных я прекрасно в курсе. Про передачу по ссылкам значений переменных в учебнике ни слова. Зачем меня туда посылать тогда? Издеваешся что-ли?


Нет, не издеваюсь. Ваше мнение о Ваших знаниях об области видимости сильно преувеличены. Это не для того, чтобы задеть - просто явно видно, что азов Вы не освоили. 

Есть немного времени, постараюсь "на пальцах": Вы описали переменные внутри функции - там они и существуют. Функция работу завершила, память, выделяемая на переменные, освобождена. Тогда ссылку на что Вы используете вне области видимости переменных ? По этому адресу может быть любой "мусор". Остается порадоваться дальновидности разработчиков, исключивших адресную арифметику. Результат работы функции, если нужно передать наружу - всегда передается не по ссылке, а по значению (то есть передается не адрес ячейки памяти, в котором хранится значение, а само значение ). Есть, конечно, и исключения, но не для мкл4 (разве, что при работе с массивами). Так, что перечитывайте смело - не помешает.

 
VladislavVG:

 Остается порадоваться дальновидности разработчиков, исключивших адресную арифметику.

Но она есть, хоть и не описана ...
 
valenok2003:


Как быть с массивами?


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

Это звучит страшнее, чем есть на самом деле. Если не понятно - могу привести несколько примеров. 

 
VladislavVG:


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

Это звучит страшнее, чем есть на самом деле. Если не понятно - могу привести несколько примеров. 



спс, доходчиво, то-есть если переменная или массив описаны на более высоком уровне, можно ссылки на их адреса гонять туда-сюда скока хочешь 
 
valenok2003:


спс, доходчиво, то-есть если переменная или массив описаны на более высоком уровне, можно ссылки на их адреса гонять туда-сюда скока хочешь 

Верно. 
 

Добрый вечер.

В кодо-писании я "карась" :) Вот собираю советник на индикаторе Фибоначчи. Пока на стратегию необрашаите внимание. Загвазтла в следуюшем - 7 уровння Фибоначчи, как зделать чтоби на каждом пересечонном уровне выставлялись только 2 разних отложных ордера и не более. 

Был би презнателен за какую либо подсказку.

За ранее извеняюсь за мои неловкий Руский. 

Файлы:
 

 Просто, объявить типы переменных в специальной функции start и проконтролировать, чтобы они были инициализированы. Рекомендую "старорежимный" подход: сначала - декларации, после - процедуры.

 Алексей, как это проконтролировать инициализацию переменных? Что-то я не очень это понял.

 Кстати, про передачу по ссылке параметров я всё понял. По сути, передаются только параметры не типы переменных. О вызываемых типах вызывающая функциях ничего не знает. А потому нужно объявить тип вызываемых переменных внутри вызывающей функции. Нашёл я это в книге по Си, одной из тех, которые у меня есть.

 
Здравствуйте. Подскажите, как можно получить значение индикатора на таймфрейме H3 в программе советника. Функция iMACD(...) работает только со стандартными периодами.
 

zdrastvuite fsem .zcajite pajalusta esli mojete,.......ia instal  meta trader4+sovetnic EX4 .i nimagu naciati targavati,v pravo vniz pacazivaet NETSVIAZI.scazite liudi dobrie sto delati jdu atves s uvajenie

 
aladyn:

zdrastvuite fsem .zcajite pajalusta esli mojete,.......ia instal  meta trader4+sovetnic EX4 .i nimagu naciati targavati,v pravo vniz pacazivaet NETSVIAZI.scazite liudi dobrie sto delati jdu atves s uvajenie

 


Если уважаете, скачайте русский шрифт! Есть всё в Google!
Причина обращения: