Tutorial do indicador 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.


Crie uma Estratégia.


Crie nova / abra a estratégia existente.


Para abrir uma nova estratégia, clique com o botão direito no painel Estratégias no navegador.


Uma vez que uma "estratégia nova" é selecionado, o sistema cria um novo arquivo de estratégia em & quot;


\ AppData \ Local \ JForex \ Strategies & quot; diretório. A estratégia, por si só, é um arquivo java, que pode ser editado em qualquer editor compatível com Java.


O exemplo a seguir é um arquivo de estratégia típico com métodos de implementação mínimos necessários para uma compilação bem-sucedida:


Uma estratégia pode ser compilada pressionando o botão de compilação na barra de ferramentas do seu editor de estratégias:


Os resultados da compilação podem ser visualizados nas "Mensagens" aba. A "Compilando. OK " a mensagem é exibida, se a compilação tiver sido bem-sucedida. Caso contrário, você obtém mensagens de erro detalhadas.


Execute o programa.


Para trazer um sentido para o nosso exemplo, vamos ajustar os métodos OnStart e onTick para fazer com que ele imprima ticks recebidos:


Uma vez compilada a estratégia, pode-se executá-la clicando com o botão esquerdo no painel Navegador e selecionando Execução local.


Para mais informações sobre o desenvolvimento de estratégias e os exemplos de uso, consulte Estratégia API.


Tutorial de estratégia.


Este tutorial contém informações sobre como criar e desenvolver estratégias JForex. O tutorial começa com uma estratégia simples que apenas imprime uma mensagem e, em seguida, prossegue a estratégia de negociação que, com cada seção, mais evolui à medida que adicionamos dados históricos, indicadores e uso de gráficos. Embora todas as estratégias fornecidas possam ser desenvolvidas dentro da plataforma JForex, considere o uso de um Ambiente de Desenvolvimento Integrado (IDE) para o desenvolvimento da estratégia.


Estratégia simples.


Em primeiro lugar, criaremos uma estratégia simples clicando com o botão direito do mouse no nó Estratégias no painel Navegador e escolhendo Nova Estratégia.


A plataforma JForex gera um novo arquivo e abre no editor. Tente compilar o arquivo pressionando F5 ou compilar o botão:


O JForex solicitará que você nomeie e salve o arquivo java em seu disco rígido.


Se você salvar o arquivo com um nome de arquivo personalizado, não se esqueça de alterar o nome da classe no arquivo gerado. O nome do arquivo e o nome da classe devem ser os mesmos. Por exemplo. Se salvar o arquivo como StartStrategy. java, o nome da classe também deve ser StartStrategy.


Modifique onStart.


A classe de estratégia gerada implementa a interface IStrategy. Os métodos de estratégia são implementados com corpos de métodos vazios no arquivo java da estratégia gerada. Modifique o método onStart. Esse método é chamado sempre que se inicia uma estratégia. Preencha o corpo do método onStart com o seguinte código:


Compile o arquivo pressionando F5 ou compilar o botão.


Execute a estratégia.


Teste a estratégia clicando com o botão direito do mouse na estratégia no JForex e escolha Local Run.


Há três coisas que indicam que a estratégia foi chamada:


O ícone da Estratégia é alterado no nó Estratégias - um triângulo verde é adicionado, indicando que a estratégia está no estado em execução:


Na guia Mensagens, uma nova mensagem é adicionada:


Uma nova aba é aberta para a estratégia iniciada. Esta guia mostra o resultado da estratégia. Neste caso, vemos que a declaração println foi executada com sucesso e impressa & quot; Método onStart () chamado "quot ;:


Faça o comércio simples.


Definir Parâmetros.


Os parâmetros da estratégia são definidos antes da execução do método onStart. Abra o arquivo java da estratégia no editor e adicione um parâmetro ao arquivo java. Leia o artigo Parâmetros de estratégia para saber mais sobre os parâmetros da estratégia.


