Ola, com faço para que um indicador possa aparecer no gráfico sendo que seu código está em uma classe e compilado no próprio EA?
Eu acompanhei (https://www.mql5.com/pt/articles/4602) um post ensinando como internalizar o código do indicador no EA porém não consigo fazer com que o indicador apareça no gráfico.
Os cálculos e as entradas sõ feitas corretamente mas não é exibido o indicador no gráfico como o Robo do VIlela o One que tem vários indicadores e eles estão todos codificados dentro o EA e tem a opção de
serem mostrados no gráfico.
Isso é interessante para a conferência das entradas e se caso o programados desejar esconder sua estratégia poderá fazer tb.
Utilize essas funções para adicionar e remover os indicadores do gráfico.
https://www.mql5.com/pt/docs/standardlibrary/cchart/cchartindicatoradd
https://www.mql5.com/pt/docs/standardlibrary/cchart/cchartindicatordelete
- www.mql5.com
Utilize essas funções para adicionar e remover os indicadores do gráfico.
https://www.mql5.com/pt/docs/standardlibrary/cchart/cchartindicatoradd
https://www.mql5.com/pt/docs/standardlibrary/cchart/cchartindicatordelete
Ola, acredito que essas funções são usadas quando se utiliza a adição de indicadores com iMA, iMACD. Caso use por exmplo o iCuston, ainda assim pra rodar o EA teria que se ter um arquivo separado do indicador.
O que eu quero fazer é codificar todos os indicadores dentro do EA, mesmo aqueles customizados e ter a possibilidade de que ele apareçam no gráfico. O robô do Vilela por exemplo faz isso. Agora como ele faz?
Olá,
as funções de plotagem só podem ser usadas em indicadores, portanto não tem como plotar o gráfico dos indicadores construídos dentro de um EA.
Estou vindo recentemente para o forum, e não pude de notar a sua duvida, é algo super simples de ser resolvido:
SIM é possivel adicionar indicadores no EA de forma que eles venham a aparecem no grafico ( seja em na Janela atual ou em uma Sub Janela ) 😁👍
Para ficar claro, de como se faz adicione no cabeçario do seu EA o seguinte codigo, um detalhe, MUDE conforme o necessario a STRING indicada como def_Resource para ela apontar para o arquivo SUPPORT.EX5 caso contrario o MT5 irá indicar falhar ao tentar carregar o INDICADOR...//+------------------------------------------------------------------+ #define def_Resource "\\Experts\\Pessoal\\Robots\\Support.ex5" #define def_ObjName "_Chart_" + __FILE__ //+------------------------------------------------------------------+
O codigo do arquivo SUPPORT.EX5 é o seguinte, ele pode ser o codigo de um indicador qualquer, mas aqui é apenas para exemplificar como se faz 😁👍:
//+------------------------------------------------------------------+ //| Support.mq5 | //| Daniel Jose | //+------------------------------------------------------------------+ #property copyright "Daniel Jose 25-01-2020 (A)" #property version "1.00" #property description "Este arquivo serve apenas como Suporte ao Indicador" #property indicator_chart_window #property indicator_plots 0 //+------------------------------------------------------------------+ int OnInit() { IndicatorSetString(INDICATOR_SHORTNAME, "Support"); return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const int begin, const double &price[]) { return(rates_total); } //+------------------------------------------------------------------+Crie o codigo normalmente do seu EA e adicione dentro do EA mais um pequeno trecho de codigo
//+------------------------------------------------------------------+ bool InitCustom(const string szInfo) { ResetLastError(); if ((handleChartIndicator = iCustom(NULL, 0, def_Resource)) == INVALID_HANDLE) return false; IdChartIndicator = (int) ChartGetInteger(0, CHART_WINDOWS_TOTAL); if (!ChartIndicatorAdd(0, IdChartIndicator, handleChartIndicator))return false; if (!ObjectCreate(0, def_ObjName, OBJ_CHART, IdChartIndicator, 0, 0)) return false; ObjectSetString(0, def_ObjName, OBJPROP_SYMBOL, szInfo); return true; } //+------------------------------------------------------------------+
Este ultimo trecho é que será o grande barato, estude ele, modifique-o e entenda exatamente o que ele esta fazendo pois, diferente do que muitos não entendem, é que podemos SIM fazer qualquer coisa no MT5 graças ao fato de que a MQL5 ser praticamente a linguagem C++ ...
Só para de dar um direcionamento, o codigo InitCustom irá criar criar uma SUB JANELA no grafico atual e irá apresentar um outro grafico dentro desta SUB JANELA, o simbolo que iremos visualizar é passado como parametro ....
Se você entender estes trechos de codigo irá conseguir adicionar qualquer coisa ao seu EA ... e BOA SORTE ... 😁👍
- 2020.03.12
- www.mql5.com
Olá Daniel,
só contribuindo com seu post.
O comando #define é uma diretiva de compilação para macro substituição.
O comando #resource é uma diretiva de compilação que diz ao compilador para incluir um recurso ao EX5 final, desse modo o EX5 pode ser distribuído sem distribuir o recurso.
O camando ChartIndicadorAdd() insere o indicador especificado no handle na janela gráfica.
//+------------------------------------------------------------------+ #define def_Resource "\\Experts\\Pessoal\\Robots\\Support.ex5" #resource "\\Indicators\\MyIndicators\\WeisWaves.ex5" void OnStart(void) { Print(def_Resource); int weisWavesHandle = iCustom(_Symbol, 0, "::Indicators\\MyIndicators\\WeisWaves", 0); if(weisWavesHandle == INVALID_HANDLE) { Print(__FUNCTION__ + ": Erro ao abrir weisWavesHandle: ", GetLastError()); } ChartIndicatorAdd(0, 1, weisWavesHandle); } //+------------------------------------------------------------------+
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Ola, com faço para que um indicador possa aparecer no gráfico sendo que seu código está em uma classe e compilado no próprio EA?
Eu acompanhei (https://www.mql5.com/pt/articles/4602) um post ensinando como internalizar o código do indicador no EA porém não consigo fazer com que o indicador apareça no gráfico.
Os cálculos e as entradas sõ feitas corretamente mas não é exibido o indicador no gráfico como o Robo do VIlela o One que tem vários indicadores e eles estão todos codificados dentro o EA e tem a opção de
serem mostrados no gráfico.
Isso é interessante para a conferência das entradas e se caso o programados desejar esconder sua estratégia poderá fazer tb.