Matlab - Error en programa para SMA

 
Vista:
sin imagen de perfil

Error en programa para SMA

Publicado por Angel (4 intervenciones) el 29/01/2017 16:26:03
Hola amigos, espero que me puedan ayudar con un programa de matlab.

El programa trata de hacer a partir de una columna de cierres(precio), todas las medias simples SMA de diferentes periodos y guardarlo todo en una Matriz llamada SMA con las columnas como la sma de cada periodo diferente.
El error se presenta al introducir el bucle que recorre todos los periodos ya que solo efectúa la primera SMA y la repite en todas las columnas de la matriz SMA.
Espero haberme explicado bien.
Aquí les dejo el código, un saludo y muchas gracias:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[m,n]=size(Cierres)
SMA=[];
media=[];
for l=2:1:50   %%Diferentes periodos para SMA
        if l<=m
             N=l
        end
    for j=N:1:m %% Un periodo pero para todos los conjuntos de elementos
           suma=0
            for i=j:-1:(j-N+1) %% Suma de los N elementos
            suma=suma+Cierres(i,1)
        end
        media(j,:)=suma/N
    end
    SMA(:,s)=media(:,1)
    s=s+1
end
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 8.016
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Error en programa para SMA

Publicado por JOSE JEREMIAS CABALLERO (5780 intervenciones) el 29/01/2017 23:39:44
Podrias explicar en detalle que es lo desea hacer con su columna de precios. Para poder hacer los cambios respectivos en el codigo.

Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Servicios de programación matlab


http://matlabcaballero.blogspot.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Error en programa para SMA

Publicado por Angel (4 intervenciones) el 29/01/2017 23:49:31
Por supuesto, gracias por su respuesta.

De una lista de cotizaciones cojo los cierres de por ejemplo 1 dia con velas o intervalos de 1 minuto.
Y quiero hacer la Matriz SMA que contenga como vector columnas todas las medias simples moviles, desde el periodo2 hasta el 50 por ejemplo.

Entonces hago un bucle que haga la media de tantos numeros como el periodo de la SMA que corresponda.
Un bucle que engloba a este para ir recorriemdo toda la columna de cierres y asi obtener la SMA.
Hasta aqui el programa funciona.

El punto esta en el bucle que recorre todos los periodos y debiera colocar todas esas medias moviles en una unica matriz.

Si luego ploteases esa matriz debieran representarse todas las SMAs calcupadas del periodo 1 al 50 como en el ejemplo.

El programa se atasca y me coloca 49 filas iguales de la media del periodo 1...el fallo esta que no actualiza pero no veo que esta mal.

Espero haber sido mas claro.
Muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 8.016
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Error en programa para SMA

Publicado por JOSE JEREMIAS CABALLERO (5780 intervenciones) el 29/01/2017 23:55:36
Podria resolver en forma anatica con un vector pequeño de precios, lo que desea hacer.

Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Servicios de programación matlab


http://matlabcaballero.blogspot.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Error en programa para SMA

Publicado por Angel (4 intervenciones) el 30/01/2017 00:09:53
Espero que se entienda. Gracias
20170130_000729
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 8.016
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Error en programa para SMA

Publicado por JOSE JEREMIAS CABALLERO (5780 intervenciones) el 30/01/2017 01:35:21
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
clear all
clc
Cierres=[1;5;7;8; 9;5;4;3;2];
m=length(Cierres);
t=1;
for N=3:m-1
       n=1;
        for j=1:m-N+1
            s=0;
            for k=j:j+N-1
                s=s+Cierres(k);
            end
            SMA(n,t)=s/N;
            n=n+1;
        end
    t=t+1;
end
 display(SMA)

1
2
3
4
5
6
7
8
9
10
11
>> smaa1
 
SMA =
 
    4.3333    5.2500    6.0000    5.8333    5.5714    5.2500
    6.6667    7.2500    6.8000    6.3333    5.8571    5.3750
    8.0000    7.2500    6.6000    6.0000    5.4286         0
    7.3333    6.5000    5.8000    5.1667         0         0
    6.0000    5.2500    4.6000         0         0         0
    4.0000    3.5000         0         0         0         0
    3.0000         0         0         0         0         0


Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Servicios de programación matlab


http://matlabcaballero.blogspot.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Error en programa para SMA

Publicado por Angel (4 intervenciones) el 30/01/2017 16:44:26
Muchas gracias amigo, eres un crack
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar