Discussão do artigo "Como criar uma Especificação de Requisitos para solicitar um robô de negociação"

 

Novo artigo Como criar uma Especificação de Requisitos para solicitar um robô de negociação foi publicado:

Você está negociando usando sua própria estratégia? Se as regras do sistema puderem ser formalmente descritas como algoritmos de software, é melhor confiar a negociação a um Expert Advisor automatizado. Um robô não precisa de sono ou comida e não está sujeito as fraquezas humanas. Neste artigo, nós mostramos como criar uma Especificação de Requisitos ao solicitar um robô de negociação no serviço Freelance.

Por que é importante ter uma Especificação de Requisitos bem preparada?

Ao encomendar ou desenvolver um robô de negociação, você precisa formular os requisitos: tarefas a serem executadas pelo robô, condições sob as quais ele irá operar, resposta a incidentes e situações de emergência, métodos de controle necessários, etc. Os robôs de negociação são programas, que devem seguir estritamente a lógica subjacente. Para programar um algoritmo de ações/rotinas, você deve preparar sua descrição detalhada.

A descrição de uma estratégia de negociação é fornecida na forma de Especificação de Requisitos. Quanto mais detalhes você fornecer, ocorrerá menos mal-entendidos entre você (o Cliente) e o programador (o Desenvolvedor da solicitação).

A parte importante da Especificação de Requisitos para um Expert Advisor é a apresentação das regras de negociação de forma bem clara. Mesmo que você não esteja solicitando um EA, mas queira desenvolver um, você deve começar com a definição dessas regras. Prepare a Especificação dos Requisitos e inclua os pontos relacionados ao teste/otimização do EA. Adicione hipóteses, na qual você usará para verificar a qualidade e a estabilidade de sua estratégia de negociação, descreva critérios para selecionar os parâmetros ideais e explique por que os considera importantes.

Inclua todos os estágios de desenvolvimento do EA na Especificação de Requisitos — isso tornará a ideia do algoritmo clara para o Desenvolvedor e ajudará você a recapitular os detalhes após semanas, meses ou mesmo anos mais tarde. A negociação algorítmica não é um hobby, mas um caminho de pesquisa minucioso, em que todos os estágios precisam ser documentados adequadamente. Um diário de desenvolvimento do sistema de negociação será muito útil sempre que você precisar testar uma nova ideia.

Exemplos de Especificação de Requisitos

Aqui está um exemplo de Especificação de Requisitos para o desenvolvimento do Expert Advisor Sample MACD, que está disponível no pacote padrão da MetaTrader 5.

1. A ideia do sistema de negociação é a seguinte: são realizadas as entradas à mercado quando a linha principal e de sinal do MACD se cruzam na direção atual da tendência.

2. A tendência é determinada com base na Média Móvel Exponencial com o período especificado (InpMATrendPeriod). Se o valor atual da EMA for maior que a anterior, a tendência é vista como de alta (ema_current > ema_previous). Alternativamente, se a EMA atual estiver abaixo da anterior, a tendência é considerada de baixa (ema_current < ema_previous).

3. Sinais de Negociação:

  • Sinal de compra: a linha principal do MACD cruza a linha de sinal para cima (macd_current>signal_current && macd_previous<signal_previous).
  • Sinal de venda: a linha MACD principal cruza a linha de sinal para baixo (macd_current<signal_current && macd_previous>signal_previous). A figura abaixo mostra os casos de Compra e Venda.


4. As posições são encerradas em sinais opostos: as posições de Compra são encerradas nos sinais de Venda e as posições de Venda são encerradas nos sinais de Compra.

5. As posições são abertas à preço de mercado, quando surge uma nova barra. O Expert Advisor deve ser testado usando os preços de abertura (Open), portanto, não há necessidade de adicionar funções para desabilitar as operações dentro da barra.

6. Filtros adicionais para abrir uma posição:

O valor absoluto da linha principal do MACD será usado para filtrar os sinais fracos: o sinal só é confirmado se esse valor for maior que open_level (em pontos). As condições de confirmação do sinal são as seguintes:

  • Confirmação de um sinal de compra: Abs(macd_current)>open_level
  • Confirmação de um sinal de venda: macd_current>open_level

7. Filtros adicionais para encerrar uma posição:

O valor absoluto da linha principal do MACD também será usado para confirmar o encerramento da posição: o sinal é confirmado se este valor for maior que close_level (em pontos). As condições de confirmação do sinal de encerramento são as seguintes:

  • Confirmação para encerrar as posições de Compra — macd_current>close_level
  • Confirmação para encerrar as posições de Venda — Abs(macd_current)>close_level

8. Encerramento por Take Profit — durante a abertura da posição, um nível de Take Profit é definido a uma distância fixa do preço de abertura, especificado em pontos. O valor é definido no parâmetro de entrada InpTakeProfit.

9. Gestão de posição

O TrailngStop é usado para proteger o lucro. O Stop Loss é definido se o lucro em pontos exceder o valor especificado no parâmetro InpTrailingStop. Se o preço continuar a se mover na direção do lucro, o Stop Loss deve ser arrastado na distância determinada. O Stop Loss não pode ser movido para a direção oposta (da perda), ou seja, o valor de Stop Loss não pode ser aumentado. Se nenhuma das ordens de proteção (Take Profit ou Stop Loss) for acionada, a posição deve ser fechada por um sinal oposto. Nenhum outro método de saída de posição está disponível.

Autor: MetaQuotes Software Corp.

Razão: