Escolar Documentos
Profissional Documentos
Cultura Documentos
Introdução
Todos os traders de Forex se deparam com a Ação do Preço em algum ponto. Esta não é uma mera técnica de
análise gráfica, mas todo um sistema para definir a possível orientação do movimento do preço no futuro.
Neste artigo vamos olhar para o padrão "Inside Bar" em detalhes e desenvolver um EA para o rastreamento e
realizaçao de operações de negociação neste padrão.
À primeira vista o método pode parecer um pouco complicado, mas na verdade não é. O método está
ganhando popularidade de ano para ano, pois as suas vantagens são evidentes, por exemplo: quando
comparado com os métodos que envolvem indicadores técnicos.
Este é um padrão de dois lados, pois pode indicar tanto uma reversão como uma continuação de tendência.
https://www.mql5.com/pt/articles/1771?print= 1/16
02/06/2020 MQL5 Site / Ação do Preço: Automatizando a Estratégia de Negociação "Inside Bar" - Artigos MQL4
Tendo isto em mente, vamos tentar definir uma verdadeira "Inside Bar". No gráfico acima podemos ver que
uma barra de alta foi formada após um acentuado movimento descendente, esta barra encontra-se
completamente envolvida dentro dos limites da anterior. O padrão é confirmado pelo fato de ter sido formado
no nível de suporte. A terceira confirmação é a ausência de plano lateral das outras barras. Uma vez que o
padrão satisfaça as regras, pode ser considerado genuíno.
https://www.mql5.com/pt/articles/1771?print= 2/16
02/06/2020 MQL5 Site / Ação do Preço: Automatizando a Estratégia de Negociação "Inside Bar" - Artigos MQL4
Primeiro, vamos considerar o exemplo acima para definir as regras do nível stop:
1. Definir uma ordem pendente Buy Stop ligeiramente acima Máxima do preço da Barra Mãe (apenas alguns
pontos a mais, para confirmação).
2. Definir um nível de Stop Loss abaixo do nível de suporte, mais ou menos na mínima de preço da Barra
Mãe. Esta é uma proteção adicional no caso de uma ordem pendente ser acionada.
3. Definir um nível de Take Profit ligeiramente menor do que o nível de resistência mais próximo.
Não se esqueça que uma "Inside Bar" pode ser seguida por uma inversão ou manutenção de tendência, ou seja,
precisamos de uma ordem stop de venda também.
https://www.mql5.com/pt/articles/1771?print= 3/16
02/06/2020 MQL5 Site / Ação do Preço: Automatizando a Estratégia de Negociação "Inside Bar" - Artigos MQL4
Primeiro, vamos considerar o exemplo acima para definir as regras do nível stop:
1. Definir uma ordem pendente Sell Stop ligeiramente abaixo da Mínima de Preço da Barra Mãe (apenas
alguns pontos abaixo, para confirmação).
2. Definir um nível de Stop Loss acima da Máxima de preço da Barra Mãe.
3. Definir um nível de Take Profit ligeiramente menor do que o nível de suporte mais próximo.
//+------------------------------------------------------------------+
//| InsideBar.mq4 |
//| Copyright 2015, Iglakov Dmitry. |
//| cjdmitri@gmail.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, Iglakov Dmitry."
#property link "cjdmitri@gmail.com"
#property version "1.00"
#property strict
//+------------------------------------------------------------------+
//| Função de inicialização do expert |
//+------------------------------------------------------------------+
int OnInit()
{
//---
//---
return(INIT_SUCCEEDED);
}
https://www.mql5.com/pt/articles/1771?print= 4/16
02/06/2020 MQL5 Site / Ação do Preço: Automatizando a Estratégia de Negociação "Inside Bar" - Artigos MQL4
//+------------------------------------------------------------------+
//| Função desinicialização do expert |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Função tick do Expert |
//+------------------------------------------------------------------+
void OnTick()
{
//---
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| InsideBar.mq4 |
//| Copyright 2015, Iglakov Dmitry. |
//| cjdmitri@gmail.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, Iglakov Dmitry."
#property link "cjdmitri@gmail.com"
#property version "1.00"
#property strict
https://www.mql5.com/pt/articles/1771?print= 5/16
02/06/2020 MQL5 Site / Ação do Preço: Automatizando a Estratégia de Negociação "Inside Bar" - Artigos MQL4
high2 = NormalizeDouble(iHigh(Symbol(), Period(), 2), Digits);
}
//+------------------------------------------------------------------+
Como exemplo, vamos considerar que uma Barra Mãe é de baixa(barra 2), enquanto uma Inside Bar é de
alta(barra 1). Vamos adicionar uma série de condições para o corpo da função OnTick():
void OnTick()
{
//--- Definir os preços das barras necessárias
open1 = NormalizeDouble(iOpen(Symbol(), Period(), 1), Digits);
open2 = NormalizeDouble(iOpen(Symbol(), Period(), 2), Digits);
close1 = NormalizeDouble(iClose(Symbol(), Period(), 1), Digits);
close2 = NormalizeDouble(iClose(Symbol(), Period(), 2), Digits);
low1 = NormalizeDouble(iLow(Symbol(), Period(), 1), Digits);
low2 = NormalizeDouble(iLow(Symbol(), Period(), 2), Digits);
high1 = NormalizeDouble(iHigh(Symbol(), Period(), 1), Digits);
high2 = NormalizeDouble(iHigh(Symbol(), Period(), 2), Digits);
// --- Se a segunda barra é de baixa, enquanto a primeira é de alta
if(open2>close2 && //Segunda barra é de baixa
close1>open1 && //Primeira barra é de alta
high2>high1 && //Máxima da segunda barra excede a Máxima da primeira
open2>close1 && //Abertura da segunda barra excede o Fechamento da primeira barra
low2<low1) //Mínima da segunda barra e menor do que a Mínima da primeira bar
{
//--- Listamos todas as condições que definem que a primeira barra está completam
}
}
Criar variáveis personalizáveis: ordens stop, desvio (slippage), o tempo de expiração da ordem, número
mágico do EA, lote de negociação. O stop loss pode ser omitido, uma vez que será definido de acordo
com as regras da "Inside Bar".
Digite as variáveis locais para normalizar a aparência das variáveis.
As ordens são ajustados a uma certa distância a partir dos valores dos preços das barras. Para
implementar isso, adicione a níveis da variavel Interval responsável pelo intervalo entre as
Máximas/Mínimas dos preços das barras e nível das ordens, bem como níveis de ordens pendentes.
Adicione a variável timeBarInside para evitar reabertura de ordens neste padrão.
Adicione a variável bar2size para assegurar que a Barra Mãe seja suficientemente grande, o que será
um bom sinal quando o mercado em andamento não é lateral.
//+------------------------------------------------------------------+
//| InsideBar.mq4 |
//| Copyright 2015, Iglakov Dmitry. |
//| cjdmitri@gmail.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, Iglakov Dmitry."
#property link "cjdmitri@gmail.com"
#property version "1.00"
#property strict
//+------------------------------------------------------------------------------------
//| A função abre ou define uma ordem
//| symbol - símbolo (ativo) onde uma operação de negociação é realizada.
//| cmd - uma operação (pode ser igual a qualquer um dos valores da negociação)
//| volume - quantidade de lotes.
//| price - Abertura do preço.
//| slippage - desvio máximo do preço para as ordens de compra ou venda do mercado.
//| stoploss - fechamento da posição quando um nível de perda é alcançado (0 se não
//| takeprofit - fechamento da posição quando um nível de lucro é alcançado (0 se não
//| comment - ordem comentada. A última parte do comentário pode ser alterada pelo
//| magic - número mágico da ordem Ele pode ser usado como uma ID definida pelo u
//| expiration - tempo de expiração da ordem pendente.
//| arrow_color - cor da seta aberta num gráfico. Se o parâmetro estiver ausente ou igu
//| a seta aberta não é exibida num gráfico.
//+------------------------------------------------------------------------------------
int OrderOpenF(string OO_symbol,
int OO_cmd,
double OO_volume,
double OO_price,
int OO_slippage,
double OO_stoploss,
double OO_takeprofit,
string OO_comment,
int OO_magic,
datetime OO_expiration,
color OO_arrow_color)
{
int result = -1; //resultado da abertura de uma ordem
int Error = 0; //erro ao abrir uma ordem
int attempt = 0; //quantidade de tentativas realizadas
//+------------------------------------------------------------------+
//| InsideBar.mq4 |
//| Copyright 2015, Iglakov Dmitry. |
//| cjdmitri@gmail.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, Iglakov Dmitry."
#property link "cjdmitri@gmail.com"
#property version "1.00"
#property strict
Agora, vamos realizar a compilação e verificar se há mensagens de erro no arquivo de registro (log).
https://www.mql5.com/pt/articles/1771?print= 13/16
02/06/2020 MQL5 Site / Ação do Preço: Automatizando a Estratégia de Negociação "Inside Bar" - Artigos MQL4
É hora de testar o nosso Expert Advisor. Vamos lançar no Testador de Estratégia e definir os parâmetros de
entrada. Eu especifiquei os parâmetros da seguinte forma:
https://www.mql5.com/pt/articles/1771?print= 14/16
02/06/2020 MQL5 Site / Ação do Preço: Automatizando a Estratégia de Negociação "Inside Bar" - Artigos MQL4
Otimização
Eu selecionei os seguintes parâmetros para a otimização:
https://www.mql5.com/pt/articles/1771?print= 15/16
02/06/2020 MQL5 Site / Ação do Preço: Automatizando a Estratégia de Negociação "Inside Bar" - Artigos MQL4
Conclusão
1. Nós desenvolvemos um Expert Advisor padrão pronto para ser usado, operando com o padrão "Inside
Bar".
2. Temos a certeza de que os padrões Ação de Preço podem trabalhar mesmo sem filtros adicionais na
entrada do mercado.
3. Nenhum truque (como Martingale ou média) foi utilizado.
4. O Rebaixamento foi minimizado através da definição correta das ordens de Stop Loss.
5. Nao foram utilizados indicadores técnicos. O robô de negociação é baseado exclusivamente na leitura
de um gráfico de "barras".
Obrigado por ler! Espero que este artigo tenha sido útil.
https://www.mql5.com/pt/articles/1771?print= 16/16