Assista a como baixar robôs de negociação gratuitos
Encontre-nos em Facebook!
Participe de nossa página de fãs
Script interessante?
Coloque um link para ele, e permita que outras pessoas também o avaliem
Você gostou do script?
Avalie seu funcionamento no terminal MetaTrader 5
Visualizações:
854
Avaliação:
(24)
Publicado:
2017.01.09 10:05
\MQL5\Experts\ \MQL5\Indicators\ \MQL5\Include\
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:

  1. É necessário transferir os dados do Expert Advisor para o indicador ou para outro Expert Advisor;
  2. É preciso fazer um indicador que exiba informações em várias janelas (ou na janela principal e subjanela);
  3. É 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.

  1. 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();

  2. 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 Stat

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 Alternância de gráficos

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 Trade on Timer

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 ZZ Fibo Trader

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.