Produtos de software da Piliggrimm - página 4

 

para o Piligrim

Obrigado!
Você o explicou muito bem.
O suficiente para implementar seus métodos de forma programática.

 

Como exemplo de utilização de indicadores para criar sistemas comerciais, vou dar, em uma versão simplificada, uma estratégia que implementei no sistema comercial da rede neural descrita na seção " Exemplo de construção de um sistema comercial ". Após o fim de semana, começarei a depurar este sistema comercial e, depois de terminado, o colocarei neste tópico como um exemplo de utilização de indicadores. No sistema comercial, escrito por , utilizei vários indicadores. Como exemplo, vou dar a estratégia baseada apenas em dois deles, "Kristi_GrafModelWav", "Indicator Trend". Mas antes direi algumas palavras sobre os princípios destes indicadores.

"Kristi_GrafModelWav" - construído com base em polinômios da seguinte forma:

GR1[i][0] = 0,6*(0,5*(-0,00000808108 +1,64312*(SD[i+5][4]-SD[i][4]) -0,387988*(SD[i][1]-SD[i][2]) +0,598535*(SD[i][2]-SD[i][3])

-0.468099*(SD[i+1][3]-SD[i][2])-0.461584*(SD[i+1][4]-SD[i][1])+SD[i][3])+0.5*((SD[i+2][1]-SD[i][3])-(SD[i+3][1]

-SD[i][4])+0.00000000861016*(SD[i][2]-SD[i][3])+(SD[i+19][3]-SD[i][4])+0.3*SD[i][3]+0.7*SD[i][4]))+0.4*((SD[i][1]

-SD[i+10][3])-(SD[i][1]-SD[i+10][4])+0.00000000861016*(SD[i][2]-SD[i+10][3])+(SD[i][3]-SD[i+10][4])+SD[i][4]);.

Ossinais SD são obtidos usando o princípio de "janela deslizante" que escaneia o histórico de cotação até uma determinada profundidade e muda sua largura . O treinamento de polinômios foi realizado em sinais obtidos com base no histórico de citações doEURUSD M1. Os sinais SD foram passados através de um grupo de transformadores de ondas sintonizados de acordo com diferentes parâmetros. O treinamento foi feito usando algoritmos de regressão linear e redes neurais formalizadas e reduzidas à forma de polinômios. O objetivo do treinamento de polinômios era aumentar a informatividade de um sinal de entrada através da inclusão de argumentos atrasados do histórico passado e da filtragem de fatores menores e interferentes. Uma outra finalidade do treinamento de polinômios, é criar um grupo de sinais sintetizados com base em citações, carregando as características infantis do sinal principal, e sobrepondo o espectro de suas possíveis mudanças. Isto é feito para garantir que as redes neurais que entrarão neste grupo de sinais tenham a oportunidade de "pegar" diferentes harmônicas incluídas no sinal de entrada e passar por um treinamento qualitativo. Embora o treinamento tenha sido realizado no EURUSD M1, o indicador funciona em qualquer instrumento, em qualquer período, em qualquer mercado. O indicador forma um grupo de 40 sinais sintetizados.

"Indicator Trend utiliza na base de seu trabalho o algoritmo de amostragem limiar, desenvolvido por mim, com a etapa sendo reconstruída na proporção da dinâmica das mudanças nas citações. Como resultado de tal amostragem são obtidas amostras correspondentes apenas a pontos extremos do sinal, o sinal é comprimido, a filtragem profunda é realizada devido à eliminação de ruídos e flutuações insignificantes. A reconstrução do sinal em cada barra é realizada por interpolação entre dois pontos de amostragem adjacentes. Nas imagens acima, a linha vermelha, você pode ver o sinal reconstruído em cada barra, e os pontos de quebra correspondem aos pontos de amostragem. Os indicadores "Poder Indicador" e "Indicador Canal" são construídos de acordo com o mesmo princípio . Essa compressão do sinal permite obter um estudo profundo do histórico de cotações com um número relativamente pequeno de pontos de amostragem, o que reduz significativamente o tempo e aumenta a precisão do treinamento da rede neural quando amostras discretas são alimentadas para a entrada.

A essência da estratégia de construir um sistema comercial baseado em dois indicadores é a seguinte. Oindicador "Kristi_GrafModelWav" é usado como uma fonte de sinais de entrada, e o indicador "Indicator Trend" é usado como um sinal de fonte para o treinamento da rede neural. O objetivo do treinamento é fazer uma previsão do futuro ponto de amostragem, que determinará a direção do movimento de preços e seu nível aproximado. Para sincronizar estes indicadores, vamos definir o mesmo comprimento da amostra de entrada LengthSample . Nas configurações de indicadores, vamos definir a permissão para salvar os dados em disco com direção de indexação desde o início da matriz. Nas configurações do indicador "Indicator Trend" vamos definir o modo de salvar amostras discretas, depois os níveis de preços em pontos discretos (pontos de quebra na figura) e o número ordinal da amostra LengthSample serão gravados no disco , vamos definir o modo estático de operação do indicador . Com isso, ao chegar de cada nova barra, toda a história será recalculada e uma matriz será formada cobrindo todo o comprimento da amostra LengthSample. Na matriz, criada pelo indicador "Indicator Trend", recebemos contagens que serão usadas como dados para os quais a rede neural será treinada. Agora devemos formar uma matriz que será alimentada com a entrada da rede neural. Oindicador "Kristi_GrafModelWav" escreve no disco uma matriz composta de 40 colunas que correspondem a seus sinais de saída, e com o comprimento LengthSample. Precisamos selecionar desta matriz as linhas correspondentes aos pontos de amostragem do indicador "Tendência do Indicador". Isto pode ser feito facilmente utilizando a matriz obtida do indicador "Indicator Trend", sua segunda coluna contém os números ordinais das amostras dos pontos de amostragem. Como o comprimento da amostra de entrada para ambos os indicadores é o mesmo, estes números corresponderão à matriz do indicador "Kristi_GrafModelWav", selecionando as linhas apropriadas do indicador "Kristi_GrafModelWav" realizaremos a amostragem dos dados do indicador "Kristi_GrafModelWav" em sincronia com o indicador "Indicator Trend". Assim, obtivemos a matriz de entrada para o treinamento da rede neural. Agora vamos treinar a rede neural. Agora precisamos usar a rede neural treinada para realizar cálculos e fazer previsões em tempo real. Para fazer isto , definir LengthSample = 1 nas configurações do indicador "Kristi_GrafModelWav". Na chegada de cada nova barra será gravado um array em disco que consiste em uma única linha contendo todos os 40 valores do sinal. Devemos calcular a rede neural nos momentos de formação de um novo ponto de discretização do indicador "Tendência do Indicador", de acordo com o algoritmo de aprendizagem. Para determinar esses momentos, precisamos utilizar apenas duas variáveis globais, que são formadas pelo indicador "Tendência do Indicador". Assim que os valores destas duas variáveis globais mudam relativamente um ao outro, isso significa que um novo ponto de amostragem foi formado. Neste ponto, devemos ler a matriz de dados do indicador "Kristi_GrafModelWav" do disco , alimentá-lo com a entrada da rede neural treinada e efetuar o cálculo. Receberemos uma previsão do próximo ponto de amostragem no momento em que o último foi formado. Essa é uma estratégia de sistema comercial baseada nos indicadores que sugeri em sua forma mais simples. Você pode construir estratégias mais complexas usando todos os indicadores, isso aumentará a precisão e a confiabilidade das previsões.

 

Para uma melhor idéia da funcionalidade dos indicadores, aqui está a instrução para usar o indicador "Indicator Trend" como um exemplo. Se houver algum comentário, sugestão para correção ou adição, terei prazer em ouvi-los. Se você estiver interessado, posso também fornecer instruções para o uso de outros indicadores.

=======================================================================================================

Indicador de tendência.

Este indicador "Tendência do Indicador " destina-se à criação de um modelo de tendência para o instrumento ao qual o indicador está anexado. O "Indicator Trend " utiliza na base de seu trabalho meu algoritmo desenvolvido de amostragem de limiar com passo reconstruível em proporção à dinâmica de mudança de cotações. Como resultado de tal amostragem são obtidas amostras correspondentes apenas a pontos extremos do sinal, o sinal é comprimido, e a filtragem profunda é realizada pela remoção de ruído e flutuações insignificantes. O sinal em cada barra é reconstruído por interpolação entre dois pontos de amostragem adjacentes.

O indicador funciona em qualquer instrumento, em qualquer período, em qualquer mercado. O indicador pode ser usado para projetar sistemas comerciais mecânicos, e para comércio manual.

O indicador processa os dados sobre a chegada da nova barra. O indicador funciona em dois modos, estático e dinâmico. No modo estático, o indicador constrói um modelo de tendência para todo o comprimento da amostra histórica especificada e recalcula todo o seu comprimento na chegada de uma nova barra, criando modelos de um comprimento especificado, que podem ser exibidos no gráfico e salvos em disco. No modo dinâmico, o indicador calcula o valor somente para a barra recém recebida, acumulando gradualmente os valores calculados à medida que novos dados chegam. O comprimento do histórico processado é determinado pela variável"LengthSample" na guia "Properties - Input parameters", o comprimento do histórico pode ser qualquer um.

A gravação dos valores de sinal, calculados pelo indicador em disco, com as permissões correspondentes nas configurações, é possível em duas variantes:

1). Economia dos valores de sinal em cada barra;

2). Salvando apenas valores pontos de amostragem (quebra de tendência).

Os valores dos sinais nos dois últimos pontos de amostragem também são salvos nas variáveis globais, os nomes das variáveis globais podem ser alterados, permite definir qualquer número de indicadores com diferentes níveis limiares para um instrumento e através das variáveis globais organizar a comunicação com o Expert Advisor ou outros indicadores. Quando o indicador funciona, é possível otimizar seus parâmetros reconstruindo a relação de limiar. A escolha de um valor limite específico é determinada por em qual instrumento e cronograma o indicador está instalado, assim como qual estratégia comercial você quer implementar com base neste indicador.

O cálculo é visualizado no gráfico do instrumento na janela onde o indicador está instalado.

Os parâmetros de operação são definidos na guia "Propriedades - Parâmetros de Entrada" ao instalar o indicador em um gráfico na janela do MetaTrader 4.


O indicador "Tendência do Indicador" tem os seguintes parâmetros de entrada:

1). LengthSample - comprimento do histórico processado;

2). Limiar - coeficiente de limiar;

3). DynamicMode - modo de indicador dinâmico/estático.

4). SaveFileData - bandeira para permitir a gravação de dados calculados pelo indicador em disco;

5). FileNameData - nome do arquivo para salvar dados;

6). SaveFilePointsFracture - bandeira para permitir a gravação dos pontos de amostra calculados pelo indicador em disco;

7). FileNamePointsFracture - nome do arquivo para salvar os pontos de amostra;

8). Subscripting_MT4 - direção de indexação de matrizes a serem gravadas em disco.

9). NameGlobalVariable0 - nome da variável global economizando o valor do último ponto de amostra;

10). NameGlobalVariable1 - nome da variável global economizando o valor do penúltimo ponto de amostragem.


1). A duração do histórico processado é determinada pela variável"LengthSample". O tamanho máximo não é limitado. Ao mesmo tempo, é necessário que na janela e na história dos símbolos, com os quais o indicador funciona, não haja um número menor de barras, do que"LengthSample + 1".

2). Threshold Factor, estabelece o limiar de amostragem em "pontos".

3). DynamicMode é uma bandeira que determina a escolha do modo de operação dinâmico ou estático do indicador, se DynamicMode = 1 - modo dinâmico, se DynamicMode = 0 - modo estático. O modo dinâmico permite acelerar o trabalho do indicador, pois apenas novas barras serão processadas em vez de recalcular todo o histórico. Ao mesmo tempo, os valores calculados serão acumulados. Somente os dados acumulados como resultado do cálculo serão salvos no arquivo e exibidos no gráfico, assim como se a gravação em disco estiver habilitada. No modo estático, quando uma nova barra chega, toda a história será recalculada pela profundidade da"LengthSample". O histórico completo do processo será salvo no arquivo e exibido na tabela, e quando a gravação em disco for ativada.

4). A bandeira SaveFileData proíbe escrever dados calculados pelo indicador em disco quando o valor for 0, se não for necessário processamento adicional de dados. Se for necessário processar e salvar dados em disco, SaveFileData deve ser ajustado para 1.

5). FileNameData - nome do arquivo no qual os dados serão salvos em disco. Você pode usar qualquer nome, mas a extensão do arquivo deve permanecer inalterada.csv, caso contrário, ocorrerá um erro ao escrever o arquivo. O tamanho máximo da matriz salva é determinado por "LengthSample", mas o número de linhas nela contidas pode ser menor que"LengthSample", pelo número de barras que separam o último ponto de amostragem da barra zero.

6). A bandeira SaveFilePointsFracture proíbe escrever preços em pontos de amostragem calculados pelo indicador em disco quando o valor é 0, se não for necessário um processamento de dados adicional. Se o subsequente processamento de dados e gravação em disco for necessário, o valor SaveFilePointsFracture deve ser ajustado para 1.

7). FileNamePointsFracture - o nome do arquivo onde serão salvos os valores dos preços nos pontos de amostragem e o número de série da barra desde o início do histórico processado"LengthSample", correspondente a cada ponto de amostragem. O número de registros neste arquivo será determinado pelo número de pontos de amostragem obtidos no comprimento do histórico igual a"LengthSample" na razão limite estabelecida. No modo dinâmico - o número de pontos de amostragem formados desde o início do indicador. O número de série da barra, correspondente a cada ponto de amostragem, também será calculado a partir do momento do início do indicador.

8). A variável Subscripting_MT4 - define a direção da indexação da matriz sendo gravada no disco, se a definirmos para 1, a indexação corresponderá à utilizada no MetaTrader 4, da posição principal para o zero, se a definirmos para 0, a indexação padrão será de zero para a posição principal. Refere-se tanto a FileNameData como FileNamePointsFracture.

9). NameGlobalVariable0 - Nome da variável global que armazena o valor do preço no último ponto de amostragem.

10). NameGlobalVariable1 - o nome da variável global economizando o valor do preço no penúltimo ponto de amostragem.


Quando o indicador funcionar, o canto superior esquerdo do gráfico exibirá as informações sobre o comprimento do histórico processado "LengthSample", o valor do Limiar e o número de ciclos trabalhados pelo indicador "AmplitudeExecução".


Desembalar todo o conteúdo do indicador de tendência do arquivo. rar e instalar o indicador Tendência do Indicador.ex4 na pasta Especialistas/indicadores, reiniciar o terminal MetaTrader 4, depois disso indicador "Tendência do Indicador" aparece na janela de indicadores personalizados \Navigator/Indicator/indicadores de usuário, ele pode ser instalado no gráfico na janela do MetaTrader 4.

 

Se não houver dúvidas sobre as instruções acima para o funcionamento do indicador "Tendência do Indicador", eu não darei instruções para outros indicadores, mas apenas trechos referentes ao princípio de seu trabalho. Para os indicadores Kristi_GrafModelWav,"Indicator Trend", eu o fiz no exemplo de estratégia comercial, eu darei para o "Indicador Power". e "Indicador Canal".

=====================================================================================================

Indicador Indicador de "potência".

A idéia, com base na qual foi desenvolvido o indicador "Indicador Power", é traçar dinamicamente a luta de alta e baixa tendência, que ocorre no mercado no momento. Se a tendência de alta é dominante, quando novas barras chegam, o indicador sobe na barra zero proporcionalmente à força da tendência, quando a tendência de baixa é dominante - respectivamente para baixo. Se a tendência oscila ligeiramente para um ou outro lado, os valores do indicador mostram uma linha reta, que se move lentamente ao longo de seu comprimento a partir do último ponto de quebra em proporção à força da tendência predominante, e com um aumento significativo de uma das tendências ela salta para o lado correspondente, formando um novo ponto de quebra. " Indicador Power " - utiliza na base de seu funcionamento o algoritmo de amostragem limiar, desenvolvido por mim, com a etapa sendo reconstruída na proporção da dinâmica das mudanças nas cotações. Como resultado desta amostragem obtemos leituras que correspondem apenas aos extremos do sinal. O nível do sinal, mostrado pelo indicador, é determinado pela força da tendência dominante no momento, e muda lentamente em proporção à força da tendência, até que o próximo ponto de amostragem seja formado e conserte este nível.

Indicador Indicador "Canal".

Há duas tendências no mercado, a tendência de alta é de alta e a de baixa é de baixa. Estas tendências têm um caráter diferente, mas mesmo assim dependem uma da outra e influenciam-se mutuamente. Este indicador se baseia na idéia de separar estas duas tendências do fluxo geral de dados de citações, formalizá-las em uma série temporal, refletindo seu desenvolvimento e influência mútua, assim como o resultado de sua luta. Indicador "Indicador Canal" cria um canal de tendências e reflete a dinâmica de seu comportamento, extrapolando a direção das tendências do mercado. A linha superior mostra o caráter de uma tendência de alta sob a influência de uma tendência de baixa, a linha inferior mostra o caráter de uma tendência de baixa sob a influência de uma tendência de alta, a linha média é o resultado de sua luta, e na verdade é um dos harmônicos de tendência correspondente ao nível especificado de amostragem de fluxo de cotações. O nível diferente de amostragem permite separar harmônicas com diferentes características de amplitude-frequência. "Indicator Channel " - utiliza na base de seu trabalho meu algoritmo de amostragem de limiar desenvolvido com uma etapa reconstruída em proporção à dinâmica das mudanças nas cotações. Como resultado de tal amostragem obtemos as amostras correspondentes aos pontos extremos do sinal para cada tendência separadamente. O nível de sinal, para cada uma das três linhas do indicador, é determinado pela dinâmica da tendência correspondente e muda lentamente na proporção da força da tendência, e da natureza da prevalência de uma sobre a outra, até que o próximo ponto de discretização seja formado e conserte este nível.

Os componentes informativos do indicador são: estreitamento e alargamento do canal, ângulos de divergência de raios superiores e inferiores, pontos de inflexão e os momentos de inversão da linha central do canal. Quando novas barras são recebidas, o indicador reflete dinamicamente a mudança de tendência do mercado, reconstruindo os raios desde o último ponto de parada até a primeira barra.

 

Eu acho que o preço que você fixa é muito alto, porque é quase comparável aos produtos de software bem conhecidos, que podem ser seus desenvolvimentos são ótimos, mas nós só sabemos disso por suas palavras.Mas se os indicadores oferecidos para compra forem escritos com o mesmo espírito, a construção de um consultor especializado com base neles, que na minha opinião requer um grande número de experimentos, provavelmente requer pelo menos um computador "Elbrus" :))).Se eu tivesse tentado usar um Expert Advisor elementar baseado nisso, eu teria que desistir porque eu não era muito fraco no PC e mal podia bufar e soprar em toda a história - você sabe o que quero dizer.

 
lovova:

Eu acho que o preço que você fixa é muito alto, porque é quase comparável aos produtos de software bem conhecidos, que podem ser seus desenvolvimentos são ótimos, mas nós só sabemos disso por suas palavras.Mas se os indicadores oferecidos para compra forem escritos com o mesmo espírito, a construção de um consultor especializado com base neles, que na minha opinião requer um grande número de experimentos, provavelmente requer pelo menos um computador "Elbrus" :))).Tentei usar o simples Expert Advisor baseado nele, mas desisti porque meu computador não muito fraco dificilmente conseguia ofegar, e para testar toda a história que você conhece, e a otimização.

Obrigado pelo calhau. Desenvolvi um sistema de comércio automatizado e sou responsável por seu funcionamento eficiente. Aprecio o esforço que fiz e acho que os preços que defini são apropriados para o conteúdo. Como deve ficar claro pelo que escrevi sobre indicadores, eles não são de tipo primitivo, e embora o código seja otimizado e não muito grande, o algoritmo de seu trabalho é bastante complicado, passei vários anos para atualizá-los. Se os compararmos com os Expert Advisors de bom nível, por exemplo, os preços são comparáveis, e é muito mais fácil escrever um Expert Advisor onde a maioria dos blocos padrão está ocupada, do que criar um algoritmo eficaz de análise de mercado. Ainda não tenho um "nome", mas a julgar por este artigo e vários tópicos nos quais participei, não sou um estranho a esta indústria, e tenho alguma experiência. Não estou dizendo que estes indicadores devem ser comprados juntos, estou dizendo que eles foram desenvolvidos como ferramentas complementares para análise multifacetada de diferentes algoritmos de mercado e são mais eficazes quando usados juntos. Mas eles podem trabalhar separadamente ou em pares, como mostrado no exemplo. Quanto às garantias, esta é uma questão à parte, posso garantir que seu trabalho como escrevi, mas se você terá lucro usando-as depende da estratégia que você construirá sobre elas, e se você acha que precisa discutir a estratégia comigo, então eu posso recomendar algo, tendo uma idéia melhor das possibilidades dos Indicadores. Se houver problemas e dificuldades para dominar seu trabalho, é claro que darei suporte técnico.

O que estou propondo agora não pode ser comparado ao indicador Krisity, comecei a escrevê-lo para dominar a MQL, é o primeiro código que escrevi em uma linguagem que é nova para mim. Eu ainda não conhecia as possibilidades do idioma e das funções, e não tinha definido a tarefa de escrevê-lo de forma ideal, eu estava apenas aprendendo. Naturalmente, agora tudo parecia e funcionava de maneira diferente.

 

Recebo e-mails me pedindo que me envie versões demonstrativas dos indicadores para ver como funcionam. Infelizmente, não tenho nenhuma versão demo. Para compensar parcialmente, para dar uma idéia de como 3 indicadores - "Indicator Trend", "Indicator Power" e "Indicator Channel" funcionam em dinâmica, decidi demonstrar seu trabalho na forma de slides tirados do terminal de demonstração durante vários dias. Para não sobrecarregar o tópico com imagens, mostrarei apenas os slides que refletem quaisquer mudanças na situação do mercado e mudança dos valores indicadores. A diferença de tempo entre o terminal e o fórum é de 2 horas. Primeira foto:

 

Segundo slide, aumentei ligeiramente o limite do indicador "Tendência do Indicador", é melhor, não vou ajustar mais nada.

 
Razão: