O EA trabalha com base no indicador Small_Inside_Bar que procura e exibe o padrão Price Action "Barra interna" no gráfico.
O Expert Advisor não exige a presença deste indicador, pois seus dados são calculados no Expert Advisor.
Ao encontrar o padrão altista "Barra interna", o EA abre uma posição para compra, enquanto ao encontrar um padrão baixista - uma posição para venda.
Existem três opções para abrir posições:
- Em cada sinal, é aberta a posição correspondente, são fechadas as posições de acordo com o stop-loss ou o take-profit (*) ;
- Em cada sinal, é aberta a posição correspondente, são fechadas as posições opostas (swing com abertura de uma ordem adicional na direção da posição já existente);
- No sinal, é aberta a posição correspondente, desde que não exista essa posição, a posição oposta é fechada (swing).
O Expert Advisor fornece a possibilidade de desativar a permissão para compras e vendas, assim como a reversão de trades, isto é, abrir uma venda, em vez de compra, e vice-versa.
* No modo de abertura de todas as posições em cada sinal, se o stop-loss e o take-profit não estiverem definidos, o EA não pode fechar posições independentemente. Nesta situação, no gráfico é exibida uma mensagem de aviso, indicando que nem o take-profit nem o stop-loss foram definidos e as posições podem ser fechadas apenas manualmente
Atenção, o Expert Advisor é projetado para fins de treinamento.
O Advisor possui 12 parâmetros configuráveis:
- Experts magic number - identificador único para as posições do EA;
- Mode of opening positions - modo de abertura de posições:
- Any position on each signal - qualquer posição em cada sinal (*);
- Positions on each signal in one direction (swing with a refill) - várias posições em uma direção (swing com abertura de uma ordem adicional na direção da posição já existente);
- Always one position (swing) - sempre apenas uma posição (swing).
- Long positions is enabled - permissão para abrir posições longas (comutador Yes/No);
- Short positions is enabled - permissão para abrir posições curtas (comutador Yes/No);
- Reverse trade - modo de reversão de trades (comutador Yes/No);
- Lots - volume de posições a serem abertas;
- Stop loss in points - tamano do stop-loss em pontos (0 - Stop-Loss ausente);
- Take profit in points - tamano do take-profit em pontos (0 - Take-Profit ausente);
- Slippage of price - derrapagem máxima permitida ao abrir uma posição;
- Multiplier spread for stops - número que fará com que o Expert Advisor multiplique o spread ao calcular a distância correta das ordens de stop (*);
- Waiting for environment update (in seconds) - tempo de espera em segundos para atualizar o ambiente de negociação (**);
- Number of attempts to get the state of the environment - número de tentativas para obter o ambiente de negociação certo (***).
* Ao posicionar ordens pendentes (assim como stop-loss e take-profit), há uma distância mínima permitida para a colocação de ordens de stop - StopLevel. Ou seja, a ordem pendente (ou stop-loss ou take-profit) deve ser colocado a uma distância menor em relação ao preço. O fato de o StopLevel estar definido como zero não implica sua ausência, mas indica que o StopLevel é flutuante. Neste caso, a distância mínima é geralmente spread*2, porém, às vezes, um spread duplo não é suficiente. Por isso é introduzido mais um parâmetro, isto é, o número pelo qual o Expert Advisor multiplicará o spread para calcular a distância mínima de ordens pendentes.
** Ao enviar um pedido de negociação para o servidor, às vezes há um atraso na execução que pode levar a uma contagem incorreta do número de posições de mercado. Se esse estado indefinido for detectado, o Expert Advisor esperará o número especificado de segundos e lerá o ambiente novamente.
*** O número dessas tentativas de espera de um tick é especificado nas configurações. Quando todas as tentativas de obter o ambiente correto estão esgotadas, o EA sai do processamento e aguarda o próximo tick. Nele, ele repetirá essas tentativas se, no momento da chegada do novo tick, o ambiente de negociação não ter sido atualizado.
Para testar a estratégia, foi realizado um teste com configurações padrão no período de 2016.01.04 a 2018.03.29, no EURUSD,H1, no modo 1 minute OHLC. Para encontrar melhores valores de stop-loss e de take-profit, eles foram otimizados no mesmo período e no mesmo modo.
O stop-loss ótimo é de 800 pontos, já o take-profit - 900:

