Сравнить биржевые индексы разных размеров Python - PullRequest
0 голосов
/ 15 ноября 2018

Я использую Python, чтобы попытаться провести некоторый макроэкономический анализ различных фондовых рынков. Мне было интересно, как правильно сравнивать индексы разных размеров. Например, индекс Доу-Джонса составляет около 25 000 по оси Y, а у Russel 2000 - всего около 1500. Я знаю, что веб-сайт tradingview позволяет сравнить эти два в их онлайн-чартере. Он сжимает / увеличивает фоновую диаграмму, чтобы она соответствовала другой на новой оси Y. Есть какой-то статистический метод, где я могу сделать то же самое в Python?

Ответы [ 2 ]

0 голосов
/ 15 ноября 2018

Я знаю, что сайт tradingview позволяет сравнивать эти два в их онлайн-чартере. Он сжимает / увеличивает фоновую диаграмму, чтобы она соответствовала другой на новой оси Y.

Эти веб-сайты масштабируют их, устанавливая начальные начальные точки для обоих индексов, скажем, в 100. Т.е. если Доу составляет 25000 пунктов, а S & P - 2500, то Доу делится на 250, чтобы изначально получить 100, а S & P - 25. Затем у вас есть два индекса, которые начинаются с 100, и вы можете сравнить их бок о бок.

Другой метод (работает хорошо, только если у вас есть две серии) - это установить ось Y с правой стороны для одной серии и с левой стороны для другой.

0 голосов
/ 15 ноября 2018

У вас есть несколько возможностей здесь.Допустим, вы определяете свою ось следующим вызовом

fig, ax = plt.subplots()

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

ax.set_yscale('log')

Вы также можете определить две оси y внутритот же график с разными масштабами с помощью вызова

ax2 = ax.twinx()

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

from mpl_toolkits.axes_grid1.inset_locator import zoomed_inset_axes
ax2 = zoomed_inset_axes(ax, zoom, bbox_to_anchor=(, ),
                        bbox_transform=ax.transAxes, loc='', borderpad=)

Последнее, что нужно сделать, - это напрямую масштабировать ваши данные.Например, если DowJones варьируется от 20 000 до 30 000, то вы можете применить следующее преобразование

DowJones = (DowJones - min(DowJones)) / (max(DowJones) - min(DowJones))

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...