Индикаторы: Portfolio Optimizer - страница 7

 
transcendreamer:

пояснение касательно последовательности перечисления инструментов портфеля

я полагал это как само самой разумеющееся но видимо нужно явно описать:

модели типа "тренд" и "осциллятор"  нечувствительны к порядку перечисления

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

почему так? 

модель "тренд" берет сумму инструментов и приравнивает к прямой a*x+b*y+c*z=[1,...] поэтому как члены не переставляй сумма не изменится

модель "осциллятор" делает то же самое но приравнивает к колебателю a*x+b*y+c*z=[1,-1] поэтому опять же от перестановки слагаемых сумма не меняется

модель "спред" другая и например a*x+b*y+c*z=d и очевидно что перестановка например d*x+a*y+b*z=c даст совсем другой синтетик - так и должно быть

и таких синтетиков столько сколько вариантов перестановок относительно знака равенства (то есть равно количеству символов)

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

то есть формула "AUDJPY EURGBP NZDUSD CADJPY USDCHF" означает указание создать корзину "AUDJPY EURGBP NZDUSD CADJPY" и приравнять ее к "USDCHF"

вопрос, а почему всю корзину нельзя приравнять к нулю (для спреда) по такой логике??? зачем к какому-то символу приравнивать?
 
garik39:

 но отправлять данные для расчета вы все таки пытаетесь отправить от 4-х синтетиков

 


но! вызов регрессии идет с правильным набором корней в переменной roots, "лишний" кусок матрицы просто не используется

CAlglib::LRBuildZ(MATRIX,points,roots,info,LM,AR); 

 
garik39:
вопрос, а почему всю корзину нельзя приравнять к нулю (для спреда) по такой логике??? зачем к какому-то символу приравнивать?

дело в том что если приравнять корзину к 0 регрессия покажет вырожденное решение {0,0,0,0,0...}

 
transcendreamer:

дело в том что если приравнять корзину к 0 регрессия покажет вырожденное решение {0,0,0,0,0...}

а мы разве не это делаем??? график в starttime условно приравниваем к нулю
 

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

 

и ваш коэф "-1" и сам по себе 4-ый символ никак не учавствует в нахождении других корней... смысл тогда приравнивать?

 
garik39:
а мы разве не это делаем??? график в starttime условно приравниваем к нулю

нет, не совсем так

в точке start time график в нуле так как портфель еще не разбежался, только поэтому

вообще портфель может пойти куда угодно, модель spread пытается выровнять движения вверх и вниз 

 
garik39:

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

 

и ваш коэф "-1" и сам по себе 4-ый символ никак не учавствует в нахождении других корней... смысл тогда приравнивать?

 

я не хочу переспорить ради спора

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

результаты портфеля в МТ сравниваем с экселем - у меня сходимость до какого-то очень дальнего знака 

вместо экселя можно любой статпакет 

 
garik39:

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

 

и ваш коэф "-1" и сам по себе 4-ый символ никак не учавствует в нахождении других корней... смысл тогда приравнивать?

если в портфеле 4 инструмента то в режиме spread линейная комбинация первых трех приравнивается к последнему

то есть корней получается будет 3, последний "корень" -1 для равновесия, так как последний инструмент в правой части равенства 

 
transcendreamer:

нет, не совсем так

в точке start time график в нуле так как портфель еще не разбежался, только поэтому

вообще портфель может пойти куда угодно, модель spread пытается выровнять движения вверх и вниз 

spread  пытается сделать так, чтобы значение портфеля практически не изменялось (чтобы движения символов взаимно компенсировались) ? тогда к нулю можно приравнять=)

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

