Participe de nossa página de fãs
Coloque um link para ele, e permita que outras pessoas também o avaliem
Avalie seu funcionamento no terminal MetaTrader 5
- Visualizações:
- 876
- Avaliação:
- Publicado:
- 2017.01.09 10:05
-
Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance
Por que é necessário:
Esta classe ajudará a organizar o intercâmbio de dados entre seus programas, caso você desenvolva para o "Mercado" ou não queira usar os DLLs do sistema.
Para outros casos, há maneiras mais rápidas e fiáveis para vincular aplicativos. O intercâmbio é implementado por uma estrutura simples.
Variantes de uso:
- É necessário transferir os dados do Expert Advisor para o indicador ou para outro Expert Advisor;
- É preciso fazer um indicador que exiba informações em várias janelas (ou na janela principal e subjanela);
- É necessário, fazer a visualização dos valores calculados para o Expert Advisor - em cujo interior são realizados todos os cálculos necessários -.
Como trabalhar com isto:
Vou citar um exemplo de transferência de dados a partir de um Expert Advisor para um indicador.
- No Expert Advisor
1.1. Criamos a instância de classe:
CInterchange Exp_buffer;
1.2. Na OnInit(), definimos o prefixo do nome das variáveis globais. Para evitar conflitos com outras instâncias da classe, é necessário especificar um nome único para cada uma:
Exp_buffer.SetPrefixNameForSave(_Symbol+"_"+(string)_Period);
1.3. O algoritmo é implementado através de eventos personalizados. É indispensável adicionar a seguinte cadeia de caracteres no manipulador OnChartEvent():
Exp_buffer.OnEvent(id,lparam,dparam,sparam);
Uma vez que os dados para a transferência estejam prontos (como exemplo temos a estrutura Exp_Data), será necessário chamar o método:
Exp_buffer.SendDataStart(Exp_Data);
1.4. Não se esqueça de destruir a instância de classe ao anular a inicialização do programa:Exp_buffer.Destroy();
- No indicador
2.1. Criamos a instância de classe:
CInterchange Ind_buffer;
2.2. Na OnInit(), definimos o prefixo do nome das variáveis globais. Ele deve corresponder à fonte, isto é, ser o mesmo que no passo 1.1.
Ind_buffer.SetPrefixNameForLoad(_Symbol+"_"+(string)_Period);
2.3. Para iniciar o processo de obtenção de dados, é necessário chamar o método GetDataStart() com o parâmetro Ind_data (estrutura na qual irá ser feita a entrada de dados a partir do Expert Advisor):
Ind_buffer.GetDataStart(Ind_data);
2.4. O algoritmo é implementado através de eventos personalizados. É necessário adicionar à cadeia de caracteres seguinte ao manipulador OnChartEvent():
Ind_buffer.OnEvent(id,lparam,dparam,sparam);
Se o processo de transferência for concluído - método:
Ind_buffer.GetDataFinish(Ind_data)
retornará true.
2.5. Não se esqueça de destruir a instância de classe ao anular a inicialização do programa:
Ind_buffer.Destroy();
Vídeo com exemplo de trabalho:
Traduzido do russo pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/ru/code/12786
![Stat](https://c.mql5.com/i/code/script.png)
O script exibe no gráfico breves estatísticas da negociação do instrumento para o período definido, isto é, o número de transações, lucro, fator de lucro.
![Alternância de gráficos](https://c.mql5.com/i/code/script.png)
O script alterna todas os gráficos abertos após um determinado intervalo. Você também pode exibir apenas gráficos de determinados símbolos.
![Trade on Timer](https://c.mql5.com/i/code/expert.png)
Código simples que ilustra a negociação baseado no evento OnTimer. Ao ser ativado o temporizador, o robô entra em operações de compra e venda com stop-loss e take-profit fixos.
![ZZ Fibo Trader](https://c.mql5.com/i/code/expert.png)
ZZ Fibo Trader é uma simples ilustração da utilização do indicador ZZ Fibo, ele plota linhas de Fibonacci nas ondas de impulso longas do ZigZag. Além disso, o algoritmo ilustra o trabalho do sistema parabólico de deslocamento do stop-loss.