Пишем статью "Как составить Техническое задание на торгового робота" - страница 5

 
Andrey F. Zelinsky:

Краткий план статьи по ТЗ на советника.

Введение. Статья пишется исключительно для заказчика "дремучего дилетанта", с учётом его крайне низкого уровня понимания предмета. Часто заказчики вообще не в курсе что может 


p.s.2 Многие моменты доходчиво пояснены в двух статьях Компостера. Можно сделать перекрёстные ссылки, позаимствовать, допояснить. 

Увидел только одну статью. Подскажите какая еще?


 
Aleksey Panfilov:

Увидел только одну статью. Подскажите какая еще?

Еще вот такая была

Советник на заказ. Инструкция для трейдера.
Советник на заказ. Инструкция для трейдера.
  • 2007.04.10
  • Andrey Khatimlianskii
  • www.mql5.com
Форум от их обилия, естественно, лучше не становится. Эта статья предназначена именно для тех, кому нужна помощь в написании советника. Кроме координат действующих экспертописателей в ней будут даны некоторые рекомендации по общению с ними и описаны часто возникающие проблемы. Что необходимо сделать до заказа эксперта? Перед тем, как искать...
 
Aleksey Panfilov:

Увидел только одну статью. Подскажите какая еще?


Поправил автора статьи - теперь в Профиле Андрея показываются обе статьи


 

Это жесть, вот какую нужно статью, чтобы не было таких отжигов:

Суть работы эксперта одновременно открываются 1 бай 1 селл!
1 вариант исхода  если цена идет в не заданном направлении (например -100 пунктов) ордера фиксируются в 0 тоесть 1 бай дает -100 пунктов 1 селл дает +100 пуктов примерно 0!
3 открытие и закрытие ордеров должно происходить по одной цене например bid 1550 а не по ask 1548 тоесть цена открытия и закрытия ЕДИНАЯ для селл и бай одна и таже!!!

Сидим в общем, и решаем сами, по какой цене выгоднее работать, по бид, или аск, зависит от ситуации =)

Очень хотелось-бы увидеть заказчика в живую, и с него постебать.

Фриланс-сервис на MQL5.com: Нужно создать експерта который будет одновременно открывать два разнонаправленных ордера 1 на бай 1 на селл .
Фриланс-сервис на MQL5.com: Нужно создать експерта который будет одновременно открывать два разнонаправленных ордера 1 на бай 1 на селл .
  • www.mql5.com
1 вариант исхода  если цена идет в не заданном направлении (например -100 пунктов) ордера фиксируются в 0 тоесть 1 бай дает -100 пунктов 1 селл дает +100 пуктов примерно 0! 2 Открытие и закрытие должно происходить МОМЕНТАЛЬНО. так как отложенные ордера тейк профиты и стоп лосы не подходят нужно чтоб программа сама открывала и закрывала ордера...
 

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

Жду ваших замечаний и предложений

ПЛАН СТАТЬИ

Что нужно для заказа торгового робота

... нужен набор формальных правил

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

... кто ясно мыслит - ясно излагает

Что должно быть в Техническом задании

... заложенная идея (в общем), описание терминов и сигналов, алгоритм входа/выхода

     хорошие скриншоты описания Сигналов, где нет ничего лишнего

    блок-схемы

Где взять ТЗ, если сам не можешь составить

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

     Но если вопрос только в терминологии (незнании языка,  на котором говорят экспертописатели) - то можно сначала создать работу по составлению ТЗ

     Рисуем на графиках входы, описываем словами, читаем статьи/книги

Какие термины использовать

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

    В самом ТЗ термины выделять жирным - пусть исполнитель обратит на них внимание и задаст вопрос, если что непонятно

    Нельзя отсылать на другие источники (сайты/книги и т.д.) Всё должно быть описано здесь и сейчас, никаких "потом по скайпу объясню"

Что писать в описании работы во Фрилансе

... нужна только общая формулировка - трендовая, контртрендовая, на пробитие уровней (как определяются уровни вкратце), есть ли индикаторы/Price Action/использование тиков

Общая идея торговой стратегии

... торгуем по тренду, тренд определяем так-то, входим на откате, откат определяем так-то, не торгуем вечером и утром