Compile o arquivo. No lançamento da estratégia, o "Definir Parâmetros & quot; diálogo aparece. Aqui pode-se modificar os valores dos parâmetros da estratégia.


Depois de definir os valores dos parâmetros, escolha Executar para iniciar a estratégia.


Obtendo barras e carrapatos.


Nesta parte do tutorial, estamos usando os parâmetros previamente definidos. Esses parâmetros são usados ​​para obter os objetos IBar e ITick. Pode-se visitar Barras de História ou História Ticks para aprender mais sobre barras e carrapatos.


Inicialmente, defina a barra e marque. Referências de objeto na classe:


Inicialize as referências do objeto anteriorBar e myLastBar no método onStart usando os métodos IHistory. getBar e IHistory. getLastTick:


Em seguida, devemos dar algum resultado para que se possam verificar os valores no gráfico e na saída da estratégia:


Antes de executar a estratégia, é necessário subscrever um instrumento usando um método IContext. setSubscribedInstruments. Coloque o seguinte código antes do código de inicialização IBar:


Compile o arquivo.


Quando um executa a estratégia, acontecem três coisas:


Se o instrumento escolhido não estiver na lista da janela Instrumentos, é adicionado (é por isso que precisamos subscrever um instrumento, se o instrumento não for subscrito, então a estratégia não funcionará)


A mensagem na guia Mensagens é exibida. A mensagem também mostra os valores dos parâmetros.


As mensagens de saída da estratégia são exibidas na guia da estratégia.


Observe os valores de abertura e fechamento da barra. Estes serão necessários para comparar os valores do gráfico e os valores da barra.


Compare a saída da estratégia com a saída do gráfico!


Abra o gráfico desejado de acordo com o instrumento que será selecionado no "Definir Parâmetros" diálogo. Defina o mesmo Valor de Período para o gráfico como será em "Definir Parâmetros" diálogo. Em seguida, execute a estratégia. Compare os parâmetros Open, Close, High, Low e Volume da guia de saída da estratégia e da última barra completa do gráfico. Estes devem ser os mesmos:


Fazer um negócio.


No início, escreva uma declaração de importação para importar Enumeração OrderCommand. Este enum define comandos - VENDER e COMPRAR. Nós precisaremos dessas constantes de enum mais tarde.


Neste exemplo, estamos usando o arquivo java da estratégia criado anteriormente - BarsAndTicks. java. Agora adicione algum código para negociação. Primeiro, escreva uma linha de código que decidirá vender ou comprar. Nesse caso, estamos tomando essa decisão com base na última barra completa. Todo o código a seguir é adicionado ao método onStart. Se o valor recuperado do método getOpen da barra for menor que o valor getClose (barra verde), então compraremos, se oposto (barra vermelha), venderemos:


Quando agora, o tipo de operação comercial que faremos, podemos executar o nosso OrderCommand usando o método de envio de um método IEngine. O método submitOrder leva como um parâmetro um objeto String - o rótulo da ordem. Lembre-se de que este rótulo para cada pedido deve ser exclusivo.


Compile o arquivo e execute a estratégia. Observe que na guia Posições há uma nova entrada onde Ext. ID é igual a "quot; MyStrategyOrder2 & quot ;. Este é o rótulo de ordem que damos como parâmetro para o método IEngine. submitOrder.


Pode-se fechar a ordem selecionando a caixa de seleção da ordem na guia Posições, clicando com o botão direito do mouse e selecionando Fechar Posição:


Comércio de acordo com o último barramento concluído.


Nesta parte do tutorial, modificaremos a estratégia criada anteriormente BarsAndTicksTrade. java. O método onBar é chamado em cada barra para cada período básico e instrumento no qual o aplicativo está inscrito. Para trabalhar com instrumentos específicos apenas no método onBar, precisaremos filtrar esses arquivos. Neste exemplo, mostraremos como registrar os eventos da ordem com um método onMessage. Para registrar mensagens relacionadas à ordem de todas as outras mensagens, precisaremos filtrar elas. Neste exemplo, estamos simulando o log por simplesmente imprimir na guia de saída da estratégia.


Crie a lógica no método onBar.


Mova a lógica da estratégia criada anteriormente do método onStart para o método OnBar. Aqui está o método onStart após o movimento:


Defina um novo parâmetro de instância do tipo IOrder. Nós precisaremos desse objeto IOrder mais tarde para verificar os pedidos existentes com o mesmo rótulo:


Em seguida, implemente o método onBar da seguinte maneira:


Faça o login.


Implementar o método onMessages como o seguinte:


Clique aqui para saber mais sobre o log. Aqui está o arquivo java da estratégia completa - OnBarExample. java.


Pode-se verificar a forma como a estratégia funciona em situações reais com dados históricos reais, utilizando um verificador histórico. Testamos nossa estratégia com base nos dados do último dia. Para fazer isso, selecione Tools-Historical Tester para abrir a guia histórica do testador. Escolha a estratégia de uma lista suspensa; pressione o botão Instrumento para ajustar o instrumento desejado; defina o período em uma lista suspensa para o último dia; Defina o período para Ticks. Finalmente, pressione o botão play para iniciar o teste.


Se você estiver interessado em mais detalhes sobre como trabalhar com o Historical Tester, visite o wiki do Tester Histórico.


Os resultados do teste são abertos em um navegador por padrão.


Comércio de acordo com a SMA Trend.


A estratégia desta parte do tutorial irá negociar de acordo com as mudanças do indicador SMA - comprar em tendência ascendente e vender em tendência descendente. Usaremos um indicador SMA (Simple Moving Average) e atualizaremos nosso arquivo java de estratégia criado anteriormente.


A idéia é usar um método Indicators. sma para obter valores para as duas últimas barras concluídas (segundo a último e último) e tomar uma decisão de acordo com os valores dessas barras. Neste caso, usamos o método sma que leva intervalos de vela como parâmetros. Clique aqui para saber mais como usar os intervalos de vela para o cálculo do indicador.


Vamos preparar a estratégia para a nossa nova implementação do método onBar. Precisamos definir o atributo do período de tempo para o método sma e poucas constantes para a matriz retornada do método sma. Além disso, adicionaremos um método de utilitário para imprimir mensagens no console:


Aqui está um código completo do método onBar:


public void onBar (Instrumento, período, IBar askBar, IBar bidBar) lança JFException.


Aqui está o arquivo java de uma estratégia completa - SMASampleTrade. java.


Teste nossa estratégia por alguns dias com o Historical Tester. Quando o gráfico é aberto, confirme se o período é o mesmo que você deu como um parâmetro. Estamos usando os seguintes parâmetros nesta amostra:


Adicione o indicador SMA ao gráfico clicando no botão f (x) e, em seguida, escolha Adicionar indicador. Em uma pesquisa de Filtro Rápido para SMA - Simple Moving Average e configure os seguintes parâmetros:


Pode-se ver que a decisão é tomada nas duas últimas barras concluídas. Se uma linha de tendência da SMA começar a subir, vendemos, se descer, então, comprar. Verifique também a saída da estratégia - aqui você pode ver os indicadores SMA para duas últimas barras concluídas (último e segundo para último) e as mensagens da ordem.


Clique aqui para saber mais sobre o Cálculo do Indicador.


Representando Eventos no Gráfico.


Nesta parte do tutorial, pode-se aprender como adicionar objetos de gráfico a um gráfico e como os personalizar. Vamos adicionar e personalizar um SMA indicador, IOhlcChartObject, ISignalDownChartObject e ISignalUpChartObject objetos. Essa estratégia fará ordens de acordo com os valores da SMA e adicionará o objeto ISignalDownChartObject ou ISignalUpChartObject ao gráfico no ponto da linha do tempo quando uma nova ordem for criada. Estamos criando essa nova estratégia no arquivo SMASampleTrade. java criado anteriormente. Clique aqui para saber mais sobre como adicionar objetos a um gráfico.


