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

 
 

Стандарты и шаблоны для ТЗ на разработку ПО

https://habrahabr.ru/post/328822/

Стандарты и шаблоны для ТЗ на разработку ПО
Стандарты и шаблоны для ТЗ на разработку ПО
  • 2017.05.17
  • habrahabr.ru
Недавно ко мне обратились, чтобы я посоветовал стандарты для написания технического задания (ТЗ) на разработку автоматизированных систем (АС) и программного обеспечения (ПО). Вот думаю, сейчас зайду в Яндекс, найду подходящую статейку и отправлю её. Но не тут-то было! Одной статьи, где перечисляются стандарты для ТЗ, включая шаблоны и примеры...
 
Rashid Umarov:

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

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

1. Терминология. Минимально достаточный терминологический аппарат. Буквально на уровне, что (если для МТ4) ордера открываются и закрываются, а отложки устанавливаются и удаляются. Рад необходимых пояснений, типа, что такое перерисовка и как она выявляется. Примеры неперерисовок: фрактал, зиг-заг. <...>

2. Классификация функционала советников с пояснениями по каждому пункту. Индикаторные, безындикаторные советники. Способы отработки сигналов: внутри бара, на закрытии. Варианты сопровождения: трал, безубыток, усреднение. Манименеджмент: варианты. <...>

3. Анкета функционала будущего советника. Итогом анкеты будет примерный набросок потребного заказчику функционала. По каждому функционалу можно установить коэффициент сложности. Который позволит сориентировать заказчика на стоимость разработки.

4. Проверка готового решения. Здесь пояснить как тестировать советник на баги и неотработку функционала. Как пояснить пояснять обнаруженные баги и неотработки.

Выводы. Рекомендации.

p.s. Минимум 80% заказов типичные и их функционал укладывается в заранее известную классификационную схему.

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

 
Rashid Umarov:

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

  • Мартингейл
  • АнтиМартингейл
  • Сетка
  • Мультивалютный
  • Скальпер
  • и т.д.

Какие бывают варианты во Фрилансе?

Ряд моментов вам писал в личку. Сейчас просто вынесу в публичное обсуждение.


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

Например, "сетка" -- может быть просто сетка, может быть мартин, а может быть илан -- определяющий здесь фактор "способ расчёта лота".

Поэтому классифицировать надо по используемому функционалу -- тогда будет понятна структура и сложность советника -- а именно это надо для составления ТЗ.

Классификация самая сложная тема -- примерно намётки дам, но если надо более детально, то здесь надо засаживаться и думать основательно:

1. По типу сигнала на открытие:
-- индикаторные
-- безындикаторные

2. По типу сигнала на закрытие:
-- простые (тейк, стоп, обратный сигнал на открытие)
-- индикаторные
-- совокупный стоп/тейк (то что называют усреднение)
-- по результату (профит/убыток)

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

4. По сопровождению открытой позиции/ордеров:
-- сетка (когда один ордер сопровождается сеткой ордеров)
-- локирорование
-- усреднение
-- трейлинг-стоп
-- безубыток

5. Мультивалютность (есть разное понимание мультивалютности)

....

-- дальше надо думать и многое, очень многое не однозначно -- т.е. надо буквально "накидывать" что есть и что встречалось и классифицировать его.


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

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

Кстати, если сделать полную классификацию -- то можно сделать что-то вроде "меню советника" -- типа, "птички" поставил и ТЗ готово.

 
Rashid Umarov:

Новая итерация Плана статьи

Типы советников 

Сигнальные - по сигналам индикаторов

Многоордерные - всевозможные сетки

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

Вспомогательные - нарисовать, отправить, работа с графиками и котировками и т.д.

Даунлодеры - скачать какую-то информацию с сайта

Копировальщики - копирование сделок и прочее взаимодействие терминалов

Тип счета для MetaTrader 5


Сигнальные и Многоордерные -- индикаторный советник (как принято его называть) позволяет открывать несколько ордеров в одном направлении и потом с этими несколькими ордерами работать как с сеткой. По сути, когда говорят "сетка", то подразумевают открытие ордеров с шагом друг друга (что-то вроде "натягиваем сетку ордеров").

Т.е. по сути сетка от не сетки имеет очень условное отличие и это отличие на уровне "условий на открытие" -- где ордера могут открываться по сигналам индикаторов, могут выставляться отложками с дистанцией или ещё как-то

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

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

 

системы расчёта лота (думаю что полная, другие варианты принципиально не встречались):

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

-2- в % от баланса (эквити, не суть, редко используется)

-3- по результатам предыдущего открытия/закрытия (здесь не принципиально открытый ордер последний или закрытый, суть в том, что лот зависит от лота ордера перед ним -- здесь так же может учитываться лот одного или нескольких ордеров)

-4- от цели движения (здесь учитывается размер стоп-лосса, размер тейк-профита, не суть, важно что учитывается расстояние в пунктах)


п.2. % от баланса два методики расчёта: а) с учётом % потери депозита и б) пропорционально к размеру депозита.

% от баланса бывает "чистый", а бывает с учётом размера стоп-лосса (это п.4)

п.3. если по результатам закрытия, то это один ордер -- если по результатам открытия, то уже строится сетка ордеров.

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

п.4. здесь два варианта: а) % риска с учётом размера стопа и б) от цели движения по тейку (это схема "илан", когда строится сетка ордеров).


усреднение к расчёту лота не относится -- усреднение это способ расчёта тейк-профита и стоп-лосса.

 

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

однонаправленные, когда каждое направление (бай и селл) самостоятельное.

связывает все сетки только один единственный функционал -- это усреднение как некий ценовой уровень, при котором сетка закрывается.

усреднение бывает как по тейку (закрытие по движению), так и по стопу (закрытие против движения).

тейк как правило фиксированный.

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


в мт5 задача усреднения решается неттингом -- поэтому в мт5 (неттинг) работа с сетками имеет свои особенности в отличии от мт5 (хеджинг).

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

 

функционально:

-- блок открытия (по сигналу индикаторов, по результатам предыдущего открытия/закрытия, как правило шаг)

-- блок расчёта лота (манименеджмент, но манименеджмент не ограничивается расчётом лота)

-- блок расчёта начального стопа (фиксированный и динамический)

-- блок расчёта начального тейка (фиксированный и динамический)

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

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

-- блок ограничения торговли (ограничение по времени, по другим факторам)

-- информационный блок (инфопанели)

то что относится к советникам новостным, копировщикам -- их можно конечно, представить как самостоятельные, но можно прописать в описанном выше функционале.

 

если говорим об отработке сигнала на открытии бара и внутри бара, то здесь надо выделять:

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

-- блок подтверждения сигнала, т.к. на открытии бара сигнал подтверждён закрытием бара, а вот внутри бара сигнал может "гулять" и с этим надо что-то делать.

 

вход по рынку и вход отложками отличается:

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

-- необходимостью наличия блока согласования (при входе отложками) -- этот блок позволяет организовать закрытие ордера бай при срабатывании селл-отложки -- в мт5 при неттинге эта проблема переносится в блок расчёта лота, устраняя тем самым функционал согласования

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