Описание сетапа на ожидание Сигнала

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

Описание Сигнала

... Технические параметры описания - тренда/отката/пробоя - всё формализовано строго

Время жизни Сигнала

... как долго имеет силу сигнал - в барах / часах / до конца сессии/дня

Выставление ордеров и открытие позиций

... есть ли какие особенности, например, не ставим сразу SL/TP ,

   или  сколько попыток делаем для входа в рынок,

  или    выставление разных oredermagic/ordercomment в зависимости от времени/сетапа/паттерна

 что-то еще

Сопровождение торговой позиции/ордера

... есть трейлинг стоп или нет

    когда включаем TS

    двигаем ли отложенные ордера за ценой/против цены

    отслеживаем текущую прибыль/убыток по открытой позиции

    еще что-то

Отмена ордера и закрытие позиции

... удаляем ордера по времени/кол-ву баров/окончанию периода/ появлению противоположного сигнала/ пропаже сетапа

... закрываем позицию по времени/кол-ву баров/окончанию периода/ накопленной прибыли/ появлению противоположного сигнала/сетапа

     еще что-то

Расчет лота для выставления ордера

.... от баланса

      фиксированный

      от накопленной прибыли

      по результатам последних N трейдов

      от риска (дистанции SL)

      еще что-то

Обработка торговых ошибок и состояния окружения

... подробный логи при отправке торговых приказов

     обработка перезапуска терминала/коннекта/сервера

      обратная связь через мессенджеры/email

Разница между торговлей на открытии бара и внутри бара

...  сигналы могут пропадать и появляться в течение жизни бара

Тиковые/скальперские стратегии

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

    Любое ухудшение условий может убить стратегию

Сетки, мартингейлы, усреднения и обратная сторона этих улучшений

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

На что обратить внимание при выборе исполнителя

... Вопросы по существу

    Не умничает, чтобы произвести впечатление

    Четко называет реальные сроки и  стоимость (нет фраз "походу определимся"). Срок и цена может повыситься, если выясняться моменты, которые реально нельзя было предусмотреть заранее или решено было внести дополнительные работы

    Указывает сразу непонятные места в ТЗ, а не через 2 месяца обсуждения

    Хороший программист ценит своё и ваше время - поэтому любит проработанное непротиворечивое ТЗ

Что не может сделать за вас программист

  Превратить убыточную стратегию в зарабатывающего робота

  Провести оптимизацию и выявить все недостатки

   Написать программу без ошибок - они все равно будут.  Найти их и описать понятным образом - ваша задача.


 
Rashid Umarov:

Жду ваших замечаний и предложений

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

см. здесь индикатор https://www.mql5.com/ru/job/78910 -- сам индикатор есть, например, в моей ветке обсуждения

 

Пункт "Перерисовка и как с ней работать" -- я бы добавил в статью и рассмотрел отдельно и детально:

-- что такое перерисовка: определение

-- виды перерисовок -- примеры индикаторов, которые многие считают перерисовывающими, но они к таковым не относятся (фрактал, зиг-заг)

-- как определить перерисовку

-- как работать с перерисовывающим индикатором: что ожидать, если в советнике используется перерисовывающий индикатор

 

Продолжаем писать статью, текущая версия

Что нужно для заказа торгового робота

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

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

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

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

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

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

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

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

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

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

Что должно быть в Техническом задании

Для быстрого ввода в суть торгового робота посвятите первый абзац вашего Технического заказа торговой идеи/гипотезе, которая в ней заложена. Например: "Если цена два раза подходит к уровню сопротивления и каждый раз откатывается, то в третий раз она его, как правило, пробивает".  Тут можно приложить график с нанесенными линиями, наложенными индикаторами и подписями, которые иллюстрируют эту идею. Для описания идеи не требуется давать конкретные цифры или алгоритмы расчета - в данном случае мы не начинаем сразу же объяснять каким образом мы определяем:

  • уровень сопротивления,
  • пробой уровня,
  • понятие "как правило".

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

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

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

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

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

...

    блок-схемы

Где взять ТЗ, если сам не можешь составить

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

     Но если вопрос только в терминологии (незнании языка,  на котором говорят экспертописатели) - то можно сначала создать работу по составлению ТЗ

     Рисуем на графиках входы, описываем словами, читаем статьи/книги

