Прошу помощи в решении системы 3-х уравнений с тремя неизвестными значениями - страница 4

 

Сугубое ИМХО:

Валютные пары по своему смыслу являются дробями, поэтому, например, x/y = EUR/USD, y/z = GBP/USD, если понимать эту запись как "сколько одних енотов дают за других". Тогда можно допустить существование некоего абстрактного "всеобщего енота-эквивалента", "курс" которого никаким колебаниям не подвержен, и принять этот "курс" за 1; обозначим этого мифического енота как EQU и примем за индексы валют их курс по отношению к нему, т.е. index(USD) = USD/EQU и т.п. Кроме того, если предположить, что, например, если индекс енота 'x' растёт, то индекс енота 'y' должен падать, -- попытаться учесть это можно с помощью добавления к первому члену Ф произведения x*y, т.е. x^2 + y^2 + z^2 + х*у; второй при этом остаётся без изменений. И далее в том же духе.

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

 
alexjou писал (а) >>

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

Хотелось от что:

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

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

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

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

лосс достаточно небольшой ставить а закрывать либо по профиту либо возврат валюты(индекса валюты) хотябы одной из пары к нулевой линии.

ЗЫ Я реально знаю (встречаемся часто в реальной жизни) трейдера который смотрит на индексы валют в терминале лайта а торгует в другом ДЦ и скажу достаточно успешно.

Но мне как то 2 терминала (в одном анализ а в другом торговля)  уже перебор

Вот и поднял на даннном форуме обсуждение по этому вопросу.

 

Дополните систему из 2-х независимых уравнений

EUR/USD = a

GBP/USD = b

третьим уравнением

EUR*USD*GBP = 1

которое означает постоянство стоимости корзины из трех валют (взятых в равных пропорциях).

Получите единственное решение

USD = (ab)^(-1/3)

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

З.Ы. Аналогично была получена формула с корнем 5-й степени.

В сбалансированной корзине пропорции валют могут быть разными.

В какой-то заметке проскочили цифры 44% USD + 34% EUR + 11% GBP + 11% JPY (по памяти - могу ошибаться)

валютной корзины крупнейшего фонда - стоимость которой растет практически синхронно с ростом мировой экономики (около 5% в год).

Считая для простоты (дабы не вводить в уравнения время) рост = 0, получим последнее уравнение системы в виде

USD^0.44 * EUR^0.34 * GBP^0.11 * JPY^0.11 = 1

Решением ее будут индексы 4-х валют, т.е. "реальная" стоимость валют.

 
Erics писал (а) >>

....

Решением ее будут индексы 4-х валют, т.е. "реальная" стоимость валют.

Итого получается система из 4 уравнений

EUR/USD=a

GBP/USD=b

USD/JPY=c

USD^0.44 * EUR^0.34 * GBP^0.11 * JPY^0.11 = 1

Спасибо, попробую написать индикатор по данному алгоритму.


ЗЫ Только после сессии. гдето в начале июля...

 

<< В какой-то заметке проскочили цифры 44% USD + 34% EUR + 11% GBP + 11% JPY (по памяти - могу ошибаться) >>

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


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

Вначале заметим, что исходные данные, т.е. курсы валют, нам никогда не известны с абсолютной точностью, в лучшем случае -- до пункта, а в самом лучшем -- до его десятых долей (обозначим эту величину как pоint_size). Значит, имеет смысл с такой же либо меньшей точностью пытаться вычислять и индексы валют. Затем прологарифмируем отношения x / y = a, y / z = b и обозначим u = ln(x), v = ln(y), w = ln(z); f = ln(a), g = ln(b). Получим недоопределённую систему линейных уравнений: [u - v = f; v - w = g]' с матрицей [С] = [(1, -1, 0; 0, 1, -1)] и вектором [D]' = [(f, g)]'. Домножим матрицу [C] и вектор [D]' слева на транспонированную [C'] и получим систему из трёх уравнений с тремя неизвестными, но с, очевидно, вырожденной матрицей [A] = [(C'*C)] и вектором [B]' = [(C'*D)]'.

Далее, следуя стандартной методике решения систем уравнений с вырожденной матрицей, учтем соображения о точности исходных данных и вычислим параметр регуляризации r = pоint_size * sqrt(N) (множитель sqrt(N) появляется из соображений минимума нормы невязки решения). Затем, домножая слева на транспонированную матрицу [A'], получим и решим регуляризованную СЛАУ вида [(A'*A + r * I)] * [X]' = [(A'*B)]', где [X]' - вектор неизвестных, из которого без труда получается искомый вектор индексов: [Index]' = exp([X]').

