Função ICustom - página 20

 
Jeeves:
Poderia alguma alma gentil me livrar de minha miséria e refazer as coisas abaixo para permitir o uso do indicador 'Advanced_ADX'. Sei que requer o uso da função 'icustom', mas tenho uma idéia de como fazê-lo.

//h1 dados

duplo h1adm = iadm(NULL,PERÍODO_H1,2,MODE_CLOSE);

//h4 dados

duplo h4adx = iadx(NULL,PERÍODO_H4,2,MODE_CLOSE);

//d1 dados

duplo d1adx = iadx(NULL,PERÍODO_D1,2,MODE_CLOSE);

//defina a cor

cor_h1, cor_h4, cor_d1;

//define string

seta_h1, seta_h4, seta_d1;

//h1 up trend

se (h1adx < Bid ) { color_h1 = ColorUpGood; }

//h1 tendência de queda

se (h1adx > Bid ) { color_h1 = ColorDownGood; }

//h4 up trend

se (h4adx < Bid ) { color_h4 = ColorUpGood; }

//h4 tendência de queda

se (h4adx > Bid ) { color_h4 = ColorDownGood; }

//d1 up trend

se (d1adx < Bid ) { color_d1 = ColorUpGood; }

//d1 down trend

se (d1adx > Bid ) { color_d1 = ColorDownGood; }

usar algo como isto :

duplo h1adp=iADX(NULL,PERÍODO_H1,PERÍODO_AXPERÍODO,PREÇO_CLOSE,MODE_PLUSDI, 0)

double h1adm=iADX(NULL,PERÍODO_H1,ADXPeriod,PRICE_CLOSE,MODE_MINUSDI,0);

if (h1adp > h1adm ) { color_h1 = ColorUpGood; }

if (h1adp < h1adm ) { color_h1 = ColorDownGood; }

e faça isso para todos os períodos de tempo que você quiser testar (você pode querer substituir o 0 no final por algum outro número - 0 => barra atual, 1 => primeira barra fechada e assim por diante)

 

Problemas de programação 2 Perguntas pls Ajuda (arquivos de log)(Indicador personalizado/ Ind padrão

Oi espero encontrar alguém que possa me ajudar a resolver este problema, eu ficaria muito grato

  • Situação inicial:
  • Desenvolvemos um indicador de filtro multicanal baseado em diferentes cálculos de indicadores padrão da Metatrader.

    Este indicador foi concebido para ser usado em nosso consultor especializado. O desafio é,

    que, em cada tick, todos os cálculos baseados nestes indicadores padrão causam inúmeras entradas de registros.

    Por causa disso, nossos negócios são atrasados.

    É possível evitar as entradas de registros?

  • Nossa tentativa de resolver o problema:

Temos indicadores personalizados programados como os indicadores padrão. Tentamos mudar o cálculo do curso de standrad utilizado pelos diferentes indicadores. Mas estes não trazem o resultado expacta.

Usando o cálculo do curso padrão, o indicador padrão traz o mesmo resultado que o indicador personalizado. Mas mudando o cálculo do curso

induzir a diferenças em relação ao indicador personalizado e ao indicador padrão correspondente?

É possível obter indicadores personalizados que se comportam exatamente como os indicadores stnadard (não importa qual o curso de cálculo escolhido)?

 
spongebozz:
Oi espero encontrar alguém que possa me ajudar a resolver este problema, eu ficaria muito grato
  • Situação inicial:
  • Desenvolvemos um indicador de filtro multicanal baseado em diferentes cálculos de indicadores padrão da Metatrader.

    Este indicador foi concebido para ser usado em nosso consultor especializado. O desafio é,

    que, em cada tick, todos os cálculos baseados nestes indicadores padrão causam inúmeras entradas de registros.

    Por causa disso, nossos negócios são atrasados.

    É possível evitar as entradas de registros?

  • Nossa tentativa de resolver o problema:

Temos indicadores personalizados programados como os indicadores padrão. Tentamos mudar o cálculo do curso de standrad utilizado pelos diferentes indicadores. Mas estes não trazem o resultado expacta.

Usando o cálculo do curso padrão, o indicador padrão traz o mesmo resultado que o indicador personalizado. Mas mudando o cálculo do curso

induzir a diferenças em relação ao indicador personalizado e ao indicador padrão correspondente?

É possível obter indicadores personalizados que se comportam exatamente como os indicadores padrão (não importa qual o curso de cálculo escolhido)?

Olá Spongebozz,

Isto é para a primeira parte de suas perguntas...sobre troncos muito grandes e retardando seu sistema...

Os logs são muito provavelmente criados a partir de declarações PRINT...muitos deles...seja em suas EA e/ou em seus indicadores...

Você pode remover ou apagar as declarações PRINT colocando 2 cortes à direita (//) na frente de cada declaração PRINT que você deseja parar de imprimir para o log.

Exemplo:

// Imprimir ("Este é um exemplo"); O // irá apagar a linha de código e não imprimir para o log...

Se você quiser...TODAS...declarações PRINT em branco...você pode fazer uma busca/substituição...

Encontrar: Imprimir ...

Substituir: // Imprimir

O tipo de padrão indicador ou personalizado... não deve importar...

Só importa se tiver muitas declarações PRINT que você precisa remover ou deixar em branco...

E mais tarde você pode sempre voltar e desmarcar as declarações PRINT que quiser... e deixar as outras em branco ou apagá-las completamente.

Espero que isto o ajude,

Robert

 

Olá, pessoal!

Estou fazendo um EA para Opções Binárias e quero receber "sinais" de um indicador a ser recebido em meu EA. Como vocês provavelmente sabem, as Opções Binárias só fazem um PUT ou um CALL, então eu quero que o iCustom apenas escute meu indicador e faça as postagens e chamadas em meu EA. Faz sentido?

Então, o que eu preciso fazer?

No indi eu só preciso colocar algo como isto:

// PUT

if (AlignsForAput == true){

PutBuffer[] = 1;

}

// CALL

if (AlignsForAcall == true){

CallBuffer[] = 1;

}

PutBuffer[] = 0;

CallBuffer[] = 0;

Por favor, ajude-me a escrever um bom exemplo de como fazer isto funcionar. O que eu preciso escrever e ONDE eu escrevo?

Obrigado!

 

Gostaria muito que alguém pudesse escrever um exemplo simples de como o código indiano e o código EA devem ser! Por favor, veja acima sobre minha pergunta.

 
SantaClaus:
Gostaria muito que alguém pudesse escrever um exemplo simples de como o código indiano e o código EA devem ser! Por favor, veja acima sobre minha pergunta.

Para os indicadores, verifique isto : https://www.mql5.com/en/forum/173032 e isto https://www.mql5.com/en/forum/173054

Para EAs verifique isto : https://www.mql5.com/en/forum/173136 e isto : https://www.mql5.com/en/forum/173171

 

Então você está me dizendo que existem bons exemplos de como usar o iCustom para os fins acima?

 
SantaClaus:
Então você está me dizendo que existem bons exemplos de como usar o iCustom para os fins acima?

Sim, é exatamente isso que estou dizendo (você pediu "um simples exemplo de como o código indiano e o código EA devem ser" - essas linhas podem ajudá-lo)

 
mladen:
Sim, é exatamente isso que estou dizendo (você pediu "um simples exemplo de como o código indi e o código EA devem ser" - esses tópicos podem ajudá-lo).

Não, nenhum dos links explicou como eu uso o iCustom como eu gostaria na minha primeira pergunta.

 
SantaClaus:
Não, nenhum dos links explicou como eu uso o iCustom como eu gostaria na minha primeira pergunta.

Você está postando em um tópico que explica em detalhes como usar iCostom() (tudo que você tem que fazer é ir para a primeira página deste tópico) e você não consegue encontrar como fazer isso?

Aqui está uma versão curta :

_________________________

iCustom

Calcula o indicador personalizado especificado e retorna seu valor.

[TABELA] duplo iCustom(

símbolo de corda, // símbolo

no tempo, // no tempo

nome da cadeia, // caminho/nome do indicador personalizado do programa compilado

... ... // parâmetros de entrada de indicadores personalizados (se necessário)

modo int, // índice de linha

int shift// turno

);[/TD];[/TD].

[/TR]

[/TABELA]

Parâmetros

símbolo

Nome do símbolo sobre os dados do qual o indicador será calculado. NULL significa o símbolo atual.

cronograma

Cronograma. Pode ser qualquer um dos valores de enumeração de ENUM_TIMEFRAMES. 0 significa o período de tempo atual do gráfico.

nome

Indicador personalizado compilado nome do programa, relativo ao diretório de indicadores raiz (MQL4/Indicators/). Se o indicador estiver localizado no subdiretório, por exemplo, em MQL4/Indicadores/Exemplos, seu nome deve ser especificado como"Nome_do_indicador" (dupla barra invertida "{\i1}" deve ser especificada como separador em vez de um único).

...

Parâmetros de entrada de indicadores personalizados, separados por vírgulas.

Os parâmetros passados e sua ordem devem corresponder com a ordem de declaração e o tipo de variáveis externas do indicador personalizado. Se os valores dos parâmetros de entrada não forem especificados, serão usados os valores padrão.

modo

Índice de linha. Pode ser de 0 a 7 e deve corresponder com o índice, especificado na chamada da função SetIndexBuffer().

shift

Índice do valor retirado do buffer de indicadores (deslocamento em relação à barra atual a quantidade indicada de períodos atrás).

Valor retornado

Valor numérico do indicador personalizado especificado. O indicador personalizado deve ser compilado (arquivo *.EX4) e estar no diretório MQL4 do terminal.

Exemplo:

[TABELA]

[TR]

[TD] double val=iCustom(NULL,0,"SampleInd",13,1,0);[/TABLE]

_________________________

PS: o "Índice de linha". Pode ser de 0 a 7" é o erro que o metatrader ainda tem em sua documentação (deve ser "Line index. Pode ser de 0 a 511"), mas enquanto eles não mudarem oficialmente sua documentação, eu me aterei à sua definição da função iCustom()

Feliz codificação

Razão: