среда, 30 мая 2018 г.

Indicadores personalizados da jforex


Crie um indicador.


O usuário pode abrir um indicador existente ou criar um novo. Isso pode ser feito clicando com o botão esquerdo na pasta Indicadores personalizados no painel Área de trabalho:


Uma vez que um "indicador novo" é selecionado, o sistema cria um novo arquivo indicador em & quot;


\ AppData \ Local \ JForex \ Indicators & quot; diretório. O próprio Indicador é um arquivo java, que pode ser editado em qualquer editor compatível com Java. O indicador padrão é um indicador de exemplo, o usuário pode compilar e testar o exemplo de indicador ou substituir seu código por seu próprio código-fonte e depois compilá-lo e adicioná-lo a algum gráfico. Os resultados da compilação podem ser verificados na guia Mensagens. Se a compilação for bem-sucedida, um "Compilation successful (..)" & quot; a mensagem é exibida, caso contrário, o usuário recebe mensagens de erro detalhadas.


O usuário pode adicionar o indicador a um gráfico selecionando Indicadores - & gt; Personalizado - & gt; [Nome do indicador].


Após os cálculos necessários, o indicador é plotado no gráfico.


Para obter mais informações sobre os exemplos de desenvolvimento e uso de indicadores, consulte Indicator API.


Use o Indicador Personalizado em Estratégias.


Os indicadores personalizados podem ser usados ​​de uma estratégia como qualquer outro indicador da plataforma JForex padrão. Para usar esses indicadores personalizados em cálculos, eles devem ser registrados primeiro. Há duas maneiras como se pode registrar um indicador personalizado dentro de uma estratégia:


registre o indicador a partir de um arquivo. jfx compilado; registre o indicador de uma classe que está localizada dentro do arquivo java da estratégia.


Para o primeiro apporach, você também pode optar por empacotar os indicadores no arquivo de estratégia compilado, veja abaixo o primeiro exemplo para isso. Como um exemplo de aplicação de ambas as abordagens, veja o método OnStart do indicador personalizado simples.


Os exemplos a seguir demonstram maneiras como se pode registrar indicadores personalizados, lidar com suas saídas e traçá-las no gráfico.


Indicador personalizado do pacote no arquivo jfx da estratégia.


Para empacotar os indicadores dentro da estratégia compilada, é necessário usar a anotação CustomIndicators. Esta abordagem permite ao usuário executar a estratégia em outras estações de trabalho sem ter que copiar ao longo dos arquivos jfx do indicador.


Nota: CustomIndicators disponível com JForex-API 2.7.9.5. IIndicators. getIndicatorByPath disponível com JForex-API 2.9.1.


Indicador personalizado simples.


A seguinte estratégia registra dois indicadores idênticos, os calcula e imprime o resultado. Consulte a seção Indicadores para obter mais detalhes sobre o método IIndicators. calculateIndicator.


Gerencie várias saídas e tramas no gráfico.


Considere uma estratégia que funcione com um indicador personalizado, multi-saída e mostra como fazer:


analisando e registrando saídas do indicador personalizado, planejando o indicador personalizado no gráfico.


Existem duas variantes de cálculo usadas:


por turno (valor único), por intervalo de velas (matriz de valores).


Antes de iniciar a estratégia, compile o indicador AwesomeOscillator e, em diálogo de parâmetros, selecione a localização do arquivo compilado. jfx.


Comércio com TradersDynamicIndex.


A estratégia é comercializada de acordo com o indicador personalizado TradersDynamicIndex. Faz:


uma ordem BUY se verde (& quot; RSI Price Line & quot;) cruza acima do vermelho (& quot; Trade Signal Line & quot;); uma ordem VENDER - se verde cruza abaixo do vermelho.


No início, a estratégia traça o indicador no gráfico. A estratégia funciona apenas em determinadas horas de mercado. A estratégia aplica-se para tirar proveito e parar os preços de perda e na nova criação de ordem, fecha o anterior.


Indicador simples.


Para criar um indicador personalizado no JForex, clique com o botão direito do mouse na opção do menu Estratégia na seção Área de trabalho e selecione Novo indicador:


O JForex gerará o seguinte código de indicador padrão:


Método onStart é usado para inicializar:


indicatorInfo: fornece a descrição básica do indicador, e. nome, título, grupo, posição (sobre o gráfico ou em uma sub-janela) número de parâmetros opcionais, número de saídas, etc. inputParameterInfos: descreve a entrada do indicador. optInputParameterInfos: descreve a entrada opcional. outputParameterInfos: descreve a saída do indicador.


O cálculo do método é usado para cálculos de indicadores. Este indicador simples resume o número de valores definidos no parâmetro timePeriod:


Primeiro precisamos ajustar o StartIndex da matriz de entrada, pois precisamos de um número de valores (definido no lookBack do indicador) para calcular o primeiro valor de saída. Variáveis ​​'e j são usadas para iterar sobre a matriz de entrada e a matriz de saída, respectivamente. O método calculado deve retornar o objeto IndicatorResult que especifica o índice do primeiro elemento na matriz de entrada que possui o valor calculado correspondente e uma quantidade de valores calculados.


Catálogo de indicadores.


O artigo do catálogo de indicadores visa resumir e descrever o uso de indicadores usados ​​na API JForex. Para obter uma visão geral do uso do indicador de uma estratégia, consulte a visão geral dos indicadores.


Assumimos os seguintes valores para as chamadas de indicadores nos exemplos abaixo:


O indicador de jacaré ajuda a determinar a presença e a ausência de uma tendência, bem como sua direção.


Você pode chamar o indicador de jacaré usando um método especial alligator () ou o método universal calculateIndicator () declarado na interface IIndicators: suponha que possamos ter um instrumento e uma variável de período já definida. Precisamos calcular os valores de Alligator para um Período de Jaw: 13, um Período de Tempo de Dentes: 8 e um Período de Tempo de Lábios: 5.


Calcule os valores dos indicadores usando uma mudança. Um resultado é uma matriz dupla que contém 3 valores duplos (maxila de jacaré, dentes de jacaré e lábios de jacaré) para a última barra (turno = 1):


Calcule os valores dos indicadores para um intervalo de barras entre uma vela antes e uma vela após os parâmetros. O resultado do retorno é uma matriz de matriz com valores de Aligator para cada vela da vela especificada antes de um parâmetro:


Calcule os valores dos indicadores entre o intervalo de barras especificado. Neste valor de exemplo, apenas valores de barras anteriores serão calculados:


Nestes métodos, os parâmetros 5, 6 e 7 significam:


Período de tempo da mandíbula: 13.


Período de Dentes Período: 8.


Lips Período de tempo: 5.


Calcule valores de indicadores usando o método universal e especificando uma mudança. Resultado do retorno: uma matriz de objetos que contém valores duplos:


Todos esses 4 métodos retornam o mesmo resultado de jacaré para a última vela.


Consulte o uso do Indicador para obter mais detalhes sobre os parâmetros dos métodos dos indicadores.


Preço médio.


O indicador do preço médio mostra um preço médio do bar.


Abaixo está um exemplo de como obter o valor do preço médio da barra anterior usando 3 métodos especiais de avgPrice e um método universal CalculIndicator:


O parâmetro shift define a mudança de vela, se for ajustado para 1, então obteremos o valor do indicador para a vela anterior. O resultado retornado é o valor duplo médio do bar anterior.


velas Antes, define a vela a partir da qual o valor do indicador será calculado.


prevBar. getTime () define o tempo de início da vela, a partir do qual os parâmetros CandleBefore e candleAfter serão deslocados.


CandleAfter define a contagem de velas após a barra especificada para qual valor do indicador será calculado.


Exemplo 1. candlesBefore = 2; candleAfter = 1; O tempo é definido no parâmetro nº 6 para a última barra fechada. O valor médio será calculado para as velas atuais, anteriores e próximas:


Exemplo2. candlesBefore = 2; candleAfter = 1; O tempo é definido no parâmetro # 6 para a barra do próximo ao último. O valor médio será calculado para as velas anterior, segunda antes da corrente e a terceira antes da atual:


O exemplo acima calcula os valores dos indicadores usando o método universal e especificando a mudança. O resultado retornado: matriz de objetos que contém um valor duplo. Consulte o uso do Indicador para obter mais detalhes sobre os parâmetros dos métodos dos indicadores.


Pré-visualização do indicador no gráfico:


Inicializando as variáveis ​​necessárias:


Vamos dar exemplos de como obter uma barra anterior de incríveis valores usando 3 métodos incríveis especiais e um método de cálculo de cálculo universal.


Para obter incríveis valores de indicadores para a vela anterior, especificando shift iguais a 1. O resultado do retorno é uma matriz de dois contendo 3 valores.


Para obter incríveis valores de indicadores para a vela anterior, especificando o tempo de início da barra anterior como intervalo de tempo. Os resultados de retorno são matrizes de matrizes duplas contendo 3 valores.


Para obter valores incríveis para 2 barras anteriores de e para o tempo de barra deve ser alterado e depois passou para o método incrível:


Para obter incríveis valores de indicadores para a vela anterior, especificando o tempo de início da barra, prevBar. getTime () e a contagem de velas antes desta barra de velas antes e depois do candelabro. Depois:


E o último exemplo mostra como obter os melhores valores de indicadores de barra incríveis usando o método universal:


Consulte a página de uso do Indicador para obter mais detalhes sobre os parâmetros dos métodos dos indicadores.


Mostra discrepância entre preços especificados.


Primeiro precisamos inicializar os campos necessários (período de tempo, dois preços e dois preços aplicados):


Para obter o valor do indicador beta para a mudança de especificação da vela anterior:


O exemplo acima retorna o valor do indicador beta duplo.


Para obter o valor do indicador beta para a vela anterior, especificando o tempo de início da barra anterior como intervalo de tempo:


O exemplo acima retorna matriz de dois conteúdos contendo 1 valor.


Para obter o valor do indicador beta para a vela anterior, especificando o tempo de início da barra anteriorBar. getTime () e a contagem de velas antes desta barra de velas antes e depois do candelabro. Depois:


O exemplo acima retorna matriz de dois conteúdos contendo 1 valor.


E o último exemplo mostra como obter os valores da última barra de indicadores beta usando o método universal:


Consulte a página de uso do Indicador para obter mais detalhes sobre os parâmetros dos métodos dos indicadores.


Bandas de Bollinger.


Este indicador mostra se o mercado está em silêncio ou se o mercado é alto. Quando o mercado está quieto, as faixas espremem; e quando o mercado é alto, as bandas se expandem.


Vamos dar exemplos de como obter uma barra anterior de incríveis valores usando 3 métodos especiais de banda e um método de cálculo de cálculo universal. Primeiro, precisamos inicializar os campos necessários:


Para obter valores de indicador de bandas de bollinger para a vela anterior especificando shift igual a 1. O resultado de retorno é uma matriz de dois contendo 3 valores.


Para obter valores de indicador de bandas de bollinger para a vela anterior, especificando o tempo de início da barra anterior como intervalo de tempo. O resultado do retorno é matriz de matrizes duplas contendo 3 valores:


Para obter valores de indicador de bandas de bollinger para a vela anterior, especificando o tempo de início da barra, prevBar. getTime () e a contagem de velas antes desta barra de velas antes e depois da vela. Os resultados de retorno são matrizes de matrizes duplas contendo 3 valores.


E o último exemplo mostra como obter os valores dos indicadores de banda de bollinger da última barra usando o método universal:


Toda a tabela de resultados dos métodos de banda de bollinger acima contém a seguinte sequência de valores:


Consulte a página de uso do Indicador para obter mais detalhes sobre os parâmetros dos métodos dos indicadores.


Butterworth.


Primeiro, precisamos inicializar o período de tempo:


Para obter o valor do filtro butterworth para a mudança de especificação da vela anterior:


O exemplo acima retorna valor duplo.


Para obter o valor do filtro butterworth para a vela anterior usando o intervalo de tempo:


O exemplo acima retorna matriz dupla contendo 1 valor.


Para obter o valor do filtro butterworth para a vela anterior, especificando o tempo de início da barra, prevBar. getTime () e a contagem de velas antes desta barra de velas antes e depois do candelabro. Depois:


O exemplo acima retorna matriz dupla contendo 1 valor.


O último exemplo mostra como obter o último valor do filtro butterworth da barra usando o método universal.


O exemplo acima retorna matriz de objeto contendo 1 valor duplo.


Consulte a página de uso do Indicador para obter mais detalhes sobre os parâmetros dos métodos dos indicadores.


CHANNEL_UP.


O indicador Channel Up é o indicador de padrão, e ele pode ser chamado somente usando um método CalculIndicator na API. Vamos criar um exemplo de uso do indicador de canal acima.


Primeiro, precisamos inicializar as variáveis ​​necessárias:


O método abaixo retorna as saídas dos indicadores abstratos para as 2,000 barras anteriores (passamos a hora de início de 2.000 bar e a hora de início da última barra para o método CalculIndicator). Utilizamos uma grande gama, porque o indicador de canais aparece raramente no gráfico. Este indicador fornece 3 saídas:


preços da assíntota superior, preços da assíntota inferior e preços da linha corporal indicadora do padrão.


Transmita cada saída do indicador abstrato para a matriz do objeto:


Em seguida, é necessário converter o objeto para a instância PatternIndicatorOutput que contém objetos padrão:


O último passo é iterar através de objetos padrão e exibi-los. Objetos de padrão são armazenados na coleção IndexValue:


Consulte a página de uso do Indicador para obter mais detalhes sobre os parâmetros dos métodos dos indicadores.


Média móvel exponencial.


A média movente exponencial (EMA) é um tipo de indicador de média móvel. O indicador suaviza os dados de preços para formar uma tendência durante um determinado período de tempo. Em comparação com a média móvel simples, a EMA dá prioridade aos dados mais recentes, portanto reage as mudanças de preços mais rápidas. EmaAtomicTests. java.


Hilbert Transform - Instantânea Trendline.


Para obter os valores do indicador ht_trendline para a mudança de especificação da vela anterior:


O exemplo acima retorna valor duplo.


Para obter o valor do indicador ht_trendline para a vela anterior usando o intervalo de tempo:


O exemplo acima retorna uma matriz de arrays duplos contendo 1 valor.


Para obter o valor do indicador ht_trendline para a vela anterior, especificando o tempo de início da barra, prevBar. getTime () e a contagem de velas antes desta barra de velas antes e depois da vela. Depois:


O exemplo acima retorna uma matriz de arrays duplos contendo 1 valor.


O último exemplo mostra como obter os valores do último indicador da barra ht_trendline usando o método universal:


O exemplo acima retorna matriz de objeto contendo 1 valor duplo.


Consulte a página de uso do Indicador para obter mais detalhes sobre os parâmetros dos métodos dos indicadores.


Índice de Facilitação de Mercado.


O indicador MINMAX calcula os preços mais baixos e os mais altos para o período especificado, respectivamente.


3 métodos são fornecidos para o indicador MINMAX pela interface IIndicators. O exemplo a seguir demonstra o uso desses métodos.


Definir instrumento, período e mudança:


Calcule os valores dos indicadores para a barra anterior:


Calcule os valores dos indicadores para o intervalo especificado:


Calcule os valores dos indicadores para o intervalo especificado usando um filtro:


Além disso, você pode usar métodos universais para calcular os valores do indicador MINMAX:


Consulte a página de uso do Indicador para obter mais detalhes sobre os parâmetros dos métodos dos indicadores.


Desvio padrão.


Indicador "stddev" calcula o desvio padrão de preços especificados.


Este indicador possui dois parâmetros de entrada específicos:


nbDev - cada saída de stddev é multiplicada por nbDev, isso permite esticar ou espremer a saída do indicador verticalmente. TimePeriod - o número de velas usadas para calcular stddev.


Para inicializar os parâmetros:


Para obter os valores do indicador stddev para uma mudança de especificação de vela:


O exemplo acima retorna o desvio padrão para uma vela de solicitação (especificada por turno), calculada a partir de preços de fechamento de velas anteriores.


Para obter os valores do indicador stddev para a vela anterior usando o intervalo de tempo:


Para obter valores de stddev para 2 barras anteriores, de e para o tempo de barra deve ser alterado e passado para o método stddev:


