English Русский 中文 Español Deutsch 日本語
Um método para o desenho dos níveis de apoio/resistência

Um método para o desenho dos níveis de apoio/resistência

MetaTrader 4Exemplos | 18 fevereiro 2016, 15:17
843 0
Slobodov Gleb
Slobodov Gleb

Introdução

Os níveis de apoio/resistência são uma ferramenta básica usada por quase todos os traders. Estes níveis podem ser encontrados na maioria dos prognósticos, e todo trader deve ser capaz de detectá-los de modo independente.

Este artigo descreve o processo de criação de um script simples para a detecção dos níveis de apoio/resistência. Ele foi escrito para iniciantes, e você encontrará uma explicação detalhada de cada estágio do processo. Contudo, apesar do script ser bastante simples, o artigo também será útil para traders avançados e usuários da plataforma MetaTrader 4. Ele contém exemplos da exportação de dados para o formato tabular, da importação da tabela para o Microsoft Excel, e do delineamento de gráficos para a realização de uma análise mais detalhada.

Níveis de apoio/resistência

Abaixo, você pode ver os dois níveis de apoio/resistência.


Nós não vamos entrar em grandes detalhes em relação ao significado deste termo. Na maioria dos livros que descrevem os níveis de apoio/resistência, você poderá encontrar a afirmação de que, na maior parte do tempo, as cotas variam entre estas duas linhas e raramente as cruzam.


Você pode encontrar evidências disso na figura abaixo.


Vamos tirar vantagem dessa característica. Para detectar os níveis de apoio/resistência, nós temos que contar o número de intersecções das cotas e do nível de preço.

Os cálculos não são muito difíceis. Como resultado, nós temos uma correlação entre cada preço e o número de barras que cruzaram este preço. Agora nós encontramos o problema da forma de exibição desses resultados. Não é possível fazer isso no MetaTrader usando o gráfico indicador, pois não precisamos de um gráfico de preços sobre o tempo, mas de um gráfico de barras sobre o preço. É por isso que nós precisamos exportar os dados e analisá-los em um programa diferente.

Criação de um script

Primeiro, nós precisamos criar um novo script.




Para fazer isso, vamos até a janela "navegador", clicar com o botão direito sobre a seção "scripts", e então selecionar o comando "criar". Um nova janela irá aparecer. Assegure-se de que o tipo de programa que você irá criar é o script, e então clique sobre o botão "próximo".



Em seguida, você deverá inserir o nome do script e os seus parâmetros. Após clicar sobre o botão "finalizar", você pode começar a escrever o script.



Escrita do script

O código fonte do script não contém mais do que vinte linhas:

//+------------------------------------------------------------------+
//|                                                 ExportLevels.mq4 |
//|                      Copyright © 2006, MetaQuotes Software Corp. |
//|                                        https://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, MetaQuotes Software Corp."
#property link      "https://www.metaquotes.net"
 
#property show_inputs
extern int MaxLimit = 1000;
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
   int handle;
   handle = FileOpen("FindLevels.txt", FILE_CSV|FILE_WRITE, '\t');
   FileWrite(handle, "Cost", "Bars Num");
   double d1 = Low[iLowest(NULL, 0, MODE_LOW, MaxLimit, 0)];
   double d2 = High[iHighest(NULL, 0, MODE_HIGH, MaxLimit, 0)];
   for (double d = d1; d d2; d += 0.0001)
     {
       double a = 0.0;
       for(int i = 0; i MaxLimit; i++)
           if(d > Low[i] && d High[i])
               a+=1;   
       FileWrite(handle, d, a);
     } 
   FileClose(handle);
   return(0);
  }
//+------------------------------------------------------------------+

O script consiste em uma única função, start(). Ela é executada sempre que você chama o script. Abaixo você pode encontrar uma explicação detalhada do código fonte:

#property show_inputs
extern int MaxLimit = 1000;

A primeira linha especifica que, antes de executar o script, o usuário precisará selecionar parâmetros externos. De fato, há um único parâmetro definido na segunda linha. O MaxLimit lida com o número de barras do histórico que são usadas pelo programa. Ele é 1000 por padrão, mas o usuário pode alterá-lo a qualquer momento.

   int handle;
   handle = FileOpen("FindLevels.txt", FILE_CSV|FILE_WRITE, '\t');
   FileWrite(handle, "Cost", "Bars Num");

As primeiras duas linhas da função start() tratam da abertura do arquivo “FindLevels.txt” com os parâmetros FILE_CSV (isso significa que o arquivo é uma tabela de texto) e FILE_WRITE (isso significa que o arquivo é aberto para a escrita). O parâmetro ‘\t’ indica que os dígitos do arquivo serão divididos com tabulação. Nós teremos duas colunas no arquivo: a primeira é "Cost" (custo) - o preço, a segunda é "Bars Num" - o número de barras cruzando este preço. Usando a função FileWrite(), nós escrevemos os nomes das colunas no arquivo “FindLevels. txt".

   double d1 = Low[iLowest(NULL, 0, MODE_LOW, MaxLimit, 0)];
   double d2 = High[iHighest(NULL, 0, MODE_HIGH, MaxLimit, 0)];

