Ondas de Elliott - O Artigo 260 por: Roman Martynyuk



  • Olá  fiz está noite (07/06/2017) um avanço em relação ao indicador cujo link segue:

    https://www.mql5.com/pt/articl...

    Parece ser interessante no entanto requer mais atenção em sua instalação, e ainda assim há um erro em sua programação e eu não tenho conhecimento o suficiente para solucioná-lo.

    Então abro este tópico para que se possa discuti-lo, e que se possa surgir alguém que possa solucioná-lo.

    Baixando o arquivo que está no final da página do link mencionado acima: "elliott_wave_en.zip" e descompactando-o iremos encontrar uma pasta chamada: MQL5,  dentro desta pasta encontra-se mais duas outras pastas:

    a)  Include,

    b) Experts.

    Vamos primeiro na pasta include, dentro dela há a pasta: Elliott wave.

    Se quiser até pode entrar nesta pasta e ver o que há lá dentro, mas para por aqui, e saia da pasta.

    Esta pasta. "Elliott wave" deve ser copiada integralmente e postada dentro do MT5, vá a pasta "MQL5" em seguida na pasta "Include" cole aqui dentro.

    Certifique-se se dentro de "Include" voce tem as pastas solicitadas pelo código do Roman MartynyuK  - o autor do indicador.

    Vou citar um trecho do código:

    "

    9    #include <Object.mqh>
    10  #include <Arrays\List.mqh>
    11  #include <Arrays\ArrayObj.mqh>
    12  #include <Arrays\ArrayInt.mqh>
    13  #include <Arrays\ArrayDouble.mqh>
    14  #include <Arrays\ArrayString.mqh>
    15  #include <ChartObjects\ChartObjectsTxtControls.mqh>
    16  #include <Elliott wave\Data structures.mqh>
    17  #include <Elliott wave\Analysis functions.mqh>
    18  #include <Elliott wave\Rules functions.mqh>

    "

    A linha  9 (nove) determina que a máquina carregue para a memória o arquivo "Object.mqh"   OBS: este deve estar solto na pasta "Include".

    a linha 10 (Dez) determina o carregamento do arquivo "List.mqh"  OBS: ele está escrito de uma forma diferente, certo? Motivo: " Procure dentro da pasta - Include -  a pasta - Arrays - e dentro desta o arquivo - List.mqh. "  Assim o computador executa: #include <Arrays\List.mqh>.

    Agora por analogia observe os comandos das linhas 16,17 e 18.  Motivo pelo qual inicialmente devemos copiar integralmente a pasta "Elliott wave" e postar dentro de "Include"

    Estando todos os arquivos em seu devido lugar, voltemos ao local indicador que baixamos e voltemos em MQL5 onde iniciamos: a) e b). e então vamos acessar a pata "Experts"

    Lá dentro está o código do indicador: "Elliott_wave_en.mq5" e o próprio indicador já compilado: "Elliott_wave_en.ex5" em tese só precisamos deste último, no entanto, agora iremos ao erro do qual eu não tenho conhecimento necessário para a solução:

    Copie o arquivo ""Elliott_wave_en.mq5"" para dentro do programa MT5.

    Pode colocá-lo dentro da pasta "Indicators" ou dentro da pasta "Experts" a seu critério, uma vez que o MT5 o entende como sendo um Robô.

    O próximo passo é abri o seu terminal MT5 e abrir o "Editor de Linguagem de programação MetaQuotes"  Tecle   F4  ao abrir o MT5.

    Surge o "Meta Editor"  na aba "Navegador" procure onde o colou e clique duas vezes para abrir o Código em seguida clique em "Compilar" ou tecle F7.

    Ao compilar e em na Caixa de diálogo "descrição" Observe que haverá um erro lá no final das descrições.

    'NodeInfo' - conversion is not accessible because of inheritance access    Elliott_wave_en.mq5    657    22

    Este erro eu não sei qual é a solução, no entanto ele está na linha 657 do código.

    Vou citar a região do erro:

    "

    649   // if the interval has not been marked-up earlier, then record its data into the array NodeInfoArray
    650   TNodeInfo *NodeInfo=new TNodeInfo;
    651   NodeInfo.IndexStart=IndexStart;
    652   NodeInfo.IndexFinish=IndexFinish;
    653   NodeInfo.ValueStart=ValueStart;
    654   NodeInfo.ValueFinish=ValueFinish;
    655   NodeInfo.Subwaves=Subwaves;
    656   NodeInfo.Node=Node;
    657   NodeInfoArray.Add(NodeInfo);
    658   return(false);
    659  }

    "

    O que eu fiz foi comentar a referida linha de modo que o compilador a ignore ficando como segue a baixo:

    "

    649   // if the interval has not been marked-up earlier, then record its data into the array NodeInfoArray

    650   TNodeInfo *NodeInfo=new TNodeInfo;

    651   NodeInfo.IndexStart=IndexStart;

    652   NodeInfo.IndexFinish=IndexFinish;

    653   NodeInfo.ValueStart=ValueStart;

    654   NodeInfo.ValueFinish=ValueFinish;

    655   NodeInfo.Subwaves=Subwaves;

    656   NodeInfo.Node=Node;

    657   // NodeInfoArray.Add(NodeInfo);

    658   return(false);

    659  }

    "

    Feito isso o indicador pode ser adicionado em um gráfico utilizei o gráfico diário da PETR4

    Conclusão:

    O indicador foi compilado e adicionado ao gráfico.

    Teclei em:

    Begin Analysis   e em seguida em  Show results

    isso após uns 15 minutos e nada ter surgido na tela, e ter ido ler as discussões do artigo em:

    https://www.mql5.com/pt/forum/...

    Ao que me parece "Não sei exatamente onde li" mas tem uma informação de que o computador pode levar horas para processar as informações.

    Neste caso antes de teclar nos botões acima, teclei a combinação de teclas: "Ctrl + Shift + ESC"  aciona o gerenciador de tarefas e nele cliquei em "Desempenho" observei por alguns instantes e em seguida teclei no MT5 nos referidos botões do indicador, aparentemente nada ocorreu, voltei a observar o Gerenciador de tarefas os gráficos começaram lentamente a evoluir e então concluir que a máquina havia iniciado uma tarefa e estava em execução.

    Deixei a noite ligado e de manha surpresa!

    Uma caixa de diálogo do Windows com os dizeres que não me lembro exatamente:

    Memória insuficiente do computador, feche os arquivos  (...)  MetaQuoltes.

    Sendo (...) a parte que não me lembro.

    O meu computador não é lá grandes coisas não e tem 6GB de memória.

    Agora passo a Bola para a Comunidade do PORTAL do TRADER.



Entre para responder
 

Parece que sua conexão com Fórum Portal do Trader caiu, por favor aguarde enquanto tentamos reconectar.