2015-03-09 4 views
1

Если у меня есть список цен, скажем [4,2,5,6,9,3,1,2,5], и у меня есть транзакционная стоимость в $ 2, и я могу купить и продать короткую сумму, тогда оптимальная стратегия заключается в покупке на двух позициях переключения на 9 и снова переключении на 1. Таким образом, Оптимальные индексы покупок - [1,6], а оптимальные индексы продаж - [4]. Как это можно решить программно? В частности, я ищу, чтобы его указывали в правильном направлении (т. Е. Это идеальный вариант для A * ... или что-то еще), а не для решения.Как я могу найти оптимальные точки покупки и продажи акций, если у меня есть транзакционная стоимость?

+0

Не могли бы вы объяснить проблему немного лучше? Вы хотите получить информацию обо всех элементах списка выше/ниже конкретных значений? – will

+0

Или вы хотите найти оптимальную стратегию покупки продажи с учетом набора исторических цен? – will

+0

@will Я пытаюсь найти оптимальную стратегию, учитывая набор исторических цен. – John

ответ

0

кажется, что оптимальные показатели продажи являются i таким образом, что price[i-1] < price[i] и price[i+1] <= price[i] и некоторое j > i, price[i] - price[j] > 2. Я не знаю об именах для такого алгоритма, но перечислять списки и функции any должно быть достаточно.

+0

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

+0

Это все еще не затрагивает вопрос о том, что я должен купить. Плата за транзакцию осложняет ситуацию. Если цена постепенно повышается и понижается на 1, а затем уменьшается на 2, то из-за транзакционной комиссии может быть лучше подождать, пока цена в конечном итоге снизится на 2, чтобы купить. И так далее, когда он снизится на 2, лучше было бы ждать даже позже, когда цена снизится еще больше из-за платы за транзакцию. Это пахнет проблемой динамического программирования, или, может быть, какой-то задействованный жадный метод может ее решить. – user2566092

+0

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

Смежные вопросы