Aquí os dejo el código para calcular las bandas Bollinger en Python:
Es algo bastante simple, pero por algo se empieza, la clave es calcular la volatilidad correctamente. En este ejemplo no se tiene en cuenta los rangos de cada vela, pero lo iremos complicando.
Creo que la forma de calcular la volatilidad es aplicar true-range con un factor de decaimiento.
Lo voy a programar en Matlab que va a ser más rápido, después habrá que calibrar los distintos factores para aplicarlo al EURUSD.
Código PHP:
import numpy as np
import pandas as pd
import pandas_datareader as pdr
import matplotlib.pyplot as plt
def get_sma(prices, rate):
return prices.rolling(rate).mean()
def get_bollinger_bands(prices, rate=20):
sma = get_sma(prices, rate)
std = prices.rolling(rate).std()
bollinger_up = sma + std * 2 # Calculate top band
bollinger_down = sma - std * 2 # Calculate bottom band
return bollinger_up, bollinger_down
symbol = 'AAPL'
df = pdr.DataReader(symbol, 'yahoo', '2016-07-01', '2022-07-01')
df.index = np.arange(df.shape[0])
closing_prices = df['Close']
sma = get_sma(closing_prices, 20) # Get 20 day SMA
bollinger_up, bollinger_down = get_bollinger_bands(closing_prices)
plt.title(symbol + ' Bollinger Bands')
plt.xlabel('Days')
plt.ylabel('Closing Prices')
plt.plot(closing_prices, label='Closing Prices')
plt.plot(bollinger_up, label='Bollinger Up', c='g')
plt.plot(sma, label='Moving Average', c='g')
plt.plot(bollinger_down, label='Bollinger Down', c='r')
plt.legend()
plt.show()
Última edición por mbolsia; 10/11/2022 a las 00:37
acushnir (10/11/2022)
La volatilidad es lo más complejo de estimar y es la clave de cualquier sistema, modelo financiero, ahora los modelos de series temporales si que estiman bien la volatilidad pero no el precio al que estará un activo en el futuro. Por la sencilla razón de que a la volatilidad está correlacionada. Más volatilidad suele traer mucha volatilidad, un ejemplo fue ayer con el Dólar.
En un momento el dólar se deprecio más de un 1% y se lo debemos a la volatilidad por la noticia de la inflación en USA.
Un sistema que realiza operaciones de 25pips aleatoriamente, lo utilizo para intentar identificar patrones del mercado, y como se observa en el gráfico muchas veces la orden se ejecuta en 100 pips.
Estos movimientos tan fuertes son el ejemplo que que puedes perder tu cuenta si estas apalancado pudiendo soportar un movimiento en tu contra que no permita ejecutarse los STOPS.
Una forma de ver la volatilidad del mercado sería contar cuantos movimientos han habido cada día por ejemplo de 15 pips, como si lanzaramos una orden Sell o Buy aleatoria, los días más volátiles habrán muchos más que los días menos volátiles, y sobre todo si un día se producen muchos movimiento al día siguiente se van a producir muchos más.
El estudio de la volatilidad es clave para comprender porque hay sistemas de trading o indicadores técnicos no funcionan, porque a cada tipo de volatilidad existe una forma de hacer trading, por ello intentar clasificar el mercado en grupos de volatilidad es el primer paso para tener éxito en el trading algorítmico.
Volatilidad por horas
Como vemos en la siguiente tabla hay horas muy volátiles en el EURUSD y otras que el mercado apenas se mueve, todo va en función de las noticias.
Como se observa lo ideal sería empezar a hacer trading a las 6 de la mañana hasta las 7 de la tarde.
Por ejemplo empezar con 100 dólares en la cuenta y al final del día todo lo que exceda se saca fuera del robot, y las perdidas se reponen.
Con ello estaríamos arriesgando 100 dólares al día. Pero como siempre dije hay movimientos muy fuertes que no puedes controlar que te harán perder tu cuenta.
En el siguiente post calcularemos el indicador TRUE RANGE para calcular volatilidades con decaimiento exponencial, que son las que se utilizan para el cálculo del VaR.
También intentaremos hacer un modelo que clasifique la volatilidad como la siguiente imagen, lo ideal sería un modelo automatizado.
Ejemplo:
https://support.numxl.com/hc/es/arti...da-Exponencial
https://www.afi-inversiones.es/notic...s-volatil.html
https://www.oreilly.com/library/view...5249/ch04.html
https://www.arpm.co/lab/volatility-c...nvariants.html
https://medium.com/cw-quantlab/volat...g-3703a6706a48
Última edición por mbolsia; 11/11/2022 a las 14:10
Actualmente hay 1 usuarios viendo este tema. (0 miembros y 1 visitantes)
Marcadores