Para obter os valores do indicador stddev para a vela anterior, especificando o tempo de início da barra, askBar. getTime () e a contagem de velas antes desta barra de velas antes e depois das velas. Depois:


O último exemplo mostra como obter os valores do indicador stddev da última barra usando o método universal:


Consulte a página de uso do Indicador para obter mais detalhes sobre os parâmetros dos métodos dos indicadores.


Estocástico.


O indicador estocástico mostra overbought de instrumentos e sobrevenda no mercado. Quando duas linhas estocásticas estão acima de 80, isso significa que o instrumento está sobrecompra e quando duas linhas estocásticas são inferiores a 20, significa que o instrumento está sobrevendido.


Primeiro, precisamos inicializar os campos necessários (períodos e tipos médios móveis)


Para obter valores de indicadores estocásticos para mudança de especificação de vela anterior:


O exemplo acima retorna uma matriz de dois valores contendo 2 valores: stoch [0] - slow% K value e stoch [1] - slow% D value.


Para obter valores de indicadores estocásticos para a vela anterior usando o intervalo de tempo:


O exemplo acima retorna matriz de arrays duplos contendo 2 valores: stoch [0] [0] - slow% K value; stoch [1] [0] - valor lento de% D.


Para obter valores estocásticos para 2 barras anteriores, de e para o tempo de barra deve ser alterado e depois passou para o método de distância:


Este exemplo retorna matriz de arrays duplos contendo 4 valores:


Stoch [0] [1] - último velo lento% K valor. Stoch [1] [1] - último velo lento% D valor. stoch [0] [0] - próximo a último velo lento% K valor. Stoch [1] [0] - próximo a último velo lento% D valor.


Para obter valores de indicadores estocásticos para a vela anterior, especificando o tempo de início da barra, anteriorBar. getTime () В e a contagem de velas antes desta barra, candlesBeforeВ e depois de candleAfter:


O exemplo acima retorna matriz de arrays duplos contendo 2 valores.


O último exemplo mostra como obter os valores dos indicadores estocásticos da última barra usando o método universal:


Consulte a página de uso do Indicador para obter mais detalhes sobre os parâmetros dos métodos dos indicadores.


Como executar uma estratégia ou um indicador em JForex plaform (Dukascopy)?


A plataforma JForex suporta duas estruturas básicas que ajudam e automatizam o comércio em forex & # 8211; estratégias e indicadores. Infelizmente, devido às restrições técnicas da Dukascopy, muitos indicadores úteis só podem ser implementados como estratégias. Então, corremos esse indicador como uma estratégia.


Para executar nossa própria estratégia, temos que saber onde salvamos o arquivo com essa estratégia. Na maioria das vezes, é a pasta C: \ & # 8230; \ Meus documentos \ JForex \ Strategies \. Eu recomendo salvar todas as suas estratégias lá. Então podemos lançar nossa estratégia:


Iniciamos a plataforma JForex. Na área de trabalho & # 8220; & # 8221; janela (no canto inferior esquerdo), clicamos em & # 8220; Estratégias & # 8221; com o botão direito do mouse e escolhemos & # 8220; Open Strategy & # 8221 ;.


Na maioria das vezes (se tivermos um código Java e uma versão compilada com a extensão jfx), existem dois arquivos para nossa estratégia. Se quisermos apenas executar a estratégia, podemos escolher o arquivo jfx. Se também quisermos modificar o código da estratégia, devemos escolher o arquivo de origem.


Nota: Se executarmos uma estratégia a partir do arquivo, que é um código-fonte Java, pode ser necessário compilar a estratégia primeiro (escolhendo & # 8220; Compilar & # 8221;) e, se a compilação for bem-sucedida, escolha & # 8220; Local Run & # 8221 ;.


Para executar o nosso próprio indicador, recomendo colocar o arquivo indicador na pasta C: \ & # 8230; \ Meus documentos \ JForex \ Inicators \. Então, se queremos ver / modificar o código-fonte Java do nosso indicador, repetimos os passos de 1 a 3 com apenas uma diferença & # 8211; no passo 2, escolhemos & # 8220; indicador aberto e # 8221 ;.

Комментариев нет:

Отправить комментарий