L'étiquette du marché ou les bonnes manières dans un champ de mines - page 74

 
Neutron >> :

Je me trompe bien plus souvent que vous ne l'imaginez (presque toujours).

Structurellement, les codes pour Kaga et Renko sont identiques. L'algorithme contient deux opérateurs de comparaison. La seule différence réside dans l'un d'entre eux - pour Kagi, le sommet est défini par un quotient, pour Renko, le sommet est défini par une étape de partitionnement H.

Et si vous avez pu coller l'algorithme de Renko en trois lignes, alors, par conséquent, Kagi remplira automatiquement (à la loyauté de mon affirmation) cette condition.

Regardez bien, j'ai une indexation indépendante pour le cotier, et pour le Kagi-building. Je sors de la sous-routine non seulement les coordonnées verticales des comptes Kagi, mais aussi leurs indices dans les coordonnées kotir...

OK, voici un petit script, avec un algorithme renko. Vous pourriez l'écrire en 3 lignes, mais il s'agit toujours de 15 opérateurs. Y compris l'affectation, le branchement, etc. Moins la sortie des résultats dans un fichier.

//+------------------------------------------------------------------+
//|                                              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);
  }

L'algorithme peut fonctionner correctement sur des données présentant des lacunes, des manques, etc. Et cela est bon et utile.


Voici le chiffre. Le bleu est la donnée, le rouge est le renko.


L'inconvénient de l'algorithme, - il fixe des points intermédiaires, aux sections où il y a une montée ou une descente monotone. Ce qui n'est pas tout à fait vrai, car pour obtenir les valeurs de la volatilité H, nous devrons effectuer un traitement supplémentaire ("supprimer" les points intermédiaires), ce qui signifie qu'il y a en fait plus d'opérations qu'il n'y paraît.


Pour le kaga, l'algorithme est plus compliqué, tant au niveau de la logique que du nombre d'opérateurs.


Maintenant les questions sont,

1) Que faut-il faire avec cet algorithme de Renko pour le rendre plus court ?

2. que faut-il faire pour rendre cet algorithme de Renco plus méfiant sans le rendre plus complexe ?


Je ne vois pas encore de solutions raisonnables, mais vous dites que c'est simple et possible.

 

Ici, on dirait que ça a marché pour Kagi. Je serais heureux de demander à quelqu'un de vérifier.



 
HideYourRichess писал(а) >>

Pour Kaga, l'algorithme est plus complexe, tant au niveau de la logique que du nombre d'opérateurs.

Si nous prenons comme base l'algorithme décrit dans les travaux de Pastukhov, la différence entre Renko et Kaga se situe exactement dans le pas de discrétisation du sommet le long de l'axe vertical. C'est ce dont je parle ci-dessus.

Ainsi, vous et moi n'avons aucun accord dans notre compréhension au niveau de l'algorithme. De toute évidence, nous devons d'abord nous occuper de cette question.

paralocus a écrit >>

Ici, on dirait que ça a marché pour Kagi. Je serais heureux de demander à quelqu'un de vérifier.

Paralocus, envoyez-nous le fichier cotier et le programme, nous pourrons alors comparer. Ou expliquez ce que sont vos paramètres P et m.
 
J'ai joint la liste et les devis. Le paramètre P est une série d'Open(dans ce cas les minutes GBPUSD - disponibles dans l'archive) Le paramètre m est le nombre de divisions de base élémentaires s dans une étape kagi
Dossiers :
kagi.rar  163 kb
 
Neutron >> :

Si nous prenons comme base l'algorithme de construction décrit dans le travail de Pastukhov, la différence entre Renko et Kaga se situe exactement dans l'étape de discrétisation du sommet le long de l'axe vertical. C'est ce dont je parlais plus haut.

Ainsi, vous et moi n'avons aucun accord dans notre compréhension au niveau de l'algorithme. De toute évidence, nous devons d'abord nous occuper de cette question.


J'ai l'impression que vous ne disposez pas d'un tel algorithme, à savoir que l'algorithme kagi n'est pas plus complexe que l'algorithme renko.


Traitons d'abord de cela, puis de ma compréhension.


Un autre point, la question est le traitement du début de la rangée. Voici votre dessin par exemple.




A mon avis, le début n'est pas très clair. Pourquoi avez-vous décidé de procéder de cette manière ? Du point de vue de la correspondance entre l'algorithme de négociation et l'algorithme de partition, il est souhaitable que le premier point coïncide avec le premier sommet.


En outre, la question du traitement correct des "lacunes" dans les données reste ouverte.

 
paralocus >> :

Ici, on dirait que ça a marché pour Kagi. Je serais heureux de demander à quelqu'un de vérifier.

Ce n'est pas un kagi. Les nœuds locaux sont ignorés.

 
HideYourRichess >> :

Ce ne sont pas des kagi. Les nœuds locaux sont ignorés.

Pouvez-vous être un peu plus précis ? Selon l'algorithme de partitionnement de Kaga, les sommets locaux seront parfois ignorés.

 
paralocus >> :

Pouvez-vous être un peu plus précis ? L'algorithme de découpage de Kaga peut parfois manquer des nœuds locaux.

Non, il peut sauter à Renko, jamais à Kagi. Sur le graphique des neutrons, ce sont les points rouges et bleus. C'est juste que votre aglorythme kagi n'est pas correct. J'ai déjà donné l'algorithme correct (tout à fait correct, il y a un petit problème avec le début de la ligne) de Candid. Algorithme indiqué dans la thèse de Pastukhov, le même, malheureusement, n'est pas tout à fait correct dans le traitement du début des lignes.


J'ai besoin que ce soit comme ça.


Les rouges sont les sommets des cagi, ou sommets en zigzag. Les points verts, "sans retour" - l'endroit où il est déterminé que le prochain sommet de la cage est entièrement formé. Les points bleu foncé sont les données.

 
HideYourRichess >> :

L'algorithme donné dans la thèse de Pastukhov, lui aussi, n'est malheureusement pas tout à fait correct, dans le traitement du début d'une ligne.



Malheureusement, la dissertation de Pastukhov dépasse de loin le niveau de ma capacité à comprendre les mathématiques.

 
paralocus >> :

Malheureusement, la dissertation de Pastukhov dépasse de loin le niveau de ma capacité à comprendre les mathématiques.

Eh bien, oubliez ça alors. Plusieurs choses y sont prouvées mathématiquement, et il présente un intérêt pour les mathématiciens. Et les conclusions sont assez simples, et surtout décrites en mots. Essentiellement, la H-volatilité est une statistique non paramétrique. La principale conclusion est que si la volatilité H est égale à 2H, l'arbitrage sur une telle série est impossible (prouvé mathématiquement). Sinon, l'arbitrage est possible. Il existe deux stratégies, selon que la volatilité H est supérieure ou inférieure à 2H. Ce sont les éléments de base. Plus quelques remarques sur les mécènes, etc.