Вопросы по ТехЗаданиям

 

Пишу техзадание на советник, хочу уточнить для себя некоторые моменты.

1) Имеет ли отличие работа советника на автономном графике(МТ4) от работы на обычном графике и нужно ли это отдельно оговаривать в ТЗ, например чтоб советник перед операциями обновлял автономный график?

2) Можно ли задавать мейджик в буквенном выражении, насколько я понимаю мейджик прописывается в комментах, чтобы было например не 12345, а например Ivan?

3) Как описать в ТЗ условие, чтоб код был КРАСИВЫМ, с целью чтобы с этим кодом потом мог работать другой грамотный программер,и, как можно оценить "Правильность" кода? 

 
IvanIvanov:

Пишу техзадание на советник, хочу уточнить для себя некоторые моменты.

1) Имеет ли отличие работа советника на автономном графике(МТ4) от работы на обычном графике и нужно ли это отдельно оговаривать в ТЗ, например чтоб советник перед операциями обновлял автономный график?

2) Можно ли задавать мейджик в буквенном выражении, насколько я понимаю мейджик прописывается в комментах, чтобы было например не 12345, а например Ivan?

3) Как описать в ТЗ условие, чтоб код был КРАСИВЫМ, с целью чтобы с этим кодом потом мог работать другой грамотный программер,и, как можно оценить "Правильность" кода? 

Третий вопрос переформулируй )  - во сколько раз дороже это будет 
 
IvanIvanov:

Пишу техзадание на советник, хочу уточнить для себя некоторые моменты.

1) Имеет ли отличие работа советника на автономном графике(МТ4) от работы на обычном графике и нужно ли это отдельно оговаривать в ТЗ, например чтоб советник перед операциями обновлял автономный график?

2) Можно ли задавать мейджик в буквенном выражении, насколько я понимаю мейджик прописывается в комментах, чтобы было например не 12345, а например Ivan?

3) Как описать в ТЗ условие, чтоб код был КРАСИВЫМ, с целью чтобы с этим кодом потом мог работать другой грамотный программер,и, как можно оценить "Правильность" кода? 

1) Да

2) Нет. Поле MagicNumber - числовое. К комментарию никакого отношения не имеет.

3) Красивый код - понятие настолько же условное как и сама красота. А вот грамотное составление кода - совершенно другое дело. Но, опять же, четких критериев грамотного кода нет. Есть лишь общие рекомендации. 

3а) Правильность работы кода может быть проверена самим заказчиком путем работы с полученной программой. Если под правильностью подразумевается правильное составление алгоритма, то тут тоже нет определенности, т. к. одна и та же задача может быть решена различными способами. И, чаще всего, среди этих способов нет "более правильного".

 
Yoschik:
Третий вопрос переформулируй )  - во сколько раз дороже это будет 

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

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

 
Scriptong:


3а) Правильность работы кода может быть проверена самим заказчиком путем работы с полученной программой. Если под правильностью подразумевается правильное составление алгоритма, то тут тоже нет определенности, т. к. одна и та же задача может быть решена различными способами. И, чаще всего, среди этих способов нет "более правильного".

Под правильностью я имею в виду, чтобы в нем мог ориентироваться другой грамотный программист, имею в виду только именно программую часть, не торговый алгоритм.

Тогда редактирум  3) из топика - "Как оговорить и определить грамотность кода?"

 
Scriptong:


2) Нет. Поле MagicNumber - числовое. К комментарию никакого отношения не имеет.


Тогда правильным решением будет оговорить в ТЗ чтобы заполнялось поле комментов через настройки советника?
 
IvanIvanov:

Под правильностью я имею в виду, чтобы в нем мог ориентироваться другой грамотный программист, имею в виду только именно программую часть, не торговый алгоритм.

Примерно об этом я и говорю - четких критериев нет. Кому-то нравится, кому-то нет. Здесь можно лишь говорить или о полном уродстве кода, или о чем-то более-менее читабельном. Но всегда найдется человек, который скажет, что код составлен недостаточно хорошо, и сможет сделать его еще более качественным. В свою очередь, на этот качественный код вполне можно найти еще более качественное исполнение. И так до бесконечности.

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

 
IvanIvanov:
Тогда правильным решением будет оговорить в ТЗ чтобы заполнялось поле комментов через настройки советника?

Комментарии не стоит использовать в качестве какой-либо идентификации ордера, т. к. поле комментария часто используется брокером для своих нужд. Поле магика он не трогает.

А зачем вообще заказчику такие тонкости? Выбор способа отделения "своих" и "чужих" ордеров - это прерогатива исполнителя. И магик - далеко не единственный способ.

 
IvanIvanov:
Тогда правильным решением будет оговорить в ТЗ чтобы заполнялось поле комментов через настройки советника?
Чтобы иметь контроль над магиком и комментариями к сделке лучше попросить сделать их установку из внешних параметров. Как вариант можно в комментарий вставлять магик.
3) Можно попросить в техзадании, чтоб исполнитель комментариями (//... или /*...*/) объяснял что делается, а также код написанный в MQL4 простиллизировать как в MQL5.
 
Scriptong:

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

Из пяти раз что я намеревался надстроить новую надстройку на уже имеющийся код, мне пять раз предложили переписать код с нуля "по моему алгоритму".... и каждый раз сценарий был один и тот же, конкретика была конечно разной, у кого-то процентный расчет лота не получился, кто-то не понимает отличия в принятии решения между закрытием свечей и текущими котировками.... предполагаю, что в сумме всех знаний к кому обращался и моих, было бы эффективнее, но мешает именно момент,(и это видно в общении) подавляющее большинство(или даже абсолютное) когда речь идет о чужом коде - первая реакция "давайте перепишем код с нуля", но ведь существующий код он ведь тоже не насрано и он работает, и торговый алгоритм в нем выверен.... вот что печалит....
 
papaklass:

Это время, естесствено, зависит от размера, сложности кода. Требуйте от исполнителя, чтобы разные блоки программы (например по функциональности) были оформленны в отдельные модули, а работа главного модуля заключалась в управлении отдельными модулями. Тогда правка кода другими программерами будет намного легче. 

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

Любое подобное требование всегда может быть выполнено формально, а заказчик и не придерется. Поэтому, как и во все времена "кадры решают все".