У меня есть задание, я должен написать функцию, которая может определять точки пересечения в двух списках.Функция заключается в анализе финансовых данных.Так, например, у меня есть два списка цен (скользящие средние) в качестве входных данных, а в качестве выходных данных я хочу два отдельных списка, 1 с указанием, когда эти цены (скользящие средние) пересекаются (т.е. индекс времен), и 1, определяющий, какой список вышев точке пересечения (т. е. выше IndeX).У меня возникают проблемы с правильным синтаксисом, чтобы определить критерии выше на Python.Пока я ничего не написал, так как застрял.Кто-нибудь делал что-нибудь подобное, есть ли советы.
Дополнительная информация, назначение касается скользящих средних и проверки пересечения скользящих средних.Мне удалось написать функцию, которая обнаруживает скользящие средние, но я застрял в этой части.Извините за отсутствие кода и информации.Я почти уверен, что копирование, вставляющее все критерии назначения, здесь не рекомендуется, поэтому я попытался объяснить, в чем заключается моя проблема.
Identify cross-over indices for two equal-length lists of prices (here: moving averages)
Parameters:
prices1, prices2: lists of prices (ordered by time)
Returns:
list of crossover points
Each item in the returned list is a list [time_index, higher_index], where:
- time_index is the crossover time index (when it happends
- higher_index indicates which price becomes higher at timeIndex: either 1 for first list or 2 for second list
There are no crossovers before both price lists have values that are not None.
You can start making comparisons from the point at which both have number values.
Example use:
>>> p1 = [1, 2, 4, 5]
>>> p2 = [0, 2.5, 5, 3]
>>> cross_overs(p1, p2)
[[1, 2], [3, 1]]
>>> p1 = [None, 2.5, 3.5, 4.5, 4.5, 3.5, 2.5, 1.5, 3.5, 3.5]
>>> p2 = [None, None, 3.0, 4.0, 4.333333333333333, 4.0, 3.0, 2.0, 3.0, 2.6666666666666665]
>>> cross_overs(p1, p2)
[[5, 2], [8, 1]]
"""
для первой части (т. Е. Идентифицировать, когда произошло пересечение, это то, что я пытался.вы видите, результат, который я получил, неверен.
def cross_overs(prices1, prices2):
times_index = list(set(prices1).intersection(set(prices2)))
print (times_index)
(input)
p1 = [1, 2, 4, 5]
p2 = [0, 2.5, 5, 3]
cross_overs(p1, p2)
(output)
[5]