Tem como? Existe literatura ou documentação sobre como implementar isso?
Olá.
Utilize _Symbol para comparar o ativo que você deseja.
https://www.mql5.com/pt/docs/predefined/_symbol
Exemplo:
if(StringSubstr(_Symbol,0,3)="WDO")
![Documentação sobre MQL5: Variáveis Predefinidas / _Symbol Documentação sobre MQL5: Variáveis Predefinidas / _Symbol](https://c.mql5.com/36/33/documenta-o-sobre-mql5-vari-veis.png)
- www.mql5.com
Olá.
Utilize _Symbol para comparar o ativo que você deseja.
https://www.mql5.com/pt/docs/predefined/_symbol
Exemplo:
if(StringSubstr(_Symbol,0,3)="WDO")
Obrigado pela pronta resposta mas _Symbol e Symbol() se referem ao ativo do grafico. eu quero utilizar um Symbol que não é o do grafico. Por ex. PETR4,
VALE3 e ITUB4, verificando seus preços e colocando, modificando e cancelando ordens de acordo com programação que tem em consideração
informações desses 3 ativos ou ate de um 4o.
Inclusive os topicos de ajuda do manual MT5 são tão enxutas que há horas que parecem atrapalhar mais do
que ajudar. Se eu colocar o seguinte:
Symbol[0] = "NOME_ATIVO_1";
Symbol[1] = "NOME_ATIVO_2";
Symbol[2] = "NOME_ATIVO_3";
RSIHandle1 = iRSI(Symbol[0],
PeriodoGrafRSI[0],
RSI_Period[0],
RSI_Price[0]
);
RSIHandle2 =
iRSI(Symbol[1],
PeriodoGrafRSI[1],
RSI_Period[1],
RSI_Price[1]
);
RSIHandle3 = iRSI(Symbol[2],
PeriodoGrafRSI[2],
RSI_Period[2],
RSI_Price[2]
);
isso estaria ok? (evidentemente não declarei as arrays, mas acho que explica a ideia)
posso criar handles, observar n
ativos a partir do meu EA? Operar com eles ou para operar tem que ser o do grafico?
A resposta é sim tem como, eu faço isso desde 2016. E como tudo relacionado a MQL5 não há quase ou nada de literatura relacionado.
Grato pela pronta resposta Jonathan!
Vc tem links para literatura que possa compartilhar ou exemplos que vc tenha feitos pra ver como é feito?
Quero montar um EA que opere n pares de opções sempre em função do valor do ativo pai e o B&S da opção (o B&S eu calcularia na hora via função já que não existe no MT5 nada nativo).
Mas como implementar controle de ativos diferentes ao do grafico atual? (Por exemplo: Grafico com o ativo pai e EA operando suas opções mas não o ativo pai.)
Grato desde já
Pablo
Tem como? Existe literatura ou documentação sobre como implementar isso?
Juan, tem um EA meu pra Forex que opera quantos ativos você possa imaginar. Eu já te liberei acesso de leitura do código para que você possa estudar o mesmo. Basta atualizar o repositório no seu Meta Editor que ele vai aparecer pra você.
Juan, tem um EA meu pra Forex que opera quantos ativos você possa imaginar. Eu já te liberei acesso de leitura do código para que você possa estudar o mesmo. Basta atualizar o repositório no seu Meta Editor que ele vai aparecer pra você.
Grato pela pronta resposta Jonathan!
Vc tem links para literatura que possa compartilhar ou exemplos que vc tenha feitos pra ver como é feito?
Quero montar um EA que opere n pares de opções sempre em função do valor do ativo pai e o B&S da opção (o B&S eu calcularia na hora via função já que não existe no MT5 nada nativo).
Mas como implementar controle de ativos diferentes ao do grafico atual? (Por exemplo: Grafico com o ativo pai e EA operando suas opções mas não o ativo pai.)
Grato desde já
Pablo
Pablo,
Eu faço um processador de eventos e com isso eu ganho a flexibilidade de apenas estender esse modulo num mesmo EA monitorando diversos ativos.
abaixo um fluxo que organizei para fazer esse processo que te falei.
Esse processador de eventos esta centralizado em uma classe de estratégia genérica e com isso eu só herdo ela e faço uma implementação de cada estratégia, ai tenho a liberdade de replicar essa estratégia para diversos ativos e tbm ter diversas estratégias rodando para um ou N ativos num só gráfico. Com isso economizo em processamento e ganho em escalabilidade, pois a forma tradicional sugerida pela arquitetura da MetaQuotes te limita a fazer um EA <-> para uma estratégia <-> para um único gráfico. Logo se temos algumas estratégias e ou alguns EA's temos que abrir diversos gráficos, o que faz o processamento da maquina ir nas "nuvens".
#include "MODULO.mqh" class CEstrategia : public CModuleProcessor { ... }
int OnInit() { //--- Configurar e adicionar à lista de estratégias CEstrategia CEstrategia *estrategiaX=new CStrategia (); estrategiaX.ExpertMagic(1111); estrategiaX.Timeframe(Period()); // posso passa o nome do ativo "GBPUSD", apenas precisa estar listado na janela de negociação estrategiaX.ExpertSymbol(Symbol()); estrategiaX.ExpertName("EstrategiaX-V1"); estrategiaX.SetX(x); estrategiaX.SetY(y); if(!Gerenciador.AddStrategy(estrategiaX)) delete estrategiaX; }
Espero ter ajudado.
Jonathan
Obrigado pela pronta resposta mas _Symbol e Symbol() se referem ao ativo do grafico. eu quero utilizar um Symbol que não é o do grafico. Por ex.
PETR4, VALE3 e ITUB4, verificando seus preços e colocando, modificando e cancelando ordens de acordo com programação que tem em
consideração informações desses 3 ativos ou ate de um 4o.
Inclusive os topicos de ajuda do manual MT5 são tão enxutas que há horas que parecem
atrapalhar mais do que ajudar. Se eu colocar o seguinte:
Symbol[0] = "NOME_ATIVO_1";
Symbol[1] = "NOME_ATIVO_2";
Symbol[2] = "NOME_ATIVO_3";
RSIHandle1 =
iRSI(Symbol[0],
PeriodoGrafRSI[0],
RSI_Period[0],
RSI_Price[0]
);
RSIHandle2 = iRSI(Symbol[1],
PeriodoGrafRSI[1],
RSI_Period[1],
RSI_Price[1]
);
RSIHandle3 = iRSI(Symbol[2],
PeriodoGrafRSI[2],
RSI_Period[2],
RSI_Price[2]
);
isso estaria ok? (evidentemente não declarei as arrays, mas acho que explica a ideia)
posso criar handles, observar n
ativos a partir do meu EA? Operar com eles ou para operar tem que ser o do grafico?
Acredito que funcione sim. Já utilizei em um EA do WDO buscando informações do WIN, mas somente para buscar informações e não para ativar compras e vendas do WIN, por exemplo.
Pablo,
Eu faço um processador de eventos e com isso eu ganho a flexibilidade de apenas estender esse modulo num mesmo EA monitorando diversos ativos.
abaixo um fluxo que organizei para fazer esse processo que te falei.
Esse processador de eventos esta centralizado em uma classe de estratégia genérica e com isso e só herdo ela e faço uma implementação de cada estratégia, ai tenho a liberdade de replicar essa estratégia para diversos ativos e tbm ter diversas estratégias rodando para um ou N ativos num só gráfico. Com isso economizo em processamento e ganho em escalabilidade, pois a forma tradicional sugerida pela arquitetura da MetaQuotes te limita a fazer um EA <-> para uma estratégia <-> para um único gráfico. Logo se temos algumas estratégias ou alguns EA's temos que abrir diversos gráficos, o que faz o processamento da maquina ir nas "nuvens".
Espero ter ajudado.
Jonathan
Poxa Jonathan, muito obrigado pela resposta e a ideia! Estou longe de implementar classes nesse nivel ainda mas entendi perfeitamente como vc faz. Vc tem razão sobre o processamento ir as nuvens com um robo por grafico, ja rodei um mesmo robo em 30 janelas e ativos, o robo controlando um ativo em cada janela, mas é duro no computador e preciso de teloes imensos (kkkkkkk). Por isso quero rodar tudo num robo so numa janela só.
Valeu!
Tem como? Existe literatura ou documentação sobre como implementar isso?
Procure no youtube o canal Tutoriais MQL5, há várias aulas gratuitas de programação nessa linguagem :)
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- 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