Etiqueta de mercado ou boas maneiras em um campo minado - página 74

 
Neutron >> :

Estou errado muito mais vezes do que você possa imaginar (quase sempre).

Estruturalmente, os códigos para Kaga e Renko são idênticos. O algoritmo contém dois operadores de comparação. A única diferença está em um deles - para Kagi o vértice é definido a um quociente, para Renko o vértice é definido a um passo de partição H.

E se você foi capaz de enfiar o algoritmo Renko em três linhas, então consequentemente Kagi irá automaticamente (para a justiça da minha afirmação) satisfazer esta condição.

Veja bem, eu tenho indexação independente para cotier, e para Kagi-building. Não só saio da sub-rotina as coordenadas verticais do Kagi conta, mas também seus índices nas coordenadas kotir...

OK, aqui está um pequeno roteiro, com um algoritmo renko. Você poderia escrevê-lo em 3 linhas, mas ainda são 15 operadores. Incluindo a designação, ramificação, etc. Menos a saída dos resultados para um arquivo.

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

O algoritmo pode funcionar corretamente em dados com lacunas, lacunas, etc. E isto é bom e útil.


Aqui está a figura. O azul são os dados, o vermelho é o renko.


A desvantagem do algoritmo, - expõe pontos intermediários, em áreas onde há uma ascensão ou queda monotônica. O que não é muito verdadeiro, pois para obter os valores de H-volatilidade teremos que realizar um processamento adicional ("remover" os pontos intermediários), o que significa que na verdade há mais operações do que parece.


Para o kaga, o algoritmo é mais complicado, tanto na lógica como no número de operadores.


Agora as perguntas são,

1) O que deve ser feito com este renko-algoritmo para torná-lo mais curto?

2) O que deve ser feito para tornar este algoritmo Renco mais complexo?


Ainda não vejo nenhuma solução razoável, mas você está dizendo que é simples e possível.

 

Aqui, parece ter funcionado o kagi. Eu ficaria feliz em ter alguém para checar.



 
HideYourRichess писал(а) >>

Para Kaga, o algoritmo é mais complexo, tanto na lógica quanto no número de operadores.

Se tomarmos como base o algoritmo descrito no trabalho de Pastukhov, a diferença entre Renko e Kaga está exatamente na etapa de discretização do vértice ao longo do eixo vertical. É disto que estou falando acima.

Portanto, você e eu não temos nenhum acordo em nosso entendimento no nível do algoritmo. Obviamente, precisamos lidar primeiro com esta questão.

paralocus escreveu >>

Aqui, parece ter funcionado o kagi. Eu ficaria feliz em ter alguém para checar.

Paralocus, envie-nos o arquivo cotier e o programa, depois podemos comparar. Ou explique quais são seus parâmetros P e m.
 
Anexei a lista e as citações. O parâmetro P é uma série de minutos em aberto(neste caso GBPUSD - disponível no arquivo) O parâmetro m é o número de divisões de base elementares em uma etapa de kagi
Arquivos anexados:
kagi.rar  163 kb
 
Neutron >> :

Se tomarmos como base o algoritmo de construção descrito no trabalho de Pastukhov, a diferença entre Renko e Kaga está exatamente na etapa de discretização do vértice ao longo do eixo vertical. Era disto que eu estava falando acima.

Portanto, você e eu não temos nenhum acordo em nosso entendimento no nível do algoritmo. Obviamente, precisamos lidar primeiro com esta questão.


Tenho a impressão de que você não tem tal algoritmo, ou seja, o algoritmo kagi não é mais complexo do que o algoritmo renko.


Vamos lidar com isso primeiro e depois meu entendimento.


Outro ponto, a questão é o processamento do início da fila. Aqui está o seu desenho, por exemplo.




Na minha opinião, o início não é muito claro. Por que você decidiu fazer isso dessa maneira? Do ponto de vista da correspondência de algoritmo de comercialização e algoritmo de partição, é desejável que o primeiro ponto coincida com o primeiro vértice.


Além disso, a questão do tratamento correto das "lacunas" nos dados permanece em aberto.

 
paralocus >> :

Aqui, parece ter funcionado o kagi. Eu ficaria feliz em ter alguém para checar.

Não é um kagi. Os vértices locais são pulados.

 
HideYourRichess >> :

Estes não são kagi. Os nós locais são pulados.

Você pode ser um pouco mais específico? De acordo com o algoritmo de partição kaga, às vezes os vértices locais serão pulados.

 
paralocus >> :

Você pode ser um pouco mais específico? Pelo algoritmo do kaga que divide os nós locais, às vezes não será percebido.

Não, pode pular na Renko, nunca na Kagi. No gráfico de nêutrons, estes são os pontos vermelhos e azuis. É que seu kagi aglorythm não está correto. Eu já dei o algoritmo correto (bastante correto, há um pequeno problema com o início da fila) do Candidato. Algoritmo indicado na dissertação de Pastukhov, o mesmo, infelizmente, não é muito correto no início do processamento de linhas.


Eu preciso que seja assim.


Os vermelhos são os tops de cagi, ou ziguezague. Verde, pontos "sem retorno" - o lugar onde é determinado que o próximo vértice da gaiola está totalmente formado. Os pontos azuis escuros são os dados.

 
HideYourRichess >> :

O algoritmo dado na dissertação de Pastukhov, infelizmente, também não é muito correto, no processamento do início de uma fila.



Infelizmente a dissertação de Pastukhov excede em muito o nível da minha capacidade de compreender a matemática.

 
paralocus >> :

Infelizmente a dissertação de Pastukhov excede em muito o nível da minha capacidade de compreender a matemática.

Bem, então, esqueça. Várias coisas estão matematicamente comprovadas ali, e é interessante para os matemáticos. E as conclusões são bastante simples, e na maioria das vezes descritas em palavras. Essencialmente, a Volatilidade H é uma estatística não paramétrica. A principal conclusão é que se a volatilidade H for igual a 2H, então a arbitragem sobre tal série é impossível (comprovada matematicamente). Caso contrário, a arbitragem é possível. Há duas estratégias, dependendo se a volatilidade H é maior ou menor do que 2H. Estes são os princípios básicos. Além de algumas observações sobre os clientes, etc.