В нашем случае (x = GBP, y = USD, z = EUR; x / y = 1.9572, z / y = 1.5508, r = 0.0001*sqrt(3)) получаем: [GBP, USD, EUR]' = exp([0.3014, -0.3701, 0.0687]') = [1.3517, 0.6907, 1.0711]'. Проверяем: GBP/USD = 1.3517/0.6907 = 1.9570; EUR/USD = 1.0711/0.6907 = 1.5507. Потеря точности в последних знаках -- неизбежная расплата за регуляризацию задачи.

 

to Neutron, Prival

Ничего странного, 13 и 14 версия отличаются, мягко говоря полностью. В 14 произошла смена «движка» на более слабый (они разругались с поставщиком старого, более дорого и хорошего движка). И количество «мест», где 14 просто ошибается увеличилось.

 
alexjou писал (а) >>

<< В какой-то заметке проскочили цифры 44% USD + 34% EUR + 11% GBP + 11% JPY (по памяти - могу ошибаться) >>

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

...

В нашем случае (x = GBP, y = USD, z = EUR; x / y = 1.9572, z / y = 1.5508, r = 0.0001*sqrt(3)) получаем: [GBP, USD, EUR]' = exp([0.3014, -0.3701, 0.0687]') = [1.3517, 0.6907, 1.0711]'. Проверяем: GBP/USD = 1.3517/0.6907 = 1.9570; EUR/USD = 1.0711/0.6907 = 1.5507. Потеря точности в последних знаках -- неизбежная расплата за регуляризацию задачи.

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

___________

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

Похоже, вы получили минимум суммы логарифмов. Т.е среднегеометрического EUR*GBP*USD.

Заметил, что у вас оно равно 1, т.е. найденное решение совпадает с USD = (ab)^(-1/3) = (1.9572*1.5508)^(-1/3) = 0.6907

 

Вставлю и я 5 копеек. Похоже никто не удосужился решить исходную систему на бумажке :). Итак, если

GBP/USD=a

EUR/USD=b

EUR/GBP=c

то b/a = c. Это означает, что при выполнении этого равенства мы можем одной из переменных дать произвольное значение. Если оно не выполняется точного решения нет.

Весьма вероятной гипотезой представляется что отличие c от b/a объясняется исключительно ограниченностью числа знаков в представлении курсов. Другими словами, лучше исходить из того, что точное c всегда равно b/a. Ну а если уж непременно хочется иметь индексы валют, можно подставить в качестве USD индекс доллара. Хотя гораздо проще взять USD=1 :).

Кстати, одной из переменных мы сможем дать произвольное значение даже если начнём считать отличие c и b/a реальным и будем пытаться подбирать [GBP, USD, EUR] по МНК :)

 
lna01 писал (а) >>

Вставлю и я 5 копеек. Похоже никто не удосужился решить исходную систему на бумажке :). Итак, если

GBP/USD=a

EUR/USD=b

EUR/GBP=c

то b/a = c. Это означает, что при выполнении этого равенства мы можем одной из переменных дать произвольное значение. Если оно не выполняется точного решения нет.

Весьма вероятной гипотезой представляется что отличие c от b/a объясняется исключительно ограниченностью числа знаков в представлении курсов. Другими словами, лучше исходить из того, что точное c всегда равно b/a. Ну а если уж непременно хочется иметь индексы валют, можно подставить в качестве USD индекс доллара. Хотя гораздо проще взять USD=1 :).

Кстати, одной из переменных мы сможем дать произвольное значение даже если начнём считать отличие c и b/a реальным и будем пытаться подбирать [GBP, USD, EUR] по МНК :)

Тогда если какую то валюту принять за 1 то система решается любыми способами (Крамера, Гаусса....) но в таком случае наверное не имеет смысла использовать для торговли пары включающие данную 

валюту , так как нет состояний перекупленности\перепроданности по ней.

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

 

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

, где USD/YYY - все прямые котировки, типа USD/CHF, XXX/USD - все обратные, типа EUR/USD.

Сравнение временного ряда USDx посчитанного по этой формуле совпадает с результатами приведёнными выше и найденными из других соображений.

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