Download MetaTrader 5

Como criar uma Especificação de Requisitos para solicitar um indicador

18 abril 2018, 09:32
MetaQuotes Software Corp.
0
964

Índice


Como o algo trading pode facilitar a vida de um trader?

Todos os traders querem encontrar padrões de comportamento de mercado, o que poderia ajudar na identificação de momentos favoráveis ​​para a realização de operações de negociação. Eles também querem eliminar a aleatoriedade e a influência de fatores externos, como rumores, comunicados de imprensa, fadiga e assim por diante.

Os traders monitoram gráficos e podem formular algumas regras formais, que permitem a análise objetiva dos gráficos de preço ou tick. Os indicadores técnicos podem facilitar essa análise.

O próximo passo é desenvolver regras, que permitem ao trader negociar mecanicamente seguindo estritamente a estratégia, sem omitir entradas, mesmo que os sinais do sistema pareçam inadequados para a situação atual. Se os sinais de um sistema de negociação podem ser formalmente descritos, é melhor confiar a negociação a um Expert Advisor automatizado.

Um robô de negociação pode trabalhar sem parar por 24 horas por dia sem cansaço ou dúvida. No entanto, nem todo trader pode desenvolver robôs comerciais de negociação. Uma solução nesse caso é solicitar um aplicativo para um desenvolvedor de algo trading. Ao solicitar um aplicativo, você precisa fornecer ao programador uma Especificação de Requisitos, que contém a descrição dos requisitos para o indicador ou robô de negociação que você está solicitando. Neste artigo, nós consideraremos a criação da Especificação de Requisitos. O artigo será, em primeiro lugar, interessante para os clientes que desejam utilizar o serviço Freelance.

Complemento do texto com imagens e vídeos

A Especificação de Requisitos deve ser exata e bem estruturada, e deve conter tudo o que é necessário para um programador entender a tarefa: fórmulas, condições lógicas, partes de código, descrição do algoritmo.

Muitos problemas em nossa sociedade decorrem do mal-entendido entre as pessoas. O mal-entendido também pode causar problemas ao solicitar um aplicativo para um desenvolvedor freelance. Muitos desenvolvedores acham que a parte mais difícil da solicitação é descobrir o que os clientes querem. Mesmo que ambas as partes falem a mesma língua, elas frequentemente não se entendem. O pior caso é descobrir isso no estágio de pronta aceitação do programa. Tanto o Cliente quanto o Desenvolvedor estarão desapontados neste caso. Às vezes isso leva à arbitragem.

Quando o pedido está em Arbitragem, as partes geralmente começam a se entender. Pensamos e expressamos nossas ideias em palavras? Não, pensamos em imagens. Portanto, se você quiser que sua Especificação de Requisitos seja clara para você e para o desenvolvedor, adicione imagens a ela.

A regra é simples: adicione uma imagem explicativa para cada situação de mercado e cada padrão desejado. A imagem ou diagrama deve conter as informações mais necessárias e não deve contradizer o texto. Remova detalhes desnecessários, adicione notas para as partes importantes, destaque os níveis com setas, marque os padrões e assim por diante.

Alguns clientes criam um texto enorme, tentando fornecer uma descrição detalhada e clara. No entanto, pode ser difícil entender a essência de um texto longo. O Cliente e o Desenvolvedor podem tratar alguns termos de maneira diferente, enquanto uma imagem não é ambígua - uma seta ou um círculo é percebido exatamente como uma seta ou um círculo. Gastando entre 5-10 minutos preparando as imagens que um desenvolvedor possa entender, você pode entregar melhor suas ideias e receber um programa funcional mais rapidamente.

Nota! As imagens devem ser inseridas diretamente no texto, não anexado como um arquivo. Os desenvolvedores podem optar por não baixar esses anexos.

Por favor, use o editor de texto para preparar sua descrição:


Muitas vezes os clientes escrevem: "Vou explicar os detalhes no Skype, é uma maneira mais clara e rápida". Não, não é! Uma maneira mais clara é criar um vídeo. Tente preparar uma descrição profissional clara e suave do vídeo. Antes de começar a gravar o vídeo, faça um plano usando um cenário do que mostrar e dizer. Tentar gravar um vídeo logo de primeira — provavelmente você não conseguirá. O mesmo acontecerá no Skype. É por isso que você deve se preparar para o vídeo e gravá-lo quantas vezes precisar para obter um resultado satisfatório. Em seguida, publique-o no YouTube e insira-o na Especificação de Requisitos do seu pedido.

Agora vamos direto ao ponto: primeiro vamos analisar alguns exemplos de Especificação de Requisitos para o desenvolvimento de indicadores.

Programas úteis para criação da especificação de requisitos

Nós recomendamos usar o ScreenPresso para preparar e publicar as capturas de tela. Ele permite adicionar facilmente na captura de tela um texto, setas, formas e efeitos visuais. O programa tem um grande conjunto de parâmetros e também permite a gravação de vídeos. As capturas de tela podem ser adicionadas ao chat de solicitação da seção Freelance usando o método de arrastar e soltar ou copiar e colar.

Se você precisar de mais opções de edição de imagens, escolha outro editor gráfico PicPick. Estes dois programas são gratuitos para uso pessoal. Você pode usar ambos, pois eles se complementam perfeitamente. Você pode encontrar na Internet outras ferramentas de captura de tela com opções de edição.

Para criar protótipos de painéis gráficos, use o programa Pencil. Ele permite preparar um esboço de qualquer interface desejada em 5-10 minutos. O programa também possui opções para criar fluxogramas, que possibilita a explicação visual de algoritmos complexos. Você também pode ler as avaliações na Web, como a 7 Best Free Flowchart Tools for Windows.

Um fluxograma é uma forma conveniente de visualizar a lógica do programa, permitindo demonstrar ações em condições, ciclos, etc. Se você é bom em matemática, você pode descrever fórmulas e cálculos usando o Microsoft Excel. O SmartArt da Microsoft permite a criação de gráficos, diagramas, painéis e fluxogramas. 

Vamos resumir. Não importa qual programa você escolha para descrever a ideia do seu indicador. O importante é que sua apresentação seja compreensível para o desenvolvedor. Use imagens, fluxogramas e diagramas, como complemento da descrição do texto. Uma descrição tão abrangente ajudará o desenvolvedor a entender melhor a ideia do seu pedido.

Formulando a especificação de requisitos como um algoritmo

Cada indicador reflete uma ideia. Portanto, primeiro você precisa descrever a ideia, em palavras e imagens, se possível. Se a ideia não for explicada, será muito mais difícil para o desenvolvedor entender o que o cliente deseja.

Agora você pode prosseguir com a descrição do algoritmo da operação/cálculo/exibição do indicador. Descreva o algoritmo como uma sequência de operações. O desenvolvedor poderá escrever um código apropriado com base no algoritmo descrito. Se a descrição da ideia e do algoritmo contiverem termos, você deve explicitamente defini-los para garantir que ambas as partes compreendam igualmente o seu significado.

Divida o algoritmo em estágios e organize-os na mesma sequência que você deseja que eles funcionem. Não salte entre diferentes partes da Especificação de Requisitos, certifique-se de descrever corretamente um bloco, módulo ou etapa antes de mudar para o próximo.

Use listas para a descrição dos termos, da seguinte maneira:

  1. Intervalo diário — a distância entre a Máxima e a Mínima do preço durante o dia
  2. Intervalo médio — o valor médio do intervalo diário para N dias
  3. Lateralizado — um canal de preço estreito, dentro do qual o corpo das velas são formadas na mesma faixa
  4. ...

Para definir as etapas, use os números, listas e fontes em negrito.

Tente apresentar a Especificação de Requisitos como uma série de ações que ocorrem uma após a outra, na mesma ordem em que devem ser executadas no programa final. Alguns exemplos de Especificações de Requisitos são exibidos abaixo.

Exemplos de especificação de requisitos

Exemplo 1

É necessário um ZigZag baseado em osciladores

A ideia do indicador

Criar um indicador ZigZag, que é construído com base nos valores de extremos determinados usando osciladores. Ele pode usar qualquer oscilador normalizado clássico, que tenha zonas de sobrecompra e sobrevenda. O algoritmo deve primeiro ser executado com o indicador WPR e, da mesma forma, adicionar a possibilidade de desenhar um ziguezague usando os seguintes indicadores:

  • CCI
  • Chaikin
  • RSI
  • Oscilador Estocástico

Algoritmo e Termos

A primeira etapa é a construção do ZigZag:

  1. A zona de sobrecompra é determinada como velas, na qual o valor do indicador Valor > Lmax (Lmax=-20).
  2. A zona de sobrevenda é determinada como velas, na qual o valor do indicador Valor < Lmin (Lmin=-80).
  3. Os valores de Lmax e Lmin devem ser incluídos nos parâmetros do indicador.
  4. Um ponto amarelo deve ser adicionado no ponto da máxima das velas na zona de sobrecompra—é o ponto H.
  5. Um ponto verde deve ser adicionado no ponto da mínima das velas na zona de sobrevenda—é o ponto L.
  6. Se houver pelo menos um ponto L entre dois pontos H, procure um ponto LL no intervalo entre dois pontos H. A vela com a menor mínima do preço será o ponto LL. Geralmente, o ponto LL não é necessariamente um ponto L. Procure velas com a menor mínima do preço.
  7. Se houver pelo menos um ponto H entre dois pontos L, procure por um ponto HH no intervalo entre dois pontos L. A vela com a maior máxima do preço será o ponto HH. Geralmente, o ponto HH não é necessariamente um ponto H. Busque por velas com a maior máxima do preço.
  8. Conecte os pontos LL e HH para desenhar um ZigZag. A cor padrão é amarela. O primeiro passo está terminado.




O segundo passo é a cor do ZigZag:

  1. Procure por três pontos HH consecutivos, que atendam à seguinte condição: cada ponto HH encontrado deve ser maior que o anterior.
  2. Se a mesma condição for satisfeita para os dois pontos LL encontrados entre os pontos HH, ou seja, se o segundo LL for maior que o primeiro, pinte todas as pernas do ZigZag entre esses cinco pontos em vermelho.
  3. Se outros pontos HH e outro LL forem encontrados após esses cinco extremos do ZigZag, e eles estiverem localizados acima das HHs e LLs anteriores, respectivamente, colore-se as duas pernas do ZigZag em azul.
  4. Continue enquanto a condição se manter. Isso marca uma tendência de alta.
  5. Da mesma forma, procure os pontos LL decrescentes e repita as operações descritas na pp 1-4. Essas pernas devem ser coloridas em vermelho para marcar a tendência de baixa.



O terceiro passo é adicionar uma opção para especificar o tipo do oscilador, com base no qual o Zigzag será construído: CCI, Chaikin, RSI, Oscilador Estocástico.

  1. Portanto, o primeiro parâmetro é o tipo do oscilador, que deve ser definido por uma enumeração. O valor padrão é WPR.
  2. Adicione os parâmetros Lmax e Lmin para cada tipo. Esses parâmetros devem ter valores padrão.
  3. Os nomes dos parâmetros maximum e minimum devem conter o nome do indicador, como WPRmax, CCImax, STOmax etc.

O passo 4 é adicionar um painel gráfico para gerenciar os parâmetros do indicador.

  1. O painel deve possuir as caixas de seleção com todos os tipos de osciladores, permitindo alternar rapidamente entre os osciladores.
  2. O painel deve ser minimizável e maximizável por um clique.
  3. É necessário também a possibilidade de mover o painel no gráfico
  4. e para remover o indicador do gráfico usando opções no painel.


Cálculos: o indicador será usado para trabalhar com os gráficos e para otimização. Portanto, o algoritmo deve ser rápido e não deve consumir muito recurso computacional.

O trabalho será aceito em etapas, portanto, cada etapa deve ser concluída na ordem correta.


Exemplo 2

Preciso de um indicador NRTR, que envia notificações por e-mail e para o app

1. Primeiro, o NRTR deve ser reescrito da linguagem MQL4 para a MQL5. O código está disponível aqui: https://www.mql5.com/pt/code/7760

2. Quando haver uma mudança na cor do indicador, ele deve enviar uma notificação push e um e-mail, para notificar sobre a mudança da tendência.

3. Adicionar nos parâmetros as horas de funcionamento, durante o qual o indicador tem permissão para enviar as notificações, ele não deve enviar notificações durante a noite. Deve haver dois parâmetros:

  • StartHour — a hora para começar a operação pela manhã;
  • EndHour — a hora de encerrar a operação à noite.

4. Adicionar os parâmetros para ativar as notificações:

  • SendPush — permitir o envio de notificações push
  • SendEmail — permitir o envio de e-mails

5. O texto da mensagem deve ser o seguinte:

NRTR no EURUSD H1 virou para cima. Up=1.23560, Down=1.23300, Brick=260 pips


   Onde:

  • as informações sobre o nome e tempo gráfico são adicionados com base no gráfico em que o indicador está sendo executado
  • Up é o nível superior do canal
  • Down é o nível inferior do canal
  • Brick é a largura do canal em pontos (o tamanho do stop ao abrir uma posição)



6. O e-mail e as notificações push só devem ser enviadas após o fechamento da vela, que rompeu o canal.

7. Apenas um sinal por barra pode ser enviado.

8. Para monitorar a operação do indicador no VPS, todas as mensagens enviadas também devem ser escritas nos logs.

9. Os valores dos três buffers do indicador devem ser obtidos:

  • Up — o limite superior
  • Down — o limite inferior
  • Trend — direção da tendência, -1 ou 1

10. O indicador deve ser ótimo em termos de desempenho.


Exemplo 3

Desenvolver um indicador

Parâmetros de entrada:
  1. O primeiro par de moeda
  2. O segundo par de moeda
  3. O cálculo do par
  4. O preço usado para o cálculo é Bid/Ask

O ponto 3 não é um parâmetro de entrada, é apenas o resultado da divisão das taxas dos pontos 1 e 2. Ele é exibido no gráfico para referência.

Princípio de funcionamento:
A ideia é a seguinte: obtenha dois pares de moedas com o mesmo denominador (de preferência os pares populares), por exemplo EUR/USD e GBP/USD, e faça a divisão de suas taxas. Como resultado, nós obtemos a taxa do EUR/GBP.



O indicador é desenhado em uma janela separada. A linha vertical preta é o horário atual. Duas curvas são desenhadas à esquerda a partir desta linha:

  • uma curva mostra os dados calculados, ela é verde
  • a segunda mostra os dados reais, ela é vermelho

Os cálculos são realizados em todos os ticks. Como um intervalo de tempo horizontal do indicador ocupa muito mais espaço do que o mesmo intervalo no gráfico, os intervalos de tempo devem ser marcados. Por exemplo, se o período do gráfico for M1, as linhas verticais devem ser desenhadas no gráfico do indicador com um passo de um minuto.


O que eu posso especificar na Especificação de Requisitos?

Os indicadores são baseados no processamento dos gráficos de preço ou sequências de ticks. O resultado e propósito de tal processamento é ter uma ferramenta de análise técnica visual. Portanto, ao solicitar um indicador, você precisa fornecer respostas a algumas perguntas, o que ajudará o programador a entender melhor a sua ideia.

Tipo de desenho do indicador

  1. Linhas são o tipo do gráfico mais simples e claro.
  2. Histograma é mais usado em osciladores.
  3. Setas e símbolos são convenientes para marcar os pontos de entrada/saída. Às vezes os canais (NRTR) ou os sistemas de Trailing Stop são baseados em setas e símbolos.
  4. Áreas e canais, como os Envelopes.
  5. Segmentos podem ser usados para desenhar as linhas como parte de indicadores complexos.
  6. Estilo Zigzag, como o Zigzag colorido.
  7. Barras e velas são usados ​​para desenhar gráficos de outros símbolos ou velas personalizadas com base nos cálculos. Por exemplo, Heiken-Ashi.
  8. Uma combinação de estilos mencionados.

Alguns tipos de indicadores requerem várias séries de dados para o desenho. Essas séries de dados são chamadas de buffers do indicador. Um nome significativo precisa ser definido para cada buffer, para que o usuário possa entender facilmente os valores dos indicadores na Janela de dados.

Cores

O indicador pode ser desenhado em uma ou várias cores. Esta parte é geralmente clara. No entanto, se você quiser que a cor do indicador seja alterada dinamicamente, dependendo da situação atual, forneça um algoritmo claro descrevendo as condições correspondentes.

Onde o indicador é desenhado

  1. Na janela principal do gráfico
  2. Na subjanela do indicador

Tempos gráficos e símbolos para o cálculo e exibição

  1. O indicador usará seu próprio símbolo/tempo gráfico para o cálculo ou ele acessará os dados de outros símbolos e tempos gráficos?
  2. Deseja desativar o desenho do indicador em qualquer símbolo/intervalo de tempo?
  3. O que o indicador deve fazer se não houver barras suficientes do outro símbolo/tempo gráfico?

Preços, volumes e indicadores usados no cálculo

Os indicadores clássicos sempre utilizados para os cálculos dos preços de abertura (Open), máxima (High), mínima (Low) e fechamento (Close) do seu próprio tempo gráfico. Agora, vastas oportunidades de análise técnica moderna e linguagens de programação MQL5/MQL4 avançadas permitem o uso de diferentes séries temporais, incluindo o volumes e valores de outros indicadores.

  • Você precisa de um parâmetro de entrada para especificar o preço usado nos cálculos?
  • O indicador deve poder trabalhar usando dados de outro indicador? Por exemplo, uma Média móvel pode ser aplicada a um gráfico RSI. Nem todos os traders sabem sobre essa possibilidade.
  • Você precisa de níveis adicionais para indicadores, desenhados em uma subjanela separada? Por exemplo, os níveis de 30 e 70 para o Oscilador Estocástico.

Se os dados de outros indicadores forem usados ​​para o cálculo, tente fornecer o código-fonte de tais indicadores. Claro, o desenvolvedor pode descobrir como acessar os dados do indicador auxiliar. Mas a disponibilidade do código-fonte pode facilitar muito essa tarefa.

A lista de parâmetros de entrada

Prepare uma lista de parâmetros com nomes próprios para serem exibidos no terminal. Os programadores geralmente usam os nomes, que são convenientes para a leitura de código. Mas o usuário deste programa, ou seja, o trader, precisa ter nomes significativos. Por exemplo, o indicador Volatilidade de Chaikin (CHV) tem os seguintes parâmetros, que são fáceis de entender:

  1. Período de suavização: quantos valores são usados ​​para calcular a média do array auxiliar.
  2. Período de CHV: quantas barras são usadas para obter o array auxiliar pelo método de Chaikin.
  3. Tipos de suavização usados ​​para o oscilador.

Com base nessas informações, o desenvolvedor adiciona o seguinte ao código:

//--- Enumeração dos tipos de suavização
enum SmoothMethod
  {
   SMA=0,// MA Simples
   EMA=1 // MA Exponencial
  };
//--- parâmetros de entrada 
input int          InpSmoothPeriod=10;  // Período de suavização
input int          InpCHVPeriod=10;     // Cálculo do período de CHV
input SmoothMethod InpSmoothType=EMA;   // Método de suavização

Os Comentários após os valores serão mostrados para o trader como os nomes na janela dos parâmetros de suavização:


Cálculos em cada tick

Cada alteração no preço leva à execução de uma função do manipulador de evento especial chamada Calculate, em que todos os cálculos necessários são realizados. Talvez, seu indicador não precise lidar com todos os ticks, e os cálculos a cada nova barra são suficientes.

Se os cálculos forem realizados apenas nas barras novas, o teste do Expert Advisor usando este indicador pode ser executado rapidamente. Portanto, você deve decidir sobre o método de cálculo e adicioná-lo à sua Especificação de Requisitos.

Um algoritmo de cálculo ineficiente também pode aumentar o tempo de teste. Solicite do desenvolvedor a execução do profiling do código para detectar as funções lentas e melhorar o código. Além disso, não se esqueça da otimização do código analítico, quando o número de cálculos pode ser reduzido significativamente por transformações matemáticas. Essa otimização pode ser aplicada a muitos indicadores, que são baseados em métodos de média de séries temporais.

Redesenho do indicador

O redesenho do indicador no histórico é um dos erros mais decepcionantes em um sistema de negociação. O redesenho ocorre quando os cálculos dos indicadores dependem do momento de seu lançamento. Por exemplo, se você iniciar um indicador desse tipo no gráfico EURUSD M5 e deixar o terminal ligado por um dia, e no dia seguinte executar esse indicador exatamente com os mesmos parâmetros de entrada em outro gráfico EURUSD M5, descobrirá que os valores e a aparência dos indicadores é diferente.

Na maioria das vezes, a razão para esse efeito decorre do algoritmo. Um desenvolvedor experiente pode reconhecer esse comportamento e avisar o cliente sobre possíveis problemas ao usar um indicador desse tipo na negociação.

Envio de alertas, notificações push, e-mails, relatórios e capturas de tela

Se você quiser que seu indicador informe sobre a situação atual do mercado, peça ao desenvolvedor para adicionar as opções de envio notificação Push e de e-mails. Outras funções de alerta incluem a PlaySound(), Alert() e MessageBox(). Se você tem um site ou blog, você pode usar a SendFTP() para enviar relatórios.

Mais possibilidades de automatizar a negociação manual estão descritas no artigo Como criar bots para o Telegram em MQL5 por Andrey Voytenko. Algumas das ideias descritas são interessantes.

Painel de controle gráfico

Se você quiser opções flexíveis do controle de indicadores, adicione um painel de controle gráfico. O artigo Tratamento de Eventos no MQL5: Mudando Período MA Rapidamente A descrição da ideia básica foi publicada há muitos anos. Desde então, os recursos da linguagem MQL5 tornaram-se quase que ilimitados. Veja exemplos nos artigos Oscilador Universal com Interface Gráfica do Usuário e Como adicionar rapidamente painéis de controle a indicadores e conselheiros (EA). Nós também recomendamos a leitura da série de artigos Interfaces Gráficas por Anatoli Kazharski.

Se você precisar de mais do que apenas um indicador desenhando várias linhas, por exemplo, um complexo analítico completo e pronto, um painel gráfico tornará o uso de tal indicador muito mais conveniente. Você precisa definir as ações e funcionalidades implementadas no painel com antecedência:

  • maximização/minimização do painel por um clique do mouse
  • arrastar o painel no gráfico
  • redimensionar o painel
  • eventos do mouse: clique com o botão esquerdo/clique direito, rolagem
  • eventos do teclado: pressionamento, manter pressionado as teclas, combinações de teclas
  • eventos do timer
  • eventos personalizados, que os programas podem enviar para outros programas

Todas as opções disponíveis estão descritas na seção Tipos de Eventos do Gráfico.

Capturas de tela explicativas

Ver uma vez é melhor do que ouvir duas vezes. Portanto, se o seu indicador deve desenhar/visualizar situações específicas de uma maneira completamente específica, prepare ilustrações explicativas. Mostre os detalhes mais importantes em tais imagens. Não faça capturas de tela grandes, use uma imagem de tamanho razoável. O artigo Dicas para uma Apresentação Eficaz do Produto no Mercado também fornece algumas dicas úteis.

Se você publicar um programa de reconhecimento de padrões, mostre alguns padrões reconhecidos no gráfico. Faça capturas de tela claras e forneça os comentários explicativos. 


A colocação de vários detalhes pequenos em uma captura de tela também não irá ajudar. Aqui está um exemplo do que deve ser evitado:


A descrição do produto estaria melhor se, em vez de uma captura de tela, o cliente tivesse fornecido duas ou três imagens maiores com padrões reconhecíveis e um texto legível. Isto também diz respeito aos gráficos de preços. Escolha escalas maiores e mostre os detalhes. Nós não recomendamos que você use esquemas de cores incomuns sem qualquer necessidade particular. Por favor, certifique-se de que o texto do comentário (mensagem da função de comentário) não se sobreponha a parte do gráfico. Usar as cores padrão, como azul e vermelho, para destacar os sinais de compra e venda é o que nós recomendamos. Os dados sobre a imagem abaixo não é apresentada de forma eficiente.


Abaixo está uma versão melhorada.


O usuário optou por uma escala maior do gráfico e um esquema de cores padrão "Preto e Branco". O nome do gráfico foi removido, a fonte e a cor do nome do padrão foram alteradas e os pontos de rompimento do triângulo foram contornados em vermelho. As setas de rompimento do triângulo possuem cores tradicionais. Tal imagem não possui detalhes excessivos e ela demonstra apenas a ideia principal.

Logs e registros para depuração

É quase impossível escrever um programa de imediato, que é livre de erros. Quanto maior a complexidade do programa, mais situações imprevistas podem surgir. Portanto, o comportamento do indicador finalizado pode diferir do que você esperava. Isso pode ser causado por diferentes razões, e algumas delas são descritas abaixo.

  • O erro do programador: o código foi escrito incorretamente ou foi esquecido algum ponto da Especificação de Requisitos.
  • Uma situação anormal no gráfico, para a qual sua Especificação de Requisitos não fornece nenhuma ação desejada. Isso significa que o programa funciona corretamente, mas você não forneceu alguma situação específica no algoritmo. É por isso que você recebeu um resultado inesperado. Neste caso, consulte o programador sobre como resolver a situação.
  • Seu erro: você pode ter especificado parâmetros inválidos, não ter fornecido a profundidade do histórico necessário, não incluiu os arquivos necessários, etc.

Se ocorrer um erro, você precisa entender o motivo. Isso significa que você precisa obter todos os detalhes para uma análise mais aprofundada. Nesse caso, além de descrever a situação usando capturas de tela e vídeos, forneça os registros do programa e do terminal. Então, você deve saber onde o Diário da plataforma está localizado, assim como indica na Especificação de Requisitos quais informações o programa deve gerar.

Se ocorrer qualquer situação imprevista, forneça ao desenvolvedor informações adicionais, conforme mostrado no artigo Como encomendar um Expert Advisor e obter o resultado desejado:

  • Anexe um arquivo de configuração com os parâmetros do programa (o botão "Salvar" na janela de parâmetros do Expert Advisor)
  • Especifique o par de moeda usado e o tempo gráfico
  • Especifique o endereço do servidor ao qual o seu terminal estava conectado e o tipo da sua conta (demo, real, concurso, etc.)
  • Especifique a versão do terminal (menu "Ajuda" - "Sobre")
  • Se o indicador foi executado no Testador de Estratégia, forneça adicionalmente as configurações do testador (datas, modo da modelagem, modo de negociação, depósito inicial, alavancagem)