Какие термины использовать

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

    В самом ТЗ термины выделять жирным - пусть исполнитель обратит на них внимание и задаст вопрос, если что непонятно

    Нельзя отсылать на другие источники (сайты/книги и т.д.) Всё должно быть описано здесь и сейчас, никаких "потом по скайпу объясню"

Что писать в описании работы во Фрилансе

... нужна только общая формулировка - трендовая, контртредовая. на пробитие уровней (как определяются уровни вкратце), есть ли индикаторы/Price Фсешщт/использование тиков

Общая идея торговой стратегии

... торгуем по тренду, тренд определяем так-то, входим на откате, откат опредеялем так-то, не торгуем вечером и утром

Описание сетапа на ожидание Сигнала

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

Описание Сигнала

... Технические параметры описания - тренда/отката/пробоя - всё формализовано строго

    Лучше Сигналы Buy и Sell сначала отлаживать отдельно

   Лучше будет если советник выставляет метки/объекты сигналов на графике

   Лучше если будут отдельно сделаны индикаторы сигналов

Время жизни Сигнала

... как долго имеет силу сигнал - в барах / часах / до конца сессии/дня

Выставление ордеров и открытие позиций

... есть ли какие особенности, например, не ставим сразу SL/TP ,

   или  сколько попыток делаем для входа в рынок,

  или    выставление разных oredermagic/ordercomment в зависимости от времени/сетапа/паттерна

 что-то еще

Сопровождение торговой позиции/ордера

... есть трейлинг стоп или нет

    когда включаем TS

    двигаем ли отложенные ордера за ценой/против цены

    отслеживаем текущую прибыль/убыток по открытой позиции

    еще что-то

Отмена ордера и закрытие позиции

... удаляем ордера по времени/кол-ву баров/окончанию периода/ появлению противоположного сигнала/ пропаже сетапа

... закрываем позицию по времени/кол-ву баров/окончанию периода/ накопленной прибыли/ появлению противоположного сигнала/сетапа

     еще что-то

Расчет лота для выставления ордера

.... от баланса

      фиксированный

      от накопленной прибыли

      по результатам последних N трейдов

      от риска (диистанции SL)

      еще что-то

Обработка торговых ошибок и состояния окружения

... подробный логи при отправке торговых приказов

     обработка перезапуска терминала/коннекта/сервера

      обратная связь через мессенджеры/email

Разница между торговлей на открытии бара и внутри бара

...  сигналы могут пропадать и появляться в течение жизни бара

Тиковые/скальперские стратегии

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

    Любое ухудшение условий может убить стратегию

Сетки, мартингейлы, усреднения и обратная сторона этих улучшений

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

На что обратить внимание при выборе исполнителя

... Вопросы по существу

    Не умничает, чтобы произвести впечатление

    Четко называет сроки

    Указывает сразу непоянтные места в ТЗ, а не через 2 месяца обсуждения

    Хороший программист ценит своё и ваше время - поэтому любит проработанное непротиворечивое ТЗ

Что не может сделать за вас программист

  Превратить убыточную стратегию в зарабатывающего робота

  Провести оптимизацию и выявить все недостатки

   Написать программу без ошибок - они все равно будут.  Найти их и описать понятным образом - ваша задача.


 
Rashid Umarov:

Продолжаем писать статью, текущая версия

А зачем всё это ?

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

Заказчик должен сказать (письменно, не видео или скайп):

- я использую вот эти вот индикаторы и скрипты

- придерживаюсь вот таких вот правил

- наторговал на более-менее официальной всем доступной деме за неделю-месяц-год вот столько. А вот в другой период вот так. Всё опционально подкреплено копированием на центовый счёт.

- нужно автоматизировать

Исполнитель оформляет и согласует ТЗ (в виде понятным обеим сторонам),пишет сову и если в тестере всё более-менее сошлось с означенным периодом, значит советник сделан.

Варианты - надо проверять на деме/цент-реале/прочее, ето уже long-term-cooperation и это выходит за рамки фриланса

 
Maxim Kuznetsov:

Варианты - надо проверять на деме/цент-реале/прочее, ето уже long-term-cooperation и это выходит за рамки фриланса

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

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

Причина обращения: