Come costruire e utilizzare l'oscillatore e le onde Elliot Wave in Python?

Jan 05 2023
L'Elliott Wave Indicator è uno strumento di analisi tecnica sviluppato da Ralph Nelson Elliott che viene utilizzato per prevedere la direzione futura dei mercati finanziari. Si basa sull'idea che i movimenti del mercato, in particolare nel mercato azionario, possono essere previsti identificando modelli nella psicologia collettiva degli investitori.

L'Elliott Wave Indicator è uno strumento di analisi tecnica sviluppato da Ralph Nelson Elliott che viene utilizzato per prevedere la direzione futura dei mercati finanziari. Si basa sull'idea che i movimenti del mercato, in particolare nel mercato azionario, possono essere previsti identificando modelli nella psicologia collettiva degli investitori.

Perché utilizzare l'indicatore delle onde di Eliot?

Secondo la teoria di Elliott, i prezzi di mercato si muovono in una serie di onde che possono essere identificate e analizzate per prevedere i futuri movimenti dei prezzi. Queste ondate vengono identificate utilizzando regole e linee guida specifiche, che vengono utilizzate per identificare la tendenza sottostante e prevedere la prossima probabile mossa del mercato.

Per utilizzare l'indicatore Elliott Wave, i trader devono prima identificare la tendenza sottostante nel mercato. Questo può essere fatto cercando modelli nei movimenti dei prezzi, come massimi più alti e minimi più alti per una tendenza al rialzo, o massimi più bassi e minimi più bassi per una tendenza al ribasso. Una volta che la tendenza è stata identificata, i trader possono quindi utilizzare le regole e le linee guida specifiche dell'Elliott Wave Indicator per identificare le onde e prevedere i futuri movimenti dei prezzi.

Rischio associato a questo indicatore

L'indicatore Elliott Wave è solo uno strumento che i trader possono utilizzare per analizzare i mercati finanziari e prendere decisioni di trading informate. È importante utilizzarlo insieme ad altri strumenti e tecniche di analisi, come l'analisi fondamentale e gli indicatori tecnici, per ottenere un quadro completo del mercato.

Cos'è l'oscillatore a onde di Eliot?

L'Elliott Wave Oscillator (EWO) è un indicatore di analisi tecnica che mira a identificare la direzione e la forza di un trend misurando la differenza tra il numero di onde al rialzo e al ribasso nel mercato. È stato sviluppato da Ralph Nelson Elliott, che credeva che i mercati azionari si muovessero secondo schemi prevedibili, o onde, che sono il risultato della psicologia degli investitori.

L'EWO viene calcolato sottraendo il numero di onde verso il basso dal numero di onde verso l'alto e quindi dividendo il risultato per la somma di entrambi. Il valore risultante viene quindi tracciato su un grafico come una linea che oscilla attorno a una linea zero. Se l'EWO è sopra lo zero, indica che ci sono più ondate al rialzo nel mercato, e quindi è probabile che un trend rialzista continui. Se l'EWO è inferiore allo zero, indica che ci sono più ondate al ribasso nel mercato e, pertanto, è probabile che una tendenza al ribasso continui.

Per utilizzare l'EWO, i trader in genere cercano divergenze tra l'EWO e il prezzo dell'asset analizzato. Una divergenza rialzista si verifica quando l'EWO sta facendo minimi più alti mentre il prezzo dell'asset sta facendo minimi più bassi, il che può indicare che la tendenza al ribasso sta perdendo slancio ed è probabile un'inversione. Una divergenza ribassista si verifica quando l'EWO sta raggiungendo massimi decrescenti mentre il prezzo dell'asset sta raggiungendo massimi più elevati, il che può indicare che il trend rialzista sta perdendo slancio ed è probabile un'inversione.

Come codificare l'EWO in Python?

Per prima cosa importiamo le librerie necessarie (Pandas e NumPy). Possiamo quindi caricare i dati S&P 500 da un file CSV e calcolare la differenza tra i prezzi di chiusura del giorno corrente e quelli del giorno precedente.

In questo modo identifichiamo le tendenze al rialzo e al ribasso e calcoliamo il totale parziale dei giorni di rialzo e ribasso. Infine, calcola l'Elliott Wave Oscillator (EWO) e lo traccia.

# Import necessary libraries
import pandas as pd
import numpy as np

# Load S&P 500 data
df = pd.read_csv('SP500.csv')

# Calculate the difference between the current and previous day's closing prices
df['diff'] = df['Close'].diff()

# Identify upward and downward trends
df['up'] = np.where(df['diff'] > 0, 1, 0)
df['down'] = np.where(df['diff'] < 0, 1, 0)

# Calculate the running total of up and down days
df['up_days'] = df['up'].cumsum()
df['down_days'] = df['down'].cumsum()

# Calculate the Elliott Wave Oscillator
df['ewo'] = 100 * (df['up_days'] - df['down_days']) / (df['up_days'] + df['down_days'])

# Plot the Elliott Wave Oscillator
import matplotlib.pyplot as plt

plt.plot(df['ewo'])
plt.xlabel('Date')
plt.ylabel('Elliott Wave Oscillator')
plt.title('S&P 500 Elliott Wave Oscillator')
plt.show()

Il design di questo codice è a scopo informativo e i veri modelli di onde di Elliot richiedono maggiore complessità. Ma ha permesso al trader di capire le basi dietro le quinte.

import pandas as pd
import matplotlib.pyplot as plt

#Load in SP500 data

sp500 = pd.read_csv("SP500.csv")

#Calculate the waves using Elliot Wave Theory

waves = []
for i in range(1, len(sp500)):
if sp500["Close"][i] > sp500["Close"][i-1]:
waves.append(1)
elif sp500["Close"][i] < sp500["Close"][i-1]:
waves.append(-1)
else:
waves.append(0)

#Add waves to the SP500 dataframe

sp500["Waves"] = waves

#Plot the waves

plt.plot(sp500["Waves"])
plt.title("Elliot Waves for SP500")
plt.xlabel("Time")
plt.ylabel("Wave")
plt.show()

#Identify the waves

wave_count = 0
for i in range(1, len(sp500)):
if sp500["Waves"][i] == 1:
wave_count += 1
elif sp500["Waves"][i] == -1:
wave_count -= 1

#identify future evolution of spot based on wave count

if wave_count > 0:
print("SP500 is likely to increase in the future.")
elif wave_count < 0:
print("SP500 is likely to decrease in the future.")
else:
print("SP500 is likely to remain stable in the future.")