Как перевести условия волны Эллиотта в код Python?

#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. Как я уже сказал, предоставление ваших вводных данных и ожидаемых результатов программным способом окажется более полезным, чем подробное изложение.