10$ para actualizar el indicador - página 3

 
Svinozavr >>:
Алексей, а чем тебя предложенный мной расчет не устраивает? Тебе индикатор написать, чтоб пояснить? )))

está desplazando incorrectamente. tome un período de 3,33333 por ejemplo.

 
¿Puedo hacerlo?

   for(int i=limit; i>=0; i--)
   {
      MA[i]=(iMA(NULL,0,MathCeil(DMA),0,0,PRICE_CLOSE,i)-iMA(NULL,0,MathFloor(DMA),0,0,PRICE_CLOSE,i))*(DMA-MathFloor(DMA))+ iMA(NULL,0,MathFloor(DMA),0,0,PRICE_CLOSE,i);
   }
 
avatara >>:

вы сдвигаете неверно. возьмите период 3.33333 например.


??? No cambio nada en absoluto. Y si lo escribes en forma de números enteros, en lugar de la forma habitual de FIR, funciona así:

(0,33333*Cierre[3] + Cierre[2] + Cierre[1] + Cierre[0])/3,33333

 
Svinozavr >>:

??? Я вообще ничего не сдвигаю.

fuera. No sólo contamos el valor 0 del buffer indicador, sino también N-1 de los demás.
Propongo evaluar la corrección de la fórmula para otros índices

 
Svinozavr >>:
Алексей, а чем тебя предложенный мной расчет не устраивает? Тебе индикатор написать, чтоб пояснить? )))

No necesitas un indexador, la fórmula es suficiente. Su fórmula es asimétrica en los precios, eso es lo que me molesta.

Por ejemplo, para un periodo de 3,5 la SMA puede escribirse de la siguiente manera:
a1*Close[3] + a2*Close[2] + a2*Close[1] + a2*Close[0], donde a2=1/3,5, a1=1-3/3,5;

Por cierto, hay algo que falla en tu fórmula. ¿Probablemente quiso decir a2=1/3,5, a1=0,5/3,5? ¿Y por qué exactamente a1 es tan especial y no otro? ¿Por qué no sugerir lo contrario, haciendo el valor k en Close[0] más pequeño?

Bueno, probablemente sabes lo que es una función gamma. Es una continuación natural del factorial en la región no entera. Esta continuación no viola ninguna propiedad del factorial de los enteros y es simultáneamente la más "suave" en algún sentido (había algo sobre la convexidad, no lo recuerdo, se estudió hace tiempo).

En principio, el tipo probablemente quería que hasta el más mínimo cambio en el período (no entero) se reflejara de alguna manera en la mueva. Pero se puede hacer de mil maneras.

2 avatara: Pues la misma situación. Tu versión me gusta más en realidad. Pero también hay un inconveniente: la contribución de los puntos extremos difiere de la del resto. Esto no es una propiedad de una simple máquina de ondulación.

Quizás estoy siendo demasiado categórico. Lo mejor es tener un ejemplo delante, por ejemplo, en Easy Language. Ya puedes ver el algoritmo ahí.

 
Mathemat >>:
Лучше всего, когда видишь перед собой пример - скажем, на Easy Language.

He dado una pista. /* según me parece - hay que resolver el problema geométrico con un desplazamiento. entonces en el índice 0 la fórmula de Peter es correcta. Y luego cambiar los coeficientes marginales. */

------

Es una mini prueba de provocación ;)

 
¿Qué le parece esta fórmula?

Por ejemplo, para un período de 3,3333333 SMA puede escribirse como
iMA(...,3,3333333,...)=a1*iMa(...,3,...)+a2*iMa(...,4,...). donde a1+a2=1. a1=0,666666, a2=1-a1=0,3333333. Y si ponemos 0 y 1 en la fórmula, eso es lo que obtenemos.
 
grell >>:
Как вам такая формула

Например, для периода 3.3333333 SMA можно записать так:
iMA(...,3.5,...)=a1*iMa(...,3,...)+a2*iMa(...,4,...). где а1+а2=1. а1=0.6666666, а2=1-а1=0.3333333. И если в формулу подставить 0 и 1, то то на то и выйдет.

+5)

 
En mi opinión, una solución muy elegante. grell, ¡bravo!
Una fórmula sencilla:
2/3*(C0+C1+C2)/3 + 1/3*(C0+C1+C2+C3)/4 = (2/9+1/12)*C0+(2/9+1/12)*C1+(2/9+1/12)*C2+1/12*C3= 11/36*(C0+C1+C2)+1/12*C3
Sí, las k son asimétricas de todos modos. ¡Pero si es precioso!
 
Gracias, la solución vino sólo de los casos individuales.