01. EURUSD+0.51,GBPUSD+0.05,NZDUSD+0.01,AUDUSD-0.43,    StDev=  388.75 Profit[0]= 448.36 Maks= 1057.89 Min= -605.72 
02. EURUSD-0.64,GBPUSD-0.04,NZDUSD+0.17,USDJPY+0.14,    StDev=  470.78 Profit[0]= 1413.17 Maks= 1490.13 Min= -851.74 
03. EURUSD-0.66,GBPUSD+0.01,AUDUSD+0.22,USDJPY+0.12,    StDev=  349.79 Profit[0]= 656.47 Maks= 723.61 Min= -931.33
04. EURUSD+0.73,NZDUSD+0.01,AUDUSD-0.17,USDJPY+0.09,    StDev=  388.92 Profit[0]= 221.69 Maks= 1634.44 Min= -132.99
05. GBPUSD-0.64,NZDUSD+0.14,AUDUSD+0.16,USDJPY-0.06,    StDev=  537.38 Profit[0]= 881.44 Maks= 1924.19 Min= -336.42
06. EURUSD+0.03,GBPUSD-0.87,NZDUSD+0.04,USDCHF-0.06,    StDev=  728.58 Profit[0]= 2044.17 Maks= 2240.09 Min= -818.34 
07. EURUSD-0.03,GBPUSD-0.88,AUDUSD+0.04,USDCHF-0.05,    StDev=  719.31 Profit[0]= 2025.76 Maks= 2147.69 Min= -893.50
08. EURUSD+0.06,NZDUSD+0.88,AUDUSD+0.02,USDCHF+0.04,    StDev=  586.65 Profit[0]= 76.92 Maks= 2527.42 Min= -284.29 
09. GBPUSD+0.31,NZDUSD-0.03,AUDUSD-0.50,USDCHF+0.16,    StDev=  636.65 Profit[0]= 528.06 Maks= 647.34 Min= -1917.54
10. EURUSD-0.03,GBPUSD-0.88,USDJPY+0.06,USDCHF+0.03,    StDev=  793.78 Profit[0]= 2477.92 Maks= 2593.80 Min= -1018.85 
11. EURUSD-0.09,NZDUSD+0.80,USDJPY+0.08,USDCHF+0.04,    StDev=  467.97 Profit[0]= 654.92 Maks= 2131.62 Min= -246.37
12. GBPUSD-0.31,NZDUSD+0.10,USDJPY+0.47,USDCHF+0.11,    StDev=  862.66 Profit[0]= 3251.79 Maks= 3339.54 Min= -742.60 
13. EURUSD-0.01,AUDUSD-0.89,USDJPY-0.06,USDCHF-0.04,    StDev=  955.17 Profit[0]= 1784.14 Maks= 1849.36 Min= -2008.45 
14. GBPUSD+0.52,AUDUSD+0.05,USDJPY+0.43,USDCHF-0.01,    StDev=  375.08 Profit[0]= 833.58 Maks= 1091.17 Min= -598.03 
15. NZDUSD+0.37,AUDUSD-0.45,USDJPY+0.15,USDCHF-0.03,    StDev=  606.69 Profit[0]= 1884.33 Maks= 1914.90 Min= -288.83 
16. EURUSD+0.12,GBPUSD-0.07,NZDUSD+0.19,USDCAD+0.62,    StDev=  259.98 Profit[0]= 132.72 Maks= 617.24 Min= -624.87 
17. EURUSD-0.54,GBPUSD+0.01,AUDUSD-0.13,USDCAD-0.32,    StDev=  393.18 Profit[0]= 742.69 Maks= 823.21 Min= -932.45 
18. EURUSD-0.49,NZDUSD-0.04,AUDUSD+0.13,USDCAD-0.34,    StDev=  271.02 Profit[0]= 98.50 Maks= 688.99 Min= -762.32
19. GBPUSD-0.51,NZDUSD-0.10,AUDUSD+0.08,USDCAD-0.31,    StDev=  409.01 Profit[0]= 1005.78 Maks= 1392.96 Min= -323.85 
20. EURUSD-0.49,GBPUSD-0.27,USDJPY+0.06,USDCAD+0.18,    StDev=  493.38 Profit[0]= 1404.98 Maks= 1516.85 Min= -1114.20
21. EURUSD+0.24,NZDUSD-0.02,USDJPY+0.63,USDCAD-0.11,    StDev=  812.16 Profit[0]= 3020.43 Maks= 3080.60 Min= -384.25 
22. GBPUSD-0.09,NZDUSD+0.22,USDJPY+0.56,USDCAD+0.12,    StDev=  826.53 Profit[0]= 3145.22 Maks= 3250.63 Min= -557.23 
23. EURUSD+0.61,AUDUSD+0.01,USDJPY+0.30,USDCAD-0.09,    StDev=  446.01 Profit[0]= 975.32 Maks= 2088.56 Min= -61.75 
24. GBPUSD+0.46,AUDUSD+0.15,USDJPY+0.33,USDCAD+0.06,    StDev=  227.94 Profit[0]= 236.42 Maks= 777.00 Min= -492.07
25. NZDUSD+0.54,AUDUSD-0.10,USDJPY+0.28,USDCAD-0.07,    StDev=  523.24 Profit[0]= 1767.97 Maks= 1927.92 Min= -140.81 
26. EURUSD+0.16,GBPUSD-0.24,USDCHF+0.03,USDCAD-0.57,    StDev=  366.88 Profit[0]= 422.06 Maks= 1521.84 Min= -97.32 
27. EURUSD+0.00,NZDUSD+0.12,USDCHF+0.70,USDCAD+0.18,    StDev=  374.43 Profit[0]= 456.50 Maks= 573.07 Min= -1216.29 
28. GBPUSD+0.13,NZDUSD+0.19,USDCHF+0.62,USDCAD+0.07,    StDev=  282.82 Profit[0]= 99.75 Maks= 281.57 Min= -1118.04
29. EURUSD-0.37,AUDUSD-0.17,USDCHF-0.27,USDCAD-0.19,    StDev=  223.39 Profit[0]= 554.98 Maks= 572.44 Min= -411.36
30. GBPUSD-0.54,AUDUSD-0.13,USDCHF-0.32,USDCAD-0.01,    StDev=  500.66 Profit[0]= 1416.69 Maks= 1667.45 Min= -508.44
31. NZDUSD+0.50,AUDUSD-0.12,USDCHF+0.35,USDCAD-0.04,    StDev=  236.23 Profit[0]= 581.36 Maks= 914.21 Min= -131.36 
32. EURUSD-0.29,USDJPY+0.19,USDCHF+0.09,USDCAD+0.42,    StDev=  517.52 Profit[0]= 1314.27 Maks= 1480.05 Min= -1160.17 
33. GBPUSD-0.48,USDJPY+0.04,USDCHF+0.17,USDCAD+0.31,    StDev=  500.25 Profit[0]= 1486.25 Maks= 1612.32 Min= -989.26 
34. NZDUSD+0.23,USDJPY+0.62,USDCHF-0.11,USDCAD+0.03,    StDev=  831.07 Profit[0]= 3166.42 Maks= 3259.05 Min= -358.24
35. AUDUSD+0.61,USDJPY+0.31,USDCHF-0.09,USDCAD+0.00,    StDev=  483.45 Profit[0]= 95.97 Maks= 1715.98 Min= -67.59

как видим на большинстве Maks и Min по модулю практически совпадают - т.е. от нуля колеблются в одном диапазоне, тем самым пытается создать флет на всем времени оптимизации, я ж правильно понимаю, что в этом случае вся сумма корзины приравнивается к нулю в регресии ... я просто на Мат. ане особо не вникал, что нам в универе объясняли, поэтому то, как это должно быть на самом деле - до конца не вникаю=)

 

Вру - большинство не старается равновесно колебаться около нуля - рынок =) 

 

предметная аналогия для модели "спред":

десять интеллигентов и один деревенский кузнец вызвались играть в перетягивание каната

спорили на девку с соседнего хутора само собой

кузнец здоровенный, ручищи во

а интеллигенты хиленькие, они только пальцами по клаве тюкать могут, индикаторы писать на mql например

но зато интеллигентов 10! а кузнец то один... кто победит?

ясно что ответ к задаче состоит в том чтобы сложить силу всех интелов и сравнить с силой кузнеца

уравнение i1 +i2 +i3 +i4 +i5 +i6 +i7 +i8 +i9 +i10 = K

а теперь представим себе что злой демон решил что никто не должен победить в этой игре

а демон девку себе решил забрать, уж больно хороша

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

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

поэтому i1-i10 ежесекундно меняются (демон гарантирует это, учился у Максвелла)

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