La etiqueta del mercado o los buenos modales en un campo de minas - página 74

 
Neutron >> :

Me equivoco mucho más a menudo de lo que imaginas (casi siempre).

Estructuralmente, los códigos de Kaga y Renko son idénticos. El algoritmo contiene dos operadores de comparación. La única diferencia está en uno de ellos - para Kagi el vértice se define a una discreción cociente, para Renko el vértice se define a un paso de partición H.

Y si usted fue capaz de meter el algoritmo Renko en tres líneas, entonces consecuentemente Kagi automáticamente (para la justicia de mi afirmación) satisfará esta condición.

Fíjate bien, tengo una indexación independiente para el cotier, y para la construcción de Kagi. De la subrutina no sólo salen las coordenadas verticales de los recuentos de Kagi, sino también sus índices en las coordenadas de cotierra...

OK, aquí hay un pequeño script, con un algoritmo renko. Podrías escribirlo en 3 líneas, pero siguen siendo 15 operadores. Incluyendo la asignación, la ramificación, etc. Menos la salida de los resultados a un archivo.

//+------------------------------------------------------------------+
//|                                              test_Renko_Kagi.mq4 |
//|                                Copyright © 2009, HideYourRichess |
//+------------------------------------------------------------------+
int      rand[];
int      Series = 65000;
int      H = 7;

int start()
  {
   int csvHandle = FileOpen( "test_Renko_Kagi" + ".csv", FILE_CSV| FILE_WRITE, ';');
   if( csvHandle > 0) {
    ArrayResize( rand, Series);
    
    rand[0] = 0;
    MathSrand( TimeLocal());
    for( int i = 1; i < Series; i++) { rand[ i] = rand[ i-1] + (MathRand() - 16383) / 4000; }
    
    int renko = rand[0];
    FileWrite( csvHandle, 0, rand[0], renko);
    
    for( i = 1; i < Series; i++) {
     if( MathAbs( rand[ i] - renko) < H) {
      FileWrite( csvHandle, i, rand[ i]);
     } else {
      while( rand[ i] - renko >= H) { renko = renko + H; }
      while( renko - rand[ i] >= H) { renko = renko - H; }
      FileWrite( csvHandle, i, rand[ i], renko);
     }
    }
    
   }
   if( csvHandle > 0) FileClose( csvHandle);
   return(0);
  }

El algoritmo puede funcionar correctamente con datos con huecos, lagunas, etc. Y esto es bueno y útil.


Esta es la cifra. El azul son los datos, el rojo es el renko.


La desventaja del algoritmo, - que expone los puntos intermedios, en las zonas donde hay una subida o bajada monótona. Lo cual no es muy cierto, porque para obtener los valores de la volatilidad H tendremos que realizar un procesamiento adicional ("quitar" los puntos intermedios), lo que significa que en realidad hay más operaciones de las que parece.


Para kaga, el algoritmo es más complicado, tanto en la lógica como en el número de operadores.


Ahora las preguntas son,

1. ¿Qué hay que hacer con este renko-algoritmo para que sea más corto?

2. ¿Qué hay que hacer para que este algoritmo de Renko sea más cageado sin hacerlo más complejo?


Todavía no veo ninguna solución razonable, pero dices que es sencillo y posible.

 

Aquí, parece haber funcionado kagi. Estaré encantado de que alguien lo compruebe.



 
HideYourRichess писал(а) >>

En el caso de Kaga, el algoritmo es más complejo, tanto en la lógica como en el número de operadores.

Si tomamos como base el algoritmo descrito en el trabajo de Pastukhov, la diferencia entre Renko y Kaga está exactamente en el paso de discretización del vértice a lo largo del eje vertical. De esto es de lo que hablo más arriba.

Por lo tanto, tú y yo no coincidimos en nuestro entendimiento a nivel del algoritmo. Obviamente, tenemos que tratar este tema en primer lugar.

paralocus escribió >>

Aquí, parece haber funcionado kagi. Estaré encantado de que alguien lo compruebe.

Paralocus, envíanos el archivo cotier y el programa, así podremos comparar. O explique cuáles son sus parámetros P y m.
 
He adjuntado el listado y los presupuestos. El parámetro P es una serie de Open(en este caso minutos de GBPUSD - disponible en el archivo) El parámetro m es el número de divisiones de base elemental s en un paso de kagi
Archivos adjuntos:
kagi.rar  163 kb
 
Neutron >> :

Si tomamos como base el algoritmo de construcción descrito en la obra de Pastukhov, la diferencia entre Renko y Kaga está exactamente en el paso de discretización del vértice a lo largo del eje vertical. A esto me refería más arriba.

Por lo tanto, tú y yo no coincidimos en nuestro entendimiento a nivel del algoritmo. Obviamente, tenemos que tratar este tema en primer lugar.


Me da la impresión de que no tienes tal algoritmo, es decir, el algoritmo kagi no es más complejo que el algoritmo renko.


Vamos a tratar primero eso y luego lo que yo entiendo.


Otro punto, la cuestión es el tratamiento del principio de la fila. Este es su dibujo, por ejemplo.




En mi opinión, el comienzo no está del todo claro. ¿Por qué decidió hacerlo así? Desde el punto de vista de la correspondencia del algoritmo de negociación y del algoritmo de partición, es deseable que el primer punto coincida con el primer vértice.


Además, sigue abierta la cuestión del tratamiento correcto de las "lagunas" en los datos.

 
paralocus >> :

Aquí, parece haber funcionado kagi. Estaré encantado de que alguien lo compruebe.

No es un kagi. Se saltan los vértices locales.

 
HideYourRichess >> :

Estos no son kagi. Se omiten los nodos locales.

¿Puede ser un poco más específico? Según el algoritmo de partición kaga, los vértices locales a veces se saltan.

 
paralocus >> :

¿Puede ser un poco más específico? Mediante el algoritmo de división kaga a veces se pierden los nodos locales.

No, puede saltar en Renko, nunca en Kagi. En el gráfico de los neutrones, estos son los puntos rojos y azules. Es que tu agloria de kagi no es correcta. Ya he dado el algoritmo correcto (bastante correcto, hay un pequeño problema con el inicio de la fila) de Candid. Algoritmo indicado en la disertación de Pastukhov, el mismo, por desgracia, no es del todo correcto en el procesamiento de principio de filas.


Necesito que sea así.


Las rojas son las cagi tops, o cimas en zigzag. Verde, puntos de "no retorno" - el lugar donde se determina que el siguiente vértice de la jaula está completamente formado. Los puntos azules oscuros son los datos.

 
HideYourRichess >> :

El algoritmo dado en la disertación de Pastukhov, también, desafortunadamente, no es del todo correcto, en el procesamiento del comienzo de una fila.



Desgraciadamente, la disertación de Pastukhov supera con creces mi nivel de comprensión de las matemáticas.

 
paralocus >> :

Desgraciadamente, la disertación de Pastukhov supera con creces mi nivel de comprensión de las matemáticas.

Bueno, olvídalo entonces. Allí se demuestran matemáticamente varias cosas, y es interesante para los matemáticos. Y las conclusiones son bastante sencillas, y en su mayoría se describen con palabras. Esencialmente, la volatilidad H es una estadística no paramétrica. La principal conclusión es que si la volatilidad H es igual a 2H, el arbitraje en dicha serie es imposible (demostrado matemáticamente). De lo contrario, el arbitraje es posible. Hay dos estrategias, dependiendo de si la volatilidad H es mayor o menor que 2H. Esto es lo básico. Además de algunos comentarios sobre los patrocinadores, etc.