Esses detalhes também podem ser especificados na Especificação de Requisitos.

Teste e aceitação do indicador

A operação do indicador pode ser verificada em gráficos online, assim como no Testador de Estratégia no modo de teste visual. Isso economizará um tempo significativo e ajudará a avaliar o comportamento do indicador em diferentes fases do mercado. Peça ao desenvolvedor para executar o profiling de código e estudar as partes do programa, nas quais o indicador desperdiça a maior parte do tempo. Para as funções mais chamadas ou de tempo crítico, os contadores de tempo podem ser adicionados ao código: esses contadores calculam o número de chamadas e o tempo gasto.

Caso você detecte um erro, informe o desenvolvedor e forneça a descrição e os detalhes necessários, permitindo que o desenvolvedor reproduza a situação: capturas de tela, logs, informações sobre o símbolo/tempo gráfico e a conta de negociação. Esses detalhes ajudarão você a resolver o problema mais rapidamente.

Se outros indicadores ou arquivos forem necessários para a operação do indicador, verifique se eles estão disponíveis nas pastas corretas do diretório de dados do seu terminal.

Pense, descreva, peça!

Esperamos que este artigo tenha ajudado você a entender melhor como criar uma Especificação de Requisitos clara e compreensível. Nós também tentamos mostrar brevemente as possibilidades da linguagem MQL, na qual os desenvolvedores freelancers experientes podem criar indicadores de qualquer nível de complexidade para você.

Se você nunca solicitou um programa no serviço Freelance porque não sabia por onde começar, use as dicas acima. E, claro, se comunique com os desenvolvedores. Programadores experientes irão ajudá-lo a formular corretamente o seu pedido e obter o resultado desejado.

Traduzido do russo por MetaQuotes Software Corp.
Artigo original: https://www.mql5.com/ru/articles/4304

Otimização Controlada: Recozimento Simulado Otimização Controlada: Recozimento Simulado

O Testador de Estratégia da plataforma de negociação MetaTrader 5 fornece apenas duas opções de otimização: otimização completa dos parâmetros e o algoritmo genético. Este artigo propõe um novo método para otimizar as estratégias de negociação — Recozimento Simulado (Simulated Annealing). Será introduzido o algoritmo do método, sua implementação e integração em qualquer Expert Advisor. O algoritmo desenvolvido é testado no EA Moving Average (Média Móvel).

Criando um feed de notícias personalizado para o MetaTrader 5 Criando um feed de notícias personalizado para o MetaTrader 5

O artigo examina a possibilidade de criar um feed de notícias flexível, que oferece muitas opções para escolher o tipo de notícias e sua fonte. Além disso, ele mostra como você pode integrar uma API da Web ao terminal MetaTrader 5.

Comparamos a velocidade de indicadores de armazenamento automático em cache Comparamos a velocidade de indicadores de armazenamento automático em cache

O artigo compara o acesso MQL5 clássico a indicadores com métodos alternativos em estilo MQL4. São consideradas algumas variações de acesso - em estilo MQL4 - a indicadores, nomeadamente, o acesso com cache de identificadores e sem ele. É estudada a contabilização de identificadores de indicadores dentro do kernel MQL5.

Sincronização de vários gráficos num instrumento em diferentes timeframes Sincronização de vários gráficos num instrumento em diferentes timeframes

Muitas vezes, para tomar decisões, no processo de negociação, é necessário analisar simultaneamente gráficos em vários timeframes. Ao mesmo tempo, há objetos de análise gráfica nos gráficos. Implementar os mesmos objetos em todos os gráficos é incômodo. Neste artigo, proponho automatizar a clonagem de objetos em gráficos.