Системный трейдинг как задача многокритериальной оптимизации (МО) или векторной оптимизации.
Мат.модель задачи МО включает в себя три элемента:
1) целевые функции;
2) ограничения;
3) граничные условия.
Задан временной ряд векторной функцией Price(t)={Open(t), High(t), Low(t), Close(t), Volume(t)}
Трейдеры навешивают на график разные индикаторы т.е.
I1= Indicator_1: Price(t) --> Indicator_1( Price(t) )
и т.д….
In= Indicator_n: Price(t) --> Indicator_n( Price(t) )
I=(I1,…, In) - векторная функция
Какие-то Ij могут относиться к индикаторам ФА и/или прочим…
Далее на основе некой комбинации индикаторов и оценок ФА (фундаментальный анализ) принимают решения о входе в торги в том или ином направлении и/или выходе из торгов, т.е
С=Сonclusion (I1,…, Im) --> {Long, ExitLong, Short, ExitShort, OutMarket,}
На основе решений С1…Ck получим кривую изменения счета Equity Curve Line - ECL=ECL(С1…Ck)
Таким образом, МТС (механическая торговая система) и трейдер преобразуют Price --> I(Price) --> C(I) --> ECL
Т.е. получаем ECL(С(I(Price)))
В зависимости от конкретных видов Price и от его временных отрезков мы получим семейство кривых ECL
Нам хотелось бы выбрать самую ХОРОШУЮ.
Частных целевых функций (частных критериев оптимизации) может и должно быть много:
1. Q1 = Equity(T)= SUM { Equity(t) , t0 <= t <= T } => max* - Максимизация значения функции
2. Q2 = P{ Equity(T) => max* } => max* - Максимизация вероятности получения макс. значения
3. Q3 = { Profit factor } => max*
4. Q4 = { Sharpe Ratio} => max*
5. Q5 = { RINA Index } => max*
6. Q6 = { Net Prft/Max Drawdown } => max*
… и т.д. и т.п.
N. Qn = { еще что-нибудь } => max*
Набор частных критериев оптимальности образует вектор-функцию (векторный критерий) Q=(Q1, Q2,…,Qn)
тогда наша цель Q => max*
Задачу МО можно свести к задаче ОДНОкритериальной оптимизации с помощью некоторой функции предпочтений лица принимающего решение (ЛПР) - свертки векторного критерия.
Например линейной L= a1*Q1 +a2*Q2+… +an*Qn, где a1+a2+…+an=1
aj - это весовые коэффициенты важности (предпочтения лицом принимающим решение) критерия Qj
можно в качестве функции L взять любую, которая кажется полезной
В данном случае L(Q) => max*
Способов свертки много: аддитивный, мультипликативный, степенной и т.д… как хочешь так и сворачивай.
В зависимости от конкретных видов Price и от его временных отрезков мы получим семейство кривых ECL
Тогда задача получения профита сводится к задаче оптимизации выбора оптимальной ECL* такой что L(Q) => max*
И наконец этапы большого пути
1. определить множество Price - виды и длины временных рядов
2. определить (I1,…, In) - состав и вид индикаторов
3. определить С1…Ck - это торговые правила
4. определить Q1, Q2,…,Qn -частные критерии оптимизации (целев.функции)
5. определить L - функцию предпочтения лица принимающего решение
6. оптимизировать до потери пульса, иногда изменяя вид и состав элементов из п.п. 1-
Можно поручить п.6 алгоритмам генетической оптимизации.
ps
Price = котировки, цены временного ряда
МТС = механическая торговая система
ФА = фундаментальный анализ
МО = многокритериальная оптимизация
пост 2005года (18/08/2005)
http://web.archive.org/web/20070601184945/http://forex.kbpauk.ru/showflat.php/Cat/0/Number/118170/an/0/page/0#Post118170(forex.kbpauk.ru)