#python #loops #condition-system
Вопрос:
как я могу найти И пометить локальные минимумы и максимумы в наборе данных?
например, когда у меня есть следующий набор поплавков, таких как:
400.510009765625, 423.8999938964844, 420.9800109863281, 438.0899963378906, 429.95001220703125, 421.260009765625, 410.3599853515625, 417.1300048828125, 411.760009765625,
а затем я сравниваю каждое соседнее значение с предыдущим с помощью этого простого цикла:
for x in range(0,len(nfy)):
if nfy[x]<nfy[x 1]:
print('raising')
elif nfy[x]>nfy[x 1]:
print('falling')
я получу постоянный список отпечатков этого сравнения, таких как:
raising
falling
raising
falling
falling
falling
raising
falling
falling
falling
raising
и так далее.
Теперь мой вопрос: как я могу запомнить или обозначить, существуют ли локальные минимумы или локальные максимумы, сопоставленные или связанные с окружающими значениями?
Мне нужно быть способным применять здесь эти простые правила:
*Локальные минимумы падающего значения (последняя цена в одном или серии «падающих» значений) после (серии или одного) повышения значений никогда не возвращаются больше начальной начальной точки (которая должна быть меньше следующих значений: она должна расти). Точка поворота от роста к падению значений должна быть обозначена как «число 1» и представлена локальными максимумами. Точка поворота от первых падающих значений к следующим растущим значениям должна быть обозначена как «число 2» и является локальным минимумом.
При выполнении этих условий должна быть серия повышающих значений, которые должны превышать первые «локальные максимумы», помеченные как «номер 1».
Следующий сдвиг от повышающихся к понижающимся значениям должен быть обозначен как «число 3» и будет представлять собой локальные максимумы.
Я хочу добавить в дополнительное условие, что «число 3» должно быть выше, чем «число 1», А также должно иметь наибольшее расширение (диапазон), которое будет представлено: «число 1» — «начальная точка».
Затем, если эти условия выполнены, я хочу добавить условие, что следующие локальные минимумы (после локальных максимумов «число 3») являются допустимыми, когда происходит изменение от падающих значений после того, как «число 3» было помечено, к снова возрастающим значениям, которые будут помечены как «число 4» и будут представлены локальными минимумами. Кроме того, я хотел бы добавить в условие, что «число 4» не может быть равно или меньше значения «число 1».
Как, черт возьми, мне настроить эти петли? Как я могу перевести это в рабочий код?
это, кстати, очень сложное извлечение Правил, основанных на волновой теории Эллиотта. Я хочу применить это на биржевых картах для подсчета волн.
С наилучшими пожеланиями и большой благодарностью, Бенджамин
Комментарии:
1. Ваш вопрос слишком специфичен и не привлечет никаких ответов, подумайте о том, чтобы предоставить свой вклад и ожидаемый результат
2. спасибо, приятель, я думал, что сделал это. Да, это довольно специфично, но также и нет, потому что я уже перевел Правила волны Эллиотта в более абстрактную интерпретацию, такую как маркировка «номер 1», «номер 2» и так далее…. Я просто понятия не имею, как на самом деле написать этот процесс в коде.
3. Как я уже сказал, предоставление ваших вводных данных и ожидаемых результатов программным способом окажется более полезным, чем подробное изложение.