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
Interchange - biblioteca para MetaTrader 5
- Visualizações:
- 885
- 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
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áficosO script alterna todas os gráficos abertos após um determinado intervalo. Você também pode exibir apenas gráficos de determinados símbolos.
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 TraderZZ 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.