Em primeiro lugar, adicione as seguintes importações:


Vamos usar os ícones IChart e IChartObjectFactory para trabalhar com os gráficos. Então, criamos um parâmetro de instância para cada um deles. Como adição, estamos criando uma instância.


Ao executar a estratégia, uma pessoa poderá escolher se deseja adicionar ou não o indicador e os valores da OHLC ao gráfico e se deseja ou não fechar o gráfico depois que a estratégia for fechada. Então, adicione os seguintes parâmetros ao código:


Em seguida, inicialize as variáveis ​​de instância necessárias para adicionar um indicador de SMA ao gráfico e ligue para um método (addToChart) que fará o trabalho. O método onStart:


Modifique o método onStop para que ele leve em consideração a escolha dos usuários para fechar ou não o gráfico se a estratégia for fechada:


Como adição à lógica criada anteriormente, adicionaremos ao gráfico um objeto ISignalDownChartObject ou ISignalUpChartObject sempre que o método onBar for invocado para o nosso instrumento e período. Considere o seguinte código no método onBar:


Adicione um novo método de utilidade para impressão de mensagens de erro na saída da estratégia:


Por fim, implemente o método addToChart. Este método irá adicionar o indicador SMA e, opcionalmente, as variáveis ​​OHLC ao gráfico:


Aqui está o arquivo java da estratégia completa - ChartUsage. java.


Teste a estratégia com o Tester Histórico. Não escolha fechar o gráfico no método onStop ao testar com o Historical Tester (ele mostrará mensagens de erro), um deve fechar manualmente o gráfico antigo antes de executar um novo teste. Neste exemplo, estamos executando nossa estratégia com os seguintes parâmetros:


Aqui está um gráfico resultante:


Adicione Stop Loss e obtenha lucros.


Nesta parte do tutorial, usamos stop-loss (SL) e obtem valores de lucro (TP) de uma ordem. Vamos modificar o arquivo java da estratégia criado anteriormente - ChartUsage. java.


Começamos adicionando novas importações e removendo desnecessariamente. Anteriormente, nós atribuímos objetos de sinal e sinal para um tipo IChartObject, mas agora usaremos outro tipo de referência (mais específico) - IChartDependentChartObject. Ao usar esse tipo de objeto, pode-se indicar que o objeto não ficará em uma barra quando adicionado ao gráfico (com o tipo de objeto IChartObject, não é possível).


Defina novas variáveis ​​de instância. Nós precisaremos deles mais tarde:


Como mencionado anteriormente, vamos usar os valores SL e TP de uma ordem, então nós adicionamos novos parâmetros para poder definir os valores necessários na inicialização da estratégia. A variável breakEventPips é usada para definir o nível de lucro-pips. Quando esse nível de lucro em pips é atingido, o valor SL da ordem é definido como o nível de preço aberto da ordem.


Defina um enum que contenha constantes de todos os estados de linha de tendência SMA possíveis:


Break Even in onTick.


Considere o método onTick que é chamado no tiquete de cada instrumento. Filtramos apenas os instrumentos em que nos interessamos, então o método é executado somente quando precisamos. Mais tarde, no método OnBar, adicionamos cada nova ordem a um objeto Map. Aqui, passamos pelo Mapa de pedidos para ver se já mudamos o SL de acordo com o nível de equilíbrio. Se não for alterado, verificamos se o lucro em pips é maior que o parâmetro breakEventPips. Se for, podemos mudar o valor SL para o nível de preço aberto da ordem. Toda vez que o valor SL é ajustado para o preço aberto, adicionamos um triângulo (invocando um método addBreakToChart que é descrito mais tarde) para indicar o processo visualmente no gráfico. Finalmente, alteramos o preço SL da encomenda e atualizamos a entrada no Mapa. Aqui está a implementação do método onTick:


