Составить тз

ДОГОВОР-ОФЕРТА

Школа #VA

Индивидуальный Предприниматель Алексеев Валерий Альбертович (далее по тексту – Исполнитель) адресует настоящий Договор-оферту (далее по тексту — Договор-оферта) любому лицу (неопределенному кругу лиц), чья воля будет выражена им лично, либо через уполномоченного представителя (ст. 182, 185 ГК РФ), выразившему готовность воспользоваться услугами Исполнителя (далее по тексту – Заказчик).

  1.  Общие положения
    1. Договор-оферта является официальным предложением Исполнителя (офертой) к заключению договора возмездного оказания информационно-консультационных услуг по программам обучения (далее по тексту – Услуги), представленным на сайте Исполнителя:  https://va-promotion.ru/school (далее по тексту – Сайт).
    2. Акцептом Договора-оферты является оплата Услуг, которые указаны в настоящем Договоре-оферте.
    3. Осуществляя акцепт Договора-оферты в п. 1.2 настоящего Договора-оферты, Заказчик гарантирует, что ознакомлен, безоговорочно принимает все условия настоящего Договора-оферты в том виде, в каком они изложены. Акцепт Договора-оферты равносилен заключению Договора возмездного оказания услуг на условиях, изложенных в Договоре-оферте.
    4. Услуги Исполнителя не являются образовательной деятельностью в традиционном понимании, не подлежат лицензированию, не сопровождаются проведением итоговой аттестации, присвоения какой-либо квалификации и выдачей документа об образовании.
    5. Договор-оферта размещается на Сайте.
    6. Исполнитель вправе в любое время вносить изменения в условия настоящего Договора-оферты. Изменения в условия Договора-оферты начинают свое действие с момента опубликования их на Сайте.
    7. Договор–оферта не требует скрепления печатями и/или подписания Заказчиком и Исполнителем (далее по тексту – Стороны), сохраняя при этом полную юридическую силу.
  2.  Предмет Договора-оферты
    1. В соответствии с условиями Договора-оферты Исполнитель обязуется оказать Услуги, предусмотренные п. 1.1., а Заказчик обязуется оплатить Услуги в установленные настоящим Договором-офертой сроки.
    2. Для оказания услуг Исполнитель вправе привлекать соисполнителей по своему выбору.
    3. Обучение проводится с использованием дистанционных технологий на онлайн-платформе Исполнителя (программное обеспечение, представляющее собой набор взаимосвязанных веб-сервисов и модулей, составляющих единое пространство предоставления услуг потребителям в сети Интернет). Период обучения и срок освоения программы указаны в соответствующей программе на Сайте.
  3.  Сроки Договора-оферты
    1. Срок для совершения акцепта Заказчиком является неограниченным.
    2. Договор-оферта вступает в силу с момента совершения Заказчиком акцепта, определяемого в соответствии с п. 1.2. настоящего Договора-оферты и действует до момента окончания Курса, определенного моментом окончания последней консультации Курса, дата которой определяется расписанием «Исполнителя» и не может превышать трехмесячного срока с момента начала оказания Услуг.
    3. Сроки оказания Услуг — в соответствии с разработанной и размещенной в Личном кабинете Заказчика «Расписанием курса».
  4.  Права и обязанности сторон
    1. Заказчик обязуется:
      1. Оплатить Услуги Исполнителя полностью в соответствии с форматом оплаты изложенным в п.7 настоящего Договора.
      2. Выполнять домашние задания по курсу в соответствии с расписанием Исполнителя. Сданным домашним заданием считается загруженный соответствующий файл/группа файлов в личный кабинет Заказчика в установленные Исполнителем сроки, согласно расписанию в личном кабинете.
      3. Исполнитель имеет право отчислить Заказчика с текущего курса исходя из следующих оснований:
        1. На основании письменного заявления Заказчика;
        2. При условии отсутствия сдачи еженедельного домашнего задания по курсу
      4. В случае отчисления, Заказчик не имеет права на возврат денежных средств, уплаченных за обучение на курсе, но имеет право изучать материалы самостоятельно без получения помощи исполнителя и без проверки домашнего задания
      5. Не копировать, не тиражировать и не распространять методические материалы или их составные части и иной материал, полученный на курсе, без предоставления письменного согласия Исполнителем, в противном случае «Заказчик» несет ответственность в соответствии с п. 7.5. Договора-оферты, а также законодательством РФ.
      6. Предоставить Исполнителю достоверные Контактные данные (E-mail) для рассылки обязательных уведомлений, методического материала, а также других оповещений, необходимых для надлежащего исполнений условий Договора-оферты. В противном случае, Заказчик не вправе ссылаться на обстоятельства, послужившие причиной пропуска занятий или иного неоказания Услуги в полном объеме, при непредоставлении, либо при предоставлении недостоверных Контактных данных Исполнителю для информационного обмена.
      7. Обеспечивать сохранность паролей и кодов доступа к личному кабинету, предоставляемых Исполнителем и не допускать их передачу третьим лицам, в противном случае Заказчик несет ответственность в соответствии с п. 7.5. Договора-оферты и законодательством РФ.
      8. Не загружать, не публиковать, не распространять любые материалы и информацию, которая порочит третьих лиц, а также иным образом нарушает законные права (например, права на неприкосновенность частной жизни, интеллектуальные и авторские права и пр.) третьих лиц. Заказчик обязан пользоваться Сайтом и его содержимым добросовестно, не нарушая законодательство Российской Федерации, права и свободы третьих лиц, нормы морали и нравственности. Заказчик обязуется не публиковать, не размещать, не распространять любые материалы и информацию, признаваемую Исполнителем непристойной и/или порнографического характера. Заказчик обязуется не публиковать, не размещать, не распространять любые материалы и информацию, которые разжигают ненависть по отношению к группам лиц по признаку расы, социального положения, религии, пола, возраста и (или) сексуальной ориентации. Заказчик обязуется не публиковать, не размещать, не распространять любые материалы и информацию, способные ввести в заблуждение третьих лиц. Заказчик обязуется не использовать Сайт для пропаганды суицида, для загрузки, хранения и распространения информации, содержащей описание способов суицида и любое подстрекательство к его совершению; информации о наркотических и психотропных веществах, в том числе, информации о распространении наркотиков, рецепты их изготовления и советы по употреблению, а равно, указывать в приложении любым способом (в том числе, путем размещения ссылки) на место нахождения материалов, содержащих признаки такой пропаганды или указанную информацию.
      9. Заказчик обязуется не загружать или иным образом не доводить до всеобщего сведения Произведения, являющиеся информационным наполнением (содержанием) Сайта и прочие результаты интеллектуальной деятельности Исполнителя или иных лиц-правообладателей, при отсутствии явным образом выраженного письменного согласия правообладателя/Исполнителя, а равно, указывать где-либо любым способом (в том числе, путем размещения ссылки) на место нахождение таких материалов.
    2.  Исполнитель обязуется:
      1. Организовать и обеспечить надлежащее оказание Услуг в соответствии с Программой курса.
      2. Предоставить Заказчику методические материалы курса в объеме, предусмотренном Исполнителем, в рамках выбранной Заказчиком Услуги. Указанный материал публикуется в личном кабинете Заказчика согласно Расписанию курса.
      3. Создать для Заказчика отдельный личный кабинет (учётную запись) и предоставить на период обучения аутентификационные данные (логин и пароль) для доступа в личный кабинет. Аутентификационные данные направляются Исполнителем на адрес электронной почты Заказчика, указанный им при регистрации на Сайте.
    3.  Заказчик вправе:
      1. Обращаться к Исполнителю по всем вопросам, связанным с оказанием Услуг, а также задавать вопросы, связанные с оказанием Услуг.
      2. Получать полную и достоверную информацию об оценке своих знаний, умений и навыков, основывающейся на практическом опыте Исполнителя.
      3. Получать необходимые и предусмотренные программой Исполнителя методические материалы, согласно выбранной тематике курса.
    4.  Исполнитель вправе:
      1. Самостоятельно определять формы и методы оказания Услуг, исходя из требований законодательства, а также исполнения настоящего Договора-оферты.
      2. Самостоятельно определять состав специалистов, оказывающих Услуги, и по своему усмотрению распределять между ними обязанности.
      3. Получать от Заказчика достоверную информацию, необходимую для выполнения своих обязательств по Договору-оферте.
      4. Обнародовать и безвозмездно использовать личное изображения и видео-материалы Заказчика, полученного посредством фото-, видеосъемки или иным способом, а также вправе обрабатывать, изменять, в том числе демонстрировать третьим лицам.
  5.  Порядок сдачи-приема услуг
    1. Услуги по Договору-оферте считаются оказанными, а со стороны Заказчика принятыми, если со стороны последнего в 3 (трехдневный) срок с момента оказания Услуг не поступило претензии по качеству и объему оказанных Услуг. Последним днем оказания Услуг Стороны признают последний день проведения Курса согласно графику (расписанию).
    2. По факту оказания услуг Исполнитель предоставляет Заказчику в последний день проведения Курса Акт об оказании Услуг. Заказчик подписывает Акт в день предоставления его Исполнителем, либо предоставляет Исполнителю мотивированный письменный отказ от его подписания.
    3. С момента подписания Сторонами Акта Услуга считается надлежащим образом оказанной Исполнителем, а Заказчиком принятой в полном объеме и на условиях Договора-оферты.
    4. В случае необоснованного отказа в подписании Акта, а также при отсутствии письменных претензий и возражений Заказчика в течение 3 (трех) календарных дней после исполнения Договора-оферты (последний день Курса согласно графику (расписанию), Услуги считаются надлежащим образом оказанными, а Заказчиком принятыми.
  6.  Стоимость услуг
    1. Цены Курсов объявлены на Сайте на страницах соответствующих Курсов и актуальны на момент акцепта.
    2. Все цены, предусмотренные в настоящем Договоре-оферте, указаны с учетом налогов и других обязательных платежей.
    3. Стоимость услуг не облагается налогом на добавленную стоимость в связи с применением упрощенной схемы налогообложения и может быть оплачена любым третьим лицом, действующим в интересах Заказчика, в том числе — юридическим лицом, индивидуальным предпринимателем, родителем или опекуном.
  7. Порядок оплаты и возврата денежных средств
    1. Оплата услуг Заказчиком в пользу Исполнителя осуществляется на основе платёжной системы Wallet One с использованием доступных способов оплаты.
    2. Возврат средств осуществляется на тот источник, с которого была произведена оплата.
  8.  Ответственность сторон
    1. За неисполнение или ненадлежащее исполнение обязательств по настоящему Договору-оферте, Стороны несут ответственность в соответствии с действующим законодательством Российской Федерации.
    2. В случае невозможности исполнения Договора-оферты, возникшей по вине Заказчика, а также в случаях нарушения порядка сдачи домашнего задания в порядке п. 4.1.2. и в сроки предусмотренные настоящим Договором-офертой, стоимость Услуги не возвращается.
    3. Заказчик вправе в одностороннем порядке расторгнуть Договор-оферту по правилам п. 8.3. настоящего Договора-оферты.
    4. При полном или частичном отказе Заказчика от приобретенного по акции пакета Услуг в рамках указанной акции, – оплата, произведенная Заказчиком, возврату не подлежит равно и как отказ Заказчика от пакета Услуг (одного или нескольких курсов), приобретенных в рамках, проводимой Исполнителем акции не является основанием для возврата денежных средств Заказчику.
    5. В случае нарушения п. 4.1.5., 4.1.7. Договора-оферты, Заказчик уплачивает штраф в размере 10 000 (десять тысяч) евро, а в случае причинения убытков оплачивает понесенные Исполнителем расходы.
    6. Выплата неустойки и (или) штрафа не освобождает Стороны от выполнения обязанностей, предусмотренных Договором-офертой.
    7. Стороны освобождаются от ответственности за полное или частичное неисполнение своих обязательств по настоящему Договору-оферте, в случае если оно явилось следствием обстоятельств непреодолимой силы (форс-мажор), а именно: наводнения, пожара, землетрясения, диверсии, военных действий, блокады, изменения законодательства и др., препятствующих надлежащему исполнению обязательств по настоящему Договору-оферте, а также других чрезвычайных обстоятельств, которые возникли после заключения настоящего Договора-оферты и непосредственно повлияли на исполнение Сторонами своих обязательств, а также которые Стороны были не в состоянии предвидеть и предотвратить.
  9.  Основания и порядок расторжения Договора-оферты
    1. Настоящий Договор-оферта может быть расторгнут по взаимному соглашению Сторон.
    2. По инициативе одной из Сторон Договор-оферта может быть расторгнут по основаниям, предусмотренным Договором-офертой и действующим законодательством Российской Федерации.
    3. В случае расторжения Договора-оферты по инициативе Заказчика, он обязан письменно уведомить Исполнителя не позднее, чем за 5 календарных дней до предполагаемой даты расторжения Договора-оферты.
    4. Возврат средств при расторжении Договора-оферты по инициативе Заказчика не осуществляется.
    5. Исполнитель в праве расторгнуть Договор-оферту в одностороннем порядке в случаях предусмотренные п. 4.1.5., 4.1.7. Договора-оферты. Исполнитель считается добросовестным, Услуги по Договору-оферте оказанными и стоимость Услуг не возвращается.
  10.  Разрешение споров
    1. Все споры и разногласия, возникшие в процессе исполнения Договора-оферты, Стороны будут стремиться урегулировать путем переговоров.
    2. Все претензии, заявления, уведомления и иные переговоры между сторонами осуществляются в письменной форме путем направления в адрес Стороны по почте, по месту нахождения Сторон. Претензия в адрес «Исполнителя» направляется – по адресу, указанному в разделе 12 Договора-оферте, либо путем личного вручения Стороне с отметкой. Претензия в адрес «Заказчика» направляется по дополнительно согласованным Контактным данным. Срок ответа на претензию 10 (десять) календарных дней с момента ее получения.
    3. По результатам рассмотрения претензии Исполнитель вправе предпринять следующие действия:
      1. Удовлетворить претензию и принять необходимые меры для устранения недостатков, возникшие в процессе оказания Услуг.
      2. Оставить претензию без удовлетворения (в случае, если по результатам рассмотрения претензии, а также в ходе выяснения возникновения конфликтной ситуации данные Заказчика не подтвердились).
    4.  При невозможности урегулирования споров путем переговоров и в претензионном порядке, Сторона чье право нарушено, вправе обратиться за защитой своих прав в судебном порядке.
    5. Подсудность по месту исполнения Договора-оферты.
  11.  Прочие условия
    1. Вся информация, которая стала известна Сторонам в процессе исполнения Договора-оферты, признается Сторонами конфиденциальной, не подлежит разглашению и охраняется в соответствии законодательством РФ. С информацией, ставшей известной в ходе исполнения обязательств, предусмотренных настоящим Договором-оферты, могут быть ознакомлены только те лица, которые непосредственно связаны с исполнением обязательств по Договору-оферте.
    2. Настоящим, Заказчик, в соответствии Федеральным законом от 27 июля 2006 года N152-ФЗ «О персональных данных» свободно, своей волей и в своих интересах выражает свое согласие на обработку своих персональных данных Исполнителем в целях исполнения Договора-оферты, такие как: сбор, систематизацию, накопление, хранение, уточнение (обновление, изменение), использование, распространение (в том числе передачу), обезличивание, блокирование, уничтожение персональных данных. Стороны договорились считать согласием Заказчика на обработку следующих персональных данных: фамилии, имени, отчества; даты рождения; почтовых адресов (по месту регистрации и для контактов); сведений о гражданстве; номере основного документа, удостоверяющего личность Заказчика, сведений о дате выдачи указанного документа и выдавшем его органе; номерах телефонов; номерах факсов; адресах электронной почты (E-mail), а также иная информация, полученная Исполнителем от Заказчика.
    3. Согласие Заказчика считается полученным с момента акцепта Договора-оферты. Указанное в настоящем пункте согласие действует бессрочно.
    4. Одновременно с вышеуказанным согласием на обработку персональных данных Заказчик также дает свое полное согласие на получение сообщений от Исполнителя посредством электронной почты, в том числе сообщений рекламного содержания.
    5. В случае направления Исполнителю заявки, Заказчик может получить экземпляр Договора-оферты на бумажном носителе с подписью уполномоченного лица и печатью.
  12.  Адреса и реквизиты сторон

Исполнитель:

ИП Алексеев Валерий Альбертович
Тел.: +7-499-899-57-79
E-mail: [email protected]
ИНН: 332134318318
ОГРИП: 316332800075500
Свидетельство о регистрации: 33 002060713
Дата регистрации: 23.05.2016
Р. счет: 40802810501500000322
К.счет: 30101810845250000999
БИК: 044525999
Банк: ТОЧКА ПАО БАНКА «ФК ОТКРЫТИЕ»

va-promotion.ru

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

Настолько непростой, что сложность работы — стоимость и сроки определить на глаз нереально. При этом он сформулировал часть своих мыслей касательно проекта письменно и даже нарисовал несколько подобий схем, но определить по этим наброскам что нужно сделать невозможно.

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

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

Сколько по вашему должна стоить такая работа? Я считаю, что минимум 5000. Это с учетом того, что я сам приеду к нему, вытащу из него всю информацию, запишу ее, а потом уже у себя формализую, нарисую прототип сайта, прототипы всех экранных форм и подробное описание всего функционала сайта и как все это работает. Доведу документ до такого уровня, чтобы его можно было передать любому компетентному разработчику и тот бы без участия клиента смог бы сам однозначно определить что нужно делать и сделать проект. Ведь Техническое задание — это так же как в строительстве проект дома. Без него нельзя начинать работать над проектом и обозначать стоимость и сроки.

Почему 5000? Потому что у клиента мне придется провести порядка 2-3 часов — это при стоимости часа эксперта 1000 рублей, уже будет 2000-3000 тысячи. Плюс время, потраченное на формализацию полученной информации — от 2 часов. Плюс время на изучение предметной области, ведь я не должен изучать какие-нибудь виды банковских операций пока не буду уверен, что потраченное время окупит себя.

Что бы вы сами посоветовали? Возможно 5000 это ничтожно мало. Слышал, что стоимость составления ТЗ составляет примерно 20% от бюджета проекта. А проект судя по всему не на 100 и даже не на 200 тысяч рублей.

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

toster.ru

В большинстве крупных организаций внутрифирменные отношения «пользователь-отдел IT» неизбежны, особенно при создании рабочих приложений, необходимых пользователю на постоянной основе. Сложность этих отношений может быть обусловлена многими факторами, но чаще всего это непонимание, возникающее из-за того, что стороны говорят на разных «языках» с различной терминологией. Пользователь понимает, что он хочет, но не может это сформулировать, IT-специалист понимает пользователя, но опасается, что результат выйдет иным, чем видит это первый. Чаще всего проблема начинается с того, что именно пользователь не готов к диалогу: он требует «чтобы работало», «отчет одной кнопкой», «чтобы за минуту выводилось», «чтобы даты в Excel не вылезали» и прочее. При этом его совершенно не интересует, каким образом это делается и какие механизмы работают. На заявления о нагрузке на сервер, просьбы нарисовать схему желаемого результата, обсудить пути решения пользователь не реагирует, полагая, что настоящий профессионал со всем справится. Результаты такого непонимания вредят всему производственному процессу: затягиваются сроки решения задач, возникают ошибки и пробелы в системах, которые нужны пользователю, страдает перегруженный неверными действиями сервер, скорость работы снижается.

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

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

2. Собрать документацию, согласно которой вы выполняете работу, для которой необходимо приложение (программа). Прочитать ее внимательно, с карандашом, отмечая особенности и тонкости.

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

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

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

6. Обсудить написанное задание с непосредственным исполнителем, попытаться разрешить все вопросы, внимательно прислушиваясь к мнению собеседника. Не стоит забывать, что вы свою сферу деятельности знаете лучше и только вы можете точно объяснить, какой инструмент вам необходим для эффективно работы. IT-специалист знает свое дело и не обязан знать нюансы работы каждого отдела в организации.

7. Передать задание в работу за разумный срок до окончательной реализации, чтобы была возможность протестировать результат и исправить возможные ошибки.

8. Если ваши подчиненные также будут пользоваться созданным приложением, постарайтесь им самостоятельно объяснить особенности работы с приложением – это избавит IT-специалиста от необходимости сто раз объяснять одно и то же.

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

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

habr.com

Содержание

  • Как алготрейдинг облегчает жизнь трейдера?
  • Дополняйте текст рисунками и видео
  • Полезные программы для составления ТЗ
  • Формулировка Технического задания в виде Алгоритма
  • Примеры Технических заданий
  • Что можно указать в Техническом задании на создание индикатора
    • Тип отрисовки индикатора
    • Цвета отрисовки
    • Где рисуется индикатор
    • Таймфреймы и символы для расчета и показа
    • Какие цены, объемы и индикаторы используются для расчетов
    • Состав и названия входных параметров
    • Запуск вычислений на каждом тике
    • Перерисовка индикатора
    • Алерты, PUSH-сообщения, отправка писем, отчетов, скриншотов
    • Графическая панель управления
    • Скриншоты для пояснения
    • Логи и журналы для отладки
    • Приемка и проверка индикатора
  • Задумал, описал, заказал!

Как алготрейдинг облегчает жизнь трейдера?

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

И вот в результате наблюдений за графиками цен у трейдера появляются некие формальные правила, которые позволяют проводить объективный анализ ценовых или тиковых графиков. Для облегчения такого анализа пишутся технические индикаторы.

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

Торговый робот работает 24 часа в сутки и не знает ни усталости, ни сомнений. Но написать его может не каждый. В этом случае остается только один вариант — заказать его у программиста-алготрейдера. Для этого необходимо составить Техническое Задание, в котором описываются требования к нужной вам программе — индикатору или торговому роботу. В этой статье мы рассмотрим вопросы, на которые должен ответить заказчик, который хочет обратиться во Фриланс.

Дополняйте текст рисунками и видео

Техническое задание должно быть написано строго, структурировано и содержать всё необходимое для понимания — формулы, логические условия, куски кода, описание алгоритма.

Все проблемы в нашем обществе связаны с недопониманием друг друга. Заказ программы во Фрилансе — не исключение. Спросите любого разработчика, и вы узнаете, что самая трудозатратная часть выполнения заказа — выяснение вопроса «Чего хочет Заказчик?». Даже если обе стороны говорят на одном языке, чаще всего выясняется, что они не понимают друг друга. Обидно бывает обнаружить это при приеме выполненной работы. Досаду испытывают обе стороны — и Заказчик, и Исполнитель. Иногда это доходит до Арбитража.

И оказывается, что именно тогда, когда работа находится в Арбитраже, стороны наконец начинают понимать друг друга. Вам только кажется, что мы мыслим и выражаем свои мысли словами. На самом деле мы мыслим образами. Поэтому, если вы хотите чтобы ваше Техническое задание было максимально понятным не только вам, но и потенциальным исполнителям, не поленитесь сделать к нему рисунки.

Правило простое — на каждую рыночную ситуацию, каждый закладываемый в заказ паттерн или условие делайте поясняющий рисунок в вашем ТЗ. При этом сам рисунок или схема также должны содержать только самое необходимо и не противоречить тексту. Уберите из рисунка всё ненужное, подпишите важные места и укажите стрелками уровни, паттерны и так далее.

Некоторые Заказчики создают огромные текстовые описания, думая, что составили все тщательно и понятно. Но на самом деле чаще всего продраться через сплошной текст сложно. Если какой-то термин или слово Заказчик и Исполнитель могут трактовать по-разному, то с рисунком таких проблем не будет: стрелка и круг будут восприняты именно как стрелка и круг, и никак иначе. Потратив 5 — 10 минут на создание понятных для разработчика иллюстраций, вы не только лучше донесете свои идеи, но и быстрее получите правильно работающую программу.

Посмотрите, как можно пользоваться редактором для оформления текста:

Составить тз

И последнее: часто Заказчики пишут «Объясню детали по скайпу — так будет понятнее и быстрее». Не будет! Понятней будет, если вы создадите видео с описанием, и при этом постараетесь сделать его профессиональным — четко, без пауз и запинок. Но для этого нужно составить план видео, а к плану — сценарий и текст, который вы будете произносить. Попробуйте сделать это с первого дубля — у вас гарантированно не получится. И по скайпу будет то же самое. Поэтому готовимся, записываем видео, пока не получится четко и понятно. Выкладываем его в Youtube и после этого вставляем в текст технического задания в Заказе.

Теперь к делу: для начала разберем пару примеров Технического задания на разработку индикатора.

Полезные программы для составления ТЗ

Для быстрого создания и публикации скриншотов рекомендуем программу ScreenPresso. Она позволяет легко добавить на снимок с экрана тексты, стрелки, фигуры и визуальные эффекты. В программе множество настроек, также она позволяет легко снимать видео. Созданные картинки вы можете вставлять в чат вашего заказа во Фрилансе с помощью простого перетаскивания или копированием.

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

Для создания прототипов графических панелей попробуйте программу Pencil. Она позволяет за 5 — 10 минут набросать эскиз нужного вам интерфейса. В ней же можно создавать блок-схемы для визуального объяснения сложных алгоритмов. Если вам нужно больше, почитайте обзоры в Сети, например, Шесть программ для создания диаграмм.

Составление блок-схем — отличная процедура визуализации логики программы, в них вы можете задавать переходы по условиям, циклы и т.д. Если у вас хорошо с математикой, то формулы и вычисления вы можете описать с помощью Microsoft Excel. И кроме того, там же вы можете создавать графики, диаграммы, панели и блок-схемы с помощью SmartArt. 

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

Формулировка Технического задания в виде Алгоритма

Каждый индикатор отражает какую-то идею. Поэтому сначала необходимо описать идею — словами и картинками, если это возможно. Без объяснения идеи понять, чего именно хочет Заказчик, будет намного сложнее.

Теперь можно приступать к описанию самого алгоритма работы/вычисления/отображения индикатора. Описывайте в виде последовательных операций, в виде алгоритма. Ведь только при наличии алгоритма Разработчик сможет написать код по нему. Если в описании идеи или алгоритма есть термины — четко опишите их, чтобы быть уверенными в том, что обе стороны одинаково понимают их значение.

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

Для описания терминов лучше использовать списки, например:

  1. дневной диапазон — расстояние между максимальной и минимальной ценой в течение дня;
  2. средний диапазон — среднее значение дневного диапазона за N дней;
  3. проторговка — узкий ценовой коридор, внутри которого находятся тела свечей, не выходя за его пределы;

Для обозначения этапов можно использовать цифры, списки и жирный шрифт.

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

Примеры Технических заданий

Пример №1

Пример №2

Пример №3

Что можно указать в Техническом Задании на создание индикатора

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

Тип отрисовки индикатора

  1. Линии — самый простой и понятный вид графика.
  2. Гистограмма — чаще всего применяется в осцилляторах.
  3. Стрелки и символы — удобны для обозначения моментов входа/выхода. Иногда на них строятся даже каналы (NRTR) или системы Trailing Stop.
  4. Области и каналы — например, Envelopes.
  5. Отрезки — могут использоваться в составе сложных индикаторов для отрисовки линий.
  6. Стиль Zigzag — например, цветной Зигзаг.
  7. Бары и свечи — для отображения графиков с чужих символов или пользовательских свечей на основе вычислений. Например, Heiken-Ashi.
  8. Комбинация перечисленных стилей.

Некоторые типы индикаторов требуют для отрисовки несколько серий данных (они называются индикаторными буферами). Для каждого буфера необходимо задать имя, чтобы потом проще было разбираться со значениями индикатора в Окне данных.

Цвета отрисовки

Нужно ли рисовать одним цветом или будет несколько цветов. С пониманием этого вопросов нет. Но если требуется динамическое изменение цвета в зависимости от текущей ситуации, то нужен четкий алгоритм для описания условий.

Где рисуется индикатор

  1. На главном окне графика
  2. В подокне графика

Таймфреймы и символы для расчета и показа

  1. Индикатор будет использовать для расчетов только свою пару символ/таймфрейм или же будет обращаться к данным других символов и таймфреймов?
  2. Нужно ли запрещать показ индикатора на каких-то символах/таймфреймах?
  3. Что делать, если для расчетов недостаточно баров с чужого символа/таймфрейма?

Какие цены, объемы и индикаторы используются для расчетов

Классические индикаторы всегда работали только с ценами Open, High, Low и Close родного таймфрейма. Но в наше время возможности технического анализа и языки программирования MQL5/MQL4 позволяют использовать самые разные временные серии данных, включая объемы и значения других индикаторов.

  • Нужна ли возможность в параметрах индикатора указывать тип цены, по которой будут делаться расчеты?
  • Должен ли индикатор уметь работать на данных другого индикатора? Например, можно наложить скользящую среднюю на график RSI. Не все трейдеры знают о такой возможности, возможна, она пригодиться вам.
  • Нужно ли показывать/рисовать уровни в индикаторах, которые строятся в отдельном подокне графика. Например, как уровни 30 и 70 для Stochastic Oscillator.

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

Состав и названия входных параметров

Лучше представить разработчику список параметров и их названия, как они будут выглядеть в терминале. Как правило, программист дает входным переменным имена для удобства чтения кода. Трейдеру же, как пользователю программы, нужны имена параметров, которые раскрывают их суть и назначения. Например, в индикаторе Chaikin Volatility (CHV) есть такие параметры, которые понятны трейдеру:

  1. Период сглаживания — сколько значений берется для усреднения вспомогательного массива.
  2. Период CHV — сколько баров берется для получения вспомогательного массива по методу Чайкина.
  3. Тип сглаживания — какой тип сглаживания будет использоваться для осциллятора.

Разработчик на основе этого пишет в коде:

//--- перечисление типов сглаживания  enum SmoothMethod    {     SMA=0,// Простая средняя     EMA=1 // Экспоненциальное     };  //--- входные параметры   input int          InpSmoothPeriod=10;  // Период сглаживания  input int          InpCHVPeriod=10;     // период расчета CHV   input SmoothMethod InpSmoothType=EMA;   // Способ сглаживания

Комментарии после значений будут показаны как названия в окне параметров для трейдера:

Составить тз

Запуск вычислений на каждом тике

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

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

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

Перерисовка индикатора

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

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

Алерты, Push-сообщения, отправка писем, отчетов, скриншотов

Если вам необходимо, чтобы индикатор в определенные моменты времени сообщал вам о текущей ситуации на рынке, то разработчик может добавить в код отправку Push-уведомлений и электронных писем. Кроме того, для привлечения внимания трейдера в индикатор можно добавить функции PlaySound(), Alert() и MessageBox(). Если у вас есть свой сайт или страница блога, возможно вам пригодится SendFTP().

В статье Андрея Войтенко Создание бота для Telegram на языке MQL5 приводятся и другие возможности по автоматизации ручной торговли. Возможно, вы захотите взять некоторые идеи из неё.

Графическая панель управления

Если вы хотите сделать управление индикатором более гибким, то подумайте о добавлении графической панели управления. Статья MQL5, обработка событий: Изменяем период мувинга «на лету» вышла много лет назад, в ней показана сама идея. С тех пор возможности языка MQL5 стали практически безграничными. Посмотрите примеры в статьях Универсальный осциллятор с графическим интерфейсом и Как быстро добавить панель управления к индикатору и советнику. И, конечно же, рекомендуем посмотреть серию статей Графические интерфейсы от Анатолия Кажарского.

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

  • сворачивание/разворачивание панели по клику мышкой в угол;
  • перетаскивание панели по графику;
  • изменение размера панели;
  • события мышки — клик левой/правой кнопки, скроллинг;
  • события клавиатуры — нажатие, удержание клавиш, комбинации клавиш;
  • события таймера;
  • пользовательские события, которые отправляют одни программы другим, и так далее.

Ознакомьтесь с разделом Типы событий графика, чтобы знать все доступные возможности.

Скриншоты для пояснения

Хороша известна пословица «Лучше один раз увидеть, чем сто раз услышать». Поэтому если ваш индикатор должен отрисовывать/визуализировать на графике совершенно определенным образом конкретные ситуации, вам необходимо сделать хорошо понятные иллюстрации. Мы рекомендуем на них показывать только самое необходимое, размер картинок должен быть небольшим, нет смысла делать гигантские скриншоты. Некоторые полезные советы вы найдете в статье Как правильно подать Продукт для продажи в Маркете?

Логи и журналы для отладки

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

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

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

Кроме того, при возникновении непредвиденной ситуации предоставьте разработчику дополнительные сведения, как это показано в статье Андрея Хатимлянского Как заказать написание советника и получить желаемый результат:

Поэтому желательно указать в Техническом задании эти данные отдельным пунктом для разработчика.

Приемка и проверка индикатора

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

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

Задумал, описал, заказал!

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

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

www.mql5.com

You May Also Like

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.