Em seguida, nós encontramos o preço mínimo e o preço máximo, da barra zero até a barra com o número MaxLimit no histórico. O iLowest() mostra o índice da barra, no qual o preço mais baixo pode ser encontrado. Um Low[] é o valor de preço mais baixo para esta barra. Siga o mesmo procedimento em relação ao iHighest() e High[].

   for (double d = d1; d <= d2; d += 0.0001)
     {
       double a = 0.0;
       for(int i = 0; i < MaxLimit; i++)
           if(d > Low[i] && d < High[i])
               a+=1;   
       FileWrite(handle, d, a);
     }
Após isso, nós temos um ciclo "para". Este ciclo executa os preços, do preço mínimo d1 ao preço máximo d2, com o passo de 0,0001. A variável "a" é o número das barras cruzando o preço "d". O segundo ciclo fechado executa as barras MaxLimit do histórico e verifica se elas cruzam o preço "d". Após o fim do ciclo fechado, o procedimento FileWrite escreve o preço "d" e o número de barras "a" no arquivo.
   FileClose(handle);
   return(0);

Ao fim do procedimento start(), nós fechamos o arquivo e finalizamos o procedimento através do uso da função return(). Após termos escrito o script, nós podemos compilá-lo clicando sobre o botão "compilar", e executá-lo no MetaTrader, a partir da seção "scripts" da janela "navegador".


Arquivo com Excel

Após chamar o script, o programa cria o arquivo “FindLevels.txt” na pasta “\experts\arquivos\”. Vamos abri-lo com o Excel. Para fazer isso, nós precisamos executar o Microsoft Excel e clicar sobre o botão "abrir", e então selecionar o tipo de arquivo "arquivos de texto", encontrar o arquivo de que precisamos e clicar sobre o botão "abrir".


Nós não precisamos fazer alterações nas duas primeiras janelas, simplesmente clique sobre o botão "próximo".


Na terceira janela, clique sobre o botão "avançado", selecione o símbolo do ponto final (".") para o ponto decimal e o símbolo ' (apóstrofe) para o ponto milesimal. Em seguida, clique em "ok" e "finalizar".



Como resultado, temos as duas colunas no Excel: Agora nós temos que delinear o gráfico. Escolha "inserir"->"gráfico".




A última coisa que temos que fazer é selecionar o tipo do futuro gráfico e o seu tipo de exibição.


Finalmente, nós temos o gráfico de barras sobre o preço.


Você pode ver que os mínimos do gráfico estão localizados nos pontos 1,2582, 1,2616, 1,2644, 1,2705, 1,2712, 1,2730, 1,2744, 1,2850, 1,2879. Estes são os níveis de apoio/resistência.


Nós podemos compara os resultados de 10.11.2006 com os da data anterior, 9.10. 2006:

RES 4 $1,2880 o máximo de 31 de agosto
RES 3 $1,2865 1,618 o balanço alvo após a queda de 1,2795 para 1,2680
RES 2 $1,2830 Fibonacci 76,4% de 1,2940 para 1,2485
RES 1 $1,2805 a resistência horária
Nível atual: 1,2760
SUP 1 $1,2745 a linha da tendência ascendente de 3 semanas
SUP 2 $1,2730 Fibonacci 61,8% de 1,2680 para 1,2820
SUP 3 $1,2715 Fibonacci 76,4% de 1.2680 para 1.2820
SUP 4 $1,2680 o mínimo de 3 de novembro


Como podemos ver, nós temos uma boa correlação entre o gráfico e os prognósticos. Isso significa que os níveis que encontramos realmente são os níveis de apoio/resistência!

Traduzido do russo pela MetaQuotes Ltd.
Artigo original: https://www.mql5.com/ru/articles/1439

Arquivos anexados |
ExportLevels.mq4 (1.33 KB)
Exibição dos níveis de apoio/resistência Exibição dos níveis de apoio/resistência
O artigo trata da detecção e indicação dos níveis de apoio/resistência no programa MetaTrader 4. O indicador conveniente e universal é baseado em um algoritmo simples. O artigo lida com um tópico bastante útil: a criação de um indicador simples, capaz de exibir os resultados de diferentes períodos de tempo em um espaço de trabalho.
Negociações com o uso do Linux Negociações com o uso do Linux
O artigo descreve como usar indicadores para monitorar a situação dos mercados financeiros online.
Filtragem de acordo com o histórico Filtragem de acordo com o histórico
O artigo descreve o uso de negociações virtuais como uma parte integral do filtro de abertura de negociações.
Psicologia individual de um trader Psicologia individual de um trader
Um retrato do comportamento de um trader no mercado financeiro. O menu do próprio autor, do livro "Как играть и выигрывать на бирже" ("Como especular e lucrar na bolsa de valores"), de A. Elder.