Como codificar? - página 89

 
shanyang:
Descarreguei um indicador, que mostra a seta verde/vermelha quando chega o sinal de compra/venda.

agora eu quero programar minha própria EA com base neste indicador.

mas tenho apenas o arquivo ex4 deste indicador (sem código fonte)

Quero que minha EA leia a seta indicadora no quadro principal e envie o pedido de compra/venda(seta verde==>compra, seta vermelha==>venda)

há alguma abordagem para obter informações da seta indicadora no gráfico principal?

obrigado

Uma seta pode ser desenhada como valor de um dos buffers do indicador; neste caso, a cor nas propriedades do indicador deve lhe dar o número do buffer, que é suficiente para chamá-lo pela função "ICustom()"; Você também precisa preencher todos os valores da guia "Input" como parâmetros da chamada ICustom().

Se a seta não for um valor de um buffer, ela é um objeto. Selecione-a para ver suas propriedades. Na maioria das vezes, é fácil entender como os nomes são gerados e então será possível usar ObjectFind().

O EA deve observar ObjectsTotal(), e somente quando ele for incrementado poderá tentar reconhecer o último objeto. Se o nome não for conhecido, a EA não pode usar OjectFind() e tem que escanear todos os objetos para identificar o último. O último objeto não é obviamente aquele com o índice mais alto (ObjectsTotal() - 1), mas é melhor começar a escanear a partir do índice mais alto, pois provavelmente você pode quebrar mais rápido. Agora você tem que comparar o OBJPROP_TIME1 get by ObjectGet() com Time[0] ou Time[1] por exemplo, e verificar a cor ou o tipo de seta, ou um substrato do nome, para identificar um sinal de compra ou de venda.

Parece complexo, mas não é. Tente escrevê-lo e não hesite em pedir mais esclarecimentos se necessário.

 
Big Be:
A resposta anterior estava incompleta.

Se o indicador for padrão no MT4, ele aparecerá no local normal. Se for chamado pelo iCustom, ele também aparecerá, se estiver codificado corretamente.

Os seguintes EAs têm até mesmo os indicadores mostrados na janela do gráfico. Estude-os para aprender como:

bouncingPipEA_mpowerV42.mq4

bouncingPipEA_BigBear_v23.mq4

Grande Seja

Obrigado Big Be, vou checá-los.

 
Michel:
Uma seta pode ser desenhada como valor de um dos amortecedores do indicador; neste caso, a cor nas propriedades do indicador deve dar-lhe o número do amortecedor, que é suficiente para chamá-lo pela função "ICustom()"; Você também precisa preencher todos os valores da guia "Input" como parâmetros da chamada ICustom().

Se a flecha não for um valor de um tampão, ela é um objeto. Selecione-a para ver suas propriedades. Na maioria das vezes, é fácil entender como os nomes são gerados e então será possível usar ObjectFind().

O EA deve observar ObjectsTotal(), e somente quando ele for incrementado poderá tentar reconhecer o último objeto. Se o nome não for conhecido, a EA não pode usar OjectFind() e tem que escanear todos os objetos para identificar o último. O último objeto não é obviamente aquele com o índice mais alto (ObjectsTotal() - 1), mas é melhor começar a escanear a partir do índice mais alto, pois provavelmente você pode quebrar mais rápido. Agora você tem que comparar o OBJPROP_TIME1 get by ObjectGet() com Time[0] ou Time[1] por exemplo, e verificar a cor ou o tipo de seta, ou um substrato do nome, para identificar um sinal de compra ou de venda.

Parece complexo, mas não é. Tente escrevê-lo e não hesite em pedir mais esclarecimentos se necessário.

Grande explicação Michel ... 100% mais completo do que o meu !

Obrigado por quem está interessado.

FerruFx

 

mudança ind em uma EA

eu gostaria de mudar o indicador em uma EA que tenho, mas não sei como fazer isso

não sou um programador de fato não tenho muito a ver com este tipo de coisa, abaixo está a única parte relacionada ao indicador que quero mudar o DiMA para o AMF(14)

quero comprar @ >60 e vender@<40

double diClose0=iClose(NULL,5,0);

double diMA1=iMA(NULL,5,7,0,MODE_SMA,PRICE_OPEN,0);

double diClose2=iClose(NULL,5,0);

double diMA3=iMA(NULL,5,6,0,MODE_SMA,PRICE_OPEN,0);

if(AccountFreeMargin()<(1000*Lots)){

Imprimir("Nós não temos dinheiro. Margem Livre = ", AccountFreeMargin());

devolução(0);

}

se (!ExistPosições()){

se ((diClose0<diMA1)){

OpenBuy();

return(0);

}

se ((diClose2>diMA3)){

OpenSell();

return(0);

}

}

alguém poderia, por favor, me ajudar

denis

 

Favor afixar seu indicador AMF. Preciso ver os amortecedores. Sob que lógica você vai querer trocar os indicadores?

Dave

 

oi dave não posso afixar o indicador MFI não está na pasta de indicadores você pode obter o indicador na barra de ferramentas sob volumes, eu não sei o que você quer dizer com que lógica.

denis

 
denis68:
oi dave eu não posso colocar o indicador MFI ele não está na pasta de indicadores você pode obter o indicador na barra de ferramentas sob volumes, eu não sei o que você quer dizer com que lógica.denis

Este aqui? Índice de Facilitação de Mercado

Arquivos anexados:
mfi.mq4  3 kb
 

oi linuxer eu não acho que seja esse, mas obrigado de qualquer forma, o que eu tenho é chamado de índice de fluxo de dinheiro.

denis

 
denis68:
oi linuxer eu não acho que seja esse, mas obrigado de qualquer forma, o que eu tenho é chamado de índice de fluxo de dinheiro.denis

Desculpe, escrevi mal o nome, é esse.

Money Flow Index.mq4 aka MFI.mq4