Помогите научиться программировать. - страница 7

 
Aleksei Stepanenko:

Ну вы настрочили...

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

Но, Дмитрий, надо повежливей с людьми, поласковей.

С людьми я вежлив.

 

Дмитрия код не сохранился, но вот переделка на его основе:

//получаем номер недели в году
int GetWeekNumber(datetime eTime)
   {
   MqlDateTime eDate;
   //получаем дату начала года
   TimeToStruct(eTime,eDate);
   eDate.mon=1;
   eDate.day=1;
   eDate.hour=0;
   eDate.min=0;
   eDate.sec=0;
   datetime StartTime=StructToTime(eDate);
   //возвращаем дату назад в структуру, чтобы определить день недели начала года
   TimeToStruct(StartTime,eDate);
   return(int((eTime-StartTime+86400*eDate.day_of_week)/604800));
   }
 
Dmitry Fedoseev:

С людьми я вежлив.

А откуда такая агрессия, Дмитрий?

Я просто спросил, как правильно использовать в цикле PositionsTotal(). И не вас лично, а вообще. И вы как сцепи сорвались. Что случилось, Дмитрий? 

Надеюсь это не ко мне относится ваш комментарий о расчеловечивании собеседников?

 
Aleksei Stepanenko:

Дмитрия код не сохранился, но вот переделка на его основе:

О б(а)оги! Это великолепное творение гениального ума! Невероятно! Спасибо, что по поделились. Мне еще расти и расти до таких колоссальных высот! Ну прямо хакерские приемчики. Заглядение. Ничего не понимаю, что написано. Идеальный код - аж глаза слепит. Жаль что вы его изменили немного, не так ярко светит, как могло бы.

 
Nikolay Mitrofanov:

О б(а)оги! Это великолепное творение гениального ума!

Вот разбойник!

 
Dmitry Fedoseev:

Что еще очень прикольно - все так очередной раз всполошились - ах какой неправильный код я написал новичку... и все наперебой рассказывают мне об этом...  Абалдеть!

Не было такого. Код никто не критиковал. Высказали предпочтения и взгляды о цикле. 

А на моменте с PositionsTotal() Уже возник спор именно об этом. 

Вам показалось, что на вас наезжают за код. Но реальность такова, что всем насрать.

Там не много вариантов как должно быть правильно и что бы при этом работало работало. Вопрос в выборе. 


А теперь, с моим чудесным советником, который показывает какой подход к циклам(из трех часто используемых) выбрать, вообще исчезает всякая потребность спорить о объявлении циклов) Ну не замечательная ли это новость, Дмитрий?

Давайте вместе порадуемся общим успехам! Мы разрулили сообща долгий много вековой холивар MQL форума! Наконец-то! Виват всем программистам и сочувствующим!

 
Tio Nisla:
Хотел добавить ранее, что если функция somefunc() кроме возврата количества чего-то там, производит еще какие-то манипуляции, вычисляет торговые параметры например, то такое использование порождает трудно уловимые артефакты и может привести автора кода в ступор: "Шта??? Как это 4 раза??? O_o F$#@!!! Там же три раза должно быть? Почему мне советник лжет?". Вот это я и назвал "шиткодом", что эксперта возмутило до корней волос. Не стал заострять внимание, ибо очевидно, но вы сделали это за меня. Но не учли тот момент, что адресовать по индексу, который динамически рассчитывается без переинициализации массива - это нечто. В голых "сях" такое приводит обычно к GPF, в "плюсах" с умными указателями и массивами к исключению и его обработчику. В mql не понятно к чему.

Там не 3 раза, а один раз должен быть. 

Нарисуете, как сделать, чтобы так и было? 

 
Dmitry Fedoseev:

С людьми я вежлив.

Дмитрий, это специалист очень высокого класса. 

 
Nikolay Mitrofanov:

Я пишу о понимании при разработке. Сначала изучение - потом действие. 

Вы наоборот пишите: сначала действие, оптом думай и причесывай.

Вроде одно и тоже. Но для чего тогда пишут примеры кода и докуметацию?)) Не для того ли, что бы меньше наступали на грабли? Я думаю именно для этого. А вы как думаете?

Изучение при разработке? Вообще-то мы говорим о первых шагах в программировании. Именно при написании первого советника лучше всего сначала получить результат, а потом разобраться в красоте и лаконичности кода.

В общем я из диалога ухожу. Бесполезно всё это.

 
Aleksei Stepanenko:

Дмитрия код не сохранился, но вот переделка на его основе:

по моему все проще должно быть, примерно так

return ((int)(day_of_year/7))

порядковый номер дня в году есть в структуре MqlDateTime