К задачам

Оптимальная торговая позиция по распределению return

СредняяАлгоритмы
Лучше работает на десктопе
МатожиданиеЖадный алгоритмQuant

Черный ящик возвращает дискретное распределение следующего изменения цены:

r = price[t + 1] - price[t]

Перед следующим тиком можно выбрать позицию от -max_position до max_position. Прибыль одного шага равна:

profit = position * r

Верните позицию, которая максимизирует матожидание прибыли.

  • если ожидаемый return положительный, верните max_position;
  • если отрицательный, верните -max_position;
  • если он ровно нулевой, верните 0.

Сигнатура

def optimal_position(return_distribution: list[list[float]], max_position: int) -> int:
return_distribution — список пар [return_value, probability].

Примеры

Пример 1

Вход:
return_distribution = [[1,0.6],[-1,0.4]]
max_position = 10
Выход:10

Пример 2

Вход:
return_distribution = [[2,0.1],[-1,0.9]]
max_position = 7
Выход:-7

Пример 3

Вход:
return_distribution = [[5,0.5],[-5,0.5]]
max_position = 3
Выход:0
Код
Python · Ctrl/⌘ + Enter для запуска
Лимит
05:00
Консоль
Нажмите кнопку запуска или Ctrl+Enter
Оптимальная торговая позиция по распределению return — Алгоритмы задача — ML Mentor