Comércio de acordo com a SMA.


Nós modificamos nosso método onBar criado anteriormente. Estamos mudando o método onBar da maneira que ele usará os valores de ENUM SMATrend para verificar quando criar uma nova ordem. Nós também definimos os valores de SL e TP. Uma diferença em relação ao exemplo anterior é que não fechamos a ordem anterior se uma nova abrir. Os pedidos são fechados automaticamente quando os valores de SL ou TP são atingidos. Além disso, todos os novos pedidos são salvos no Mapa para verificar mais tarde o método onTick.


Adicionando um indicador ao gráfico.


Modifique o método addToChart para que a verificação do gráfico aconteça em um novo método - checkChart:


O método para verificar um gráfico:


Traçando um triângulo de equilíbrio na tabela.


Implementar o método addBreakToChart que é invocado no método onTick para mostrar uma representação visual das alterações SL no gráfico. Neste método, estamos adicionando um triângulo ao nosso gráfico se o valor SL for alterado para uma ordem. O triângulo verde representa as alterações SL para encomendas longas e uma vermelha para pedidos curtos. O triângulo é desenhado para que ele comece quando a ordem é criada e termina quando o valor SL é alterado. Adicionamos um texto ao triângulo para representar os valores novos e novos de SL.


Aqui está o arquivo java da estratégia completa - StopLossStrategy. java.


Clique aqui para saber mais sobre SL.


Testando a Estratégia.


Execute a estratégia no testador histórico. Neste exemplo, estamos usando os seguintes parâmetros:


Considere a saída do gráfico! As setas vermelha e verde mostram as ordens curtas e longas no gráfico ao mesmo tempo em que a ordem é criada. O lado direito dos triângulos mostra o tempo de mudança de SL e os novos e novos valores de SL. O canto esquerdo do triângulo começa na mesma posição no tempo em que a ordem é criada - ao fazê-lo, pode-se controlar facilmente a qual ordem a mudança SL é feita.


Usando o Feed de Dados.


Nesta seção, vamos mudar o tipo de dados de feed de 10 minutos para 2-pip renko bars (e, alternativamente, barras de período personalizadas de 30 segundos) deixando a lógica de estratégia restante igual. Para criar uma estratégia que funcione com diferentes feeds de dados, é necessário criar uma classe que implemente uma interface IFeedListener. Esta classe precisa implementar apenas um método - IFeedListener. onFeedData. Esse método é invocado sempre que os dados de feed chegam. Neste exemplo, vamos modificar o arquivo java da estratégia criado anteriormente - StopLossStrategy. java.


Declaração de um Tipo de Alimentação.


Modifique o arquivo StopLossStrategy. java e adicione as seguintes importações:


Conforme mencionado na introdução, precisamos implementar a interface IFeedListener para recuperar dados de feed. Implementaremos a interface na mesma classe onde a interface IStrategy é implementada:


Se estiver usando mais de um tipo de feed de dados no código, então precisamos usar Instrumento, Oferta, Preço, Período de acordo com um feed subscrito. Todos esses valores podem ser recuperados de um elemento IFeedDescriptor. Substitua essas variáveis ​​em todos os métodos com chamadas de métodos IFeedDescriptor que recuperam as mesmas variáveis ​​de acordo com o tipo de feed. Então, remova os parâmetros myInstrument, myOfferSide e myPeriod.


Neste exemplo, forneceremos uma escolha na inicialização da estratégia para escolher entre dois tipos de feed, então, vamos adicionar um novo parâmetro. Precisamos detectar a escolha de feed de um usuário e subscrevê-lo. Por isso, declaramos um novo enum. Esse enum possui um construtor que atribui um valor para a variável IFeedDescriptor de uma constante. Ao fazê-lo, podemos usar a constante enum's (FeedType) para obter informações sobre um feed de dados selecionado (Instrument, OfferSide, etc.).


Assinatura de um Feed.


Assinamos um tipo específico de feed no método onStart. Adicionamos o código que subscreve o feed:


Implementação de uma interface IFeedListener.


Estamos movendo toda a lógica do método onBar para onFeedData. Não estamos mais interessados ​​em executar o método onBar, pois estamos usando o feed de dados. Estamos interessados ​​em que nossa lógica seja executada sempre que um novo dado chegue. Para recuperar os dados, precisamos implementar a interface IFeedListener. Esta interface declara apenas um método - onFeedData. Uma diferença do código da estratégia criada anteriormente é que os valores do Instrumento e da Oferta são obtidos do objeto IFeedDescriptor. Todo o código está inserido em um bloco try-catch, porque alguns dos métodos (por exemplo, IIndicators. calculateIndicator) trow JFException. O objeto IBar é recuperado ao lançar o objeto ITimedData (a interface IBar estende a interface ITimedData). Um feed do indicador também é recuperado de uma maneira um pouco diferente - estamos usando o método IIndicators. calculateIndicator em vez de IIndicators. sma devido ao uso do objeto IFeedDescriptor.


O método onBar permanece com o corpo vazio:


Modificação do método de verificação de gráfico.


No método de verificação de gráfico, substituímos a forma de obter os objetos do Instrumento e da Oferta. Estamos usando o objeto IFeedDescriptor para recuperá-los. A lógica de verificar o gráfico também é um pouco diferente da anterior. Precisamos detectar o tipo de feed de dados e verificar o gráfico de acordo com ele:


O código-fonte completo da estratégia - Feeds. java.


Testando a Estratégia.


Neste exemplo, estamos usando intervalos mais específicos (30 segundos) e preço (2 pips). Antes de iniciar a estratégia, é necessário abrir um gráfico com os mesmos parâmetros dados nos parâmetros da estratégia. Para adicionar intervalos específicos de intervalos de tempo / preço, é necessário escolher Ferramentas - & gt; Preferências - & gt; Período e adicionar períodos obrigatórios. Para iniciar a estratégia, você precisa adicionar os períodos Renko 2 Pips e 30 Seconds.


Testando com um Renko Feed.


Estamos executando o teste de Renko 2 Pips com os seguintes parâmetros:


Aqui está um exemplo de imagem dos resultados do tipo de feed Renko (2 pips). Podemos ver que o indicador SMA e as ordens longas / curtas são adicionados ao gráfico:


Testando com uma alimentação personalizada da vela da Perda.


Ao testar a alimentação do Time Bar 30 segundos, estamos usando pids de Stop Loss e Break Event mais pequenos porque, com os valores maiores, seria difícil rastrear as alterações SL (os triângulos plotados seriam muito amplos). Parâmetros usados:


Adicionando GUI à Estratégia.


Neste exemplo, estamos adicionando um elemento GUI (Interface gráfica de usuário) (JDialog) que exibirá uma caixa de diálogo de aviso sempre que uma nova ordem for enviada. A caixa de diálogo conterá o texto da mensagem com um rótulo da ordem criada. Se acontecer que a nova ordem seja criada antes que a caixa de diálogo antiga seja fechada, a caixa de diálogo simplesmente altera o rótulo da nova ordem no texto da mensagem.


Vamos modificar nossa estratégia criada anteriormente - Feeds. java.


Em primeiro lugar, estamos adicionando novas importações para GUI. Vamos usar um objeto JDialog, que incluirá (envolve) o objeto JOptionPane (o conteúdo do JDialog).


Declare variáveis ​​de instância para a caixa de diálogo.


Por padrão, a caixa de diálogo bloquearia um acesso à plataforma enquanto a caixa de diálogo está em aberto. Para tornar a caixa de diálogo não modal, adicione a seguinte linha de código ao método onStart:


Para mostrar uma caixa de diálogo, chamamos um método de showNotification do método onDataFeed. Ligue para o método showNotification se uma nova ordem for criada. Aqui está um trecho de código:


O método showNotification mostra a caixa de diálogo sempre que uma nova ordem é criada (se a caixa de diálogo antiga é fechada) ou modifica a mensagem de uma caixa de diálogo existente (se a caixa de diálogo antiga não estiver fechada). Se a caixa de diálogo não estiver fechada, o método adiciona uma lógica que escuta os eventos da caixa de diálogo. Neste caso, estamos a ouvir os eventos próximos da janela. Se a janela de diálogo for fechada, a variável dialogClosed é definida como falsa, então, na execução do próximo método, agora que a caixa de diálogo está em posição fechada.


Aqui está o arquivo java da estratégia concluída - FeedsGUI. java.


Ao executar a estratégia, aparece uma nova caixa de diálogo de aviso. Se fecharmos a caixa de diálogo, então, na próxima submissão da ordem, aparecerá uma nova caixa de diálogo. Se não fecharmos a caixa de diálogo antes da nova encomenda, a mensagem da caixa de diálogo será alterada. O diálogo deve ser o seguinte:


Pode-se clicar aqui para saber mais sobre como usar o JDialog e outros objetos swing do Java ™.


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.


software forex.


Crie e teste estratégias de Forex.


Guia de usuario.


Estrutura Estratégica.


Principais ferramentas.


Ferramentas adicionais.


Índice.


Importação JForex.


O JForex é um software para negociação de Forex da Ducascopy. Seu programa permite que você baixe os dados do mercado, incluindo os dados do tick. Você pode ver como importar esses dados no nosso tutorial de Importação de JForex Data. Neste artigo, mostraremos você ao redor da interface do usuário da ferramenta JForex Import. Você pode abrir este painel do Centro de Histórico → Importação JForex.


1. Importação de dados JForex.


Diretório de entrada - esta é a pasta que contém os dados do JForex.


Diretório de saída - onde os dados convertidos serão salvos para uso pelo FSB Pro; Aqui você pode colocar o caminho para uma pasta Data Source, então os dados serão diretamente adicionados / atualizados nessa Data Source.


Horário de fechamento do mercado na sexta-feira; A hora de abertura do mercado no domingo - é uma característica dos dados JForex, que inclui registros durante o fim de semana, onde há barras de movimento zero ou algumas grandes espiras no movimento de preços. Os dados no fim de semana não são reais e, portanto, não é adequado para backtesting. É por isso que definimos o fechamento e o horário de abertura, ao converter os dados e filtrar essas barras. O FSB Pro tentará detectar esses bares por conta própria, mas recomendamos verificar novamente.


Como verificar novamente: na nossa prática, é às 21 horas quando o mercado fecha na sexta-feira e quando abre no domingo. Não podemos ter certeza do que essas horas são para seu fuso horário, mas você pode obtê-las do JForex ao executá-lo e definir os valores adequados na ferramenta Importação JForex.


Número máximo de barras a serem importadas - irá filtrar os dados até essa quantidade de barras.


Ajuda de importação JForex - um link para o tutorial sobre Importar dados JForex.


Importar - clicar no botão iniciará o processo de importação. A barra verde superior mostrará o status de importação do arquivo atual. A barra inferior mostra o status de todo o processo de importação, considerando todos os arquivos a serem importados.


2. Registro de saída.


O Registro de Saída mostra o nome de cada arquivo importado; o símbolo dos dados; quantas barras estão no arquivo;


Se as barras forem inferiores ao número "Número máximo de barras para importar", o FSB Pro irá converter e salvá-las em um arquivo no diretório de saída.


Se houver muitos bares em um arquivo, você verá:

Comments

Popular Posts