Рубрики
Uncategorized

Помощь

Мы рады вам помочь. Вы находитесь здесь https://investo.ru/?p=47

Рубрики
Uncategorized

Python трейдера или почему йена – лох?

Мне нравится язык программирования Python за простоту и элегантность с которой он позволяет решать возникающие задачи. Вот, к примеру, понадобился мне список всех кросс-курсов по 7 основным валютам, раньше, я бы составлял его вручную, несколько десятков инструментов, рискуя перепутать порядок расположения валют (как правильно ‘CHF_GBP’ или ‘GBP_CHF’ ?) пропустить какой-то кросс или банально допустить опечатку.

Теперь я знаю Python!

Предупреждение!
Форекс - игра с отрицательным математическим ожиданием.

Оцените лаконичность: имеем два цикла в четырех строчках кода. Вначале задаем список основных валют, из которого извлекаем названия методом .pop() и пустой список в который добавляем кросс-курсы методом .append()

currency = ['EUR', 'GBP', 'AUD', 'NZD', 'CAD', 'CHF', 'JPY']
cross = []

while currency:                       # цикл пока список не пустой
  c1 = currency.pop(0)                # вырезаем первый(0) элемент 'EUR'
  for c2 in currency:                 # и объединяем с оставшимися
    cross.append( c1 + '_' + c2 )     # получаем 'EUR_GBP' и т.д.

print( cross )

Результат:

['EUR_GBP',
 'EUR_AUD',
 'EUR_NZD',
 'EUR_CAD',
 'EUR_CHF',
 'EUR_JPY',
 'GBP_AUD',
 'GBP_NZD',
 'GBP_CAD',
 'GBP_CHF',
 'GBP_JPY',
 'AUD_NZD',
 'AUD_CAD',
 'AUD_CHF',
 'AUD_JPY',
 'NZD_CAD',
 'NZD_CHF',
 'NZD_JPY',
 'CAD_CHF',
 'CAD_JPY',
 'CHF_JPY']

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

Возвращаясь к вопросу ‘CHF_GBP’ или ‘GBP_CHF’, достаточно посмотреть на порядок расположения валют в нашем списке currency в самой первой строчке кода. Первая валюта в кросс-курсе та, что левее в списке. Правильно, конечно же ‘GBP_CHF’.

Йена расположена в конце списка, у нее нет ни одного кросс-курса в котором она стояла бы на первом месте. Евро, напротив, мажор: по отношению к остальным валютам он всегда стоит на первом месте и у него больше всего кросс-курсов.