Adicionando cor a um indicador

 

Eu gostaria de imprimir um quadrado vermelho (pequeno) no gráfico quando o próximo período de tempo mais alto estiver caindo. E um quadrado branco, se estiver subindo.

Como posso fazer isso? Uma vez que eu consiga descobrir isso, posso então adicionar outros quadros de tempo e barras diferentes.

meu código até agora é:

// 30 min. de corrente

duplo aberto.30.0 =iCustom(NULL,30,"Heiken Ashi",0,2,0); //Previous Open

duplo fechamento.30.0 =iCustom(NULL,30, "Heiken Ashi",0,3,0); //Previous Close

bool Up.30.0 = (fechar.30.0>abrir.30.0);

bool Down.30.0 = (fechar.30.0<abrir.30.0);

Comentário ("\n 30 min corrente para cima ou para baixo " + Acima.30.0 +" "+ Abaixo.30.0);

Mas ao invés do comentário de ter um "0" ou um "1", quero que mostre um quadrado ou ponto vermelho ou branco.


Qualquer ajuda seria bem-vinda... Não consigo encontrar nada ao pesquisar esta visão ou a web.

 
mrchuckw:

Eu gostaria de imprimir um quadrado vermelho (pequeno) no gráfico quando o próximo período de tempo mais alto estiver caindo. E um quadrado branco, se estiver subindo.

Como posso fazer isso? Uma vez que eu consiga descobrir isso, posso então adicionar outros quadros de tempo e barras diferentes.

meu código até agora é:

// 30 min. de corrente

duplo aberto.30.0 =iCustom(NULL,30, "Heiken Ashi",0,2,0); //Previous Open

duplo fechamento.30.0 =iCustom(NULL,30, "Heiken Ashi",0,3,0); //Previous Close

bool Up.30.0 = (fechar.30.0>abrir.30.0);

bool Down.30.0 = (fechar.30.0<abrir.30.0);

Comentário ("\n 30 min corrente para cima ou para baixo " + Acima.30.0 +" "+ Abaixo.30.0);

Mas ao invés do comentário de ter um "0" ou um "1", quero que mostre um quadrado ou ponto vermelho ou branco.


Qualquer ajuda seria bem-vinda... Não consigo encontrar nada ao pesquisar esta visão ou a web.

Olá mrchuckw,

Procure neste site e em outros fóruns FX por EA's que tenham código ObjectCreate...

Você usa ObjectCreate para colocar marcas coloridas onde você as quer.

Espero que isto ajude,

Robert


 
O indicador de cor utiliza dois amortecedores. Defina um para o valor e o outro para o valor_vazio. Veja algum código indicador na base de código
 
Obrigado Robert!
 

Estou usando o seguinte código... por que ele não está colocando um retângulo branco na minha tabela?

ObjectCreate("quadrado",OBJ_RECTANGLE,0,0,0,0);

ObjectSet("quadrado",OBJPROP_XDISTANCE,193);

ObjectSet("quadrado",OBJPROP_YDISTANCE,48);

ObjectSet("quadrado",OBJPROP_COLOR,Branco);

 

mrchuckw:

Estou usando o seguinte código... por que ele não está colocando um retângulo branco na minha tabela?

ObjectCreate("quadrado",OBJ_RECTANGLE,0,0,0,0);

ObjectSet("quadrado",OBJPROP_XDISTANCE,193);

ObjectSet("quadrado",OBJPROP_YDISTANCE,48);

ObjectSet("quadrado",OBJPROP_COLOR,Branco);

OBJ_RECTÂNGULO 16 Rectângulo. Utiliza 2 coordenadas. Uma coordenada é tempo e preço . . so . .

ObjectCreate("square",OBJ_RECTANGLE, 0, datetime time1, double price1, datetime time2, double price2);

ObjectSet("square",OBJPROP_COLOR,White);



Você precisa preencher valores para . . data/hora1, preço duplo1, data/hora2, preço duplo2

Ou talvez você queira usar um Rótulo, OBJ_LABEL e depois usar um Wingding para a praça ? https://docs.mql4.com/constants/wingdings

 

Ok... eu acho. Eu não quero que seja orientado por data/hora... Eu não acho.

Aqui está o que eu quero. No final do gráfico, sob a barra atual, quero colocar um quadrado (wingding 110 ?) que eu possa preencher com

vermelho, se o próximo período de subida for para baixo, ou preencher com branco se for para cima.

Então, quando aquela barra fechar, e a próxima barra começar, quero que a praça se mova sob a barra anterior, e uma nova praça sob a nova barra...

isso faz sentido?

Então, como seria a linha ObjectCreate()? Como colocá-la no gráfico onde eu quero, ou devo usar uma janela separada?

Obrigado por sua ajuda.

 
mrchuckw:

Ok... eu acho. Eu não quero que seja orientado por data/hora... Eu não acho.

Aqui está o que eu quero. No final do gráfico, sob a barra atual, quero colocar um quadrado (wingding 110 ?) que eu possa preencher com

vermelho, se o próximo período de subida for para baixo, ou preencher com branco se for para cima.

Então, quando aquela barra fechar, e a próxima barra começar, quero que a praça se mova sob a barra anterior, e uma nova praça sob a nova barra...

isso faz sentido?

Então, como seria a linha ObjectCreate()? Como colocá-la no gráfico onde eu quero, ou devo usar uma janela separada?

Obrigado por sua ajuda.

Ah OK, então você quer um quadrado debaixo de cada barra, seja branco ou vermelho dependendo de um indicador . . . não use Objetos, use buffers Indicador. ( https://docs.mql4.com/customind )

Criar 2 amortecedores indicadores, um para os quadrados vermelhos e outro para os quadrados brancos, definir os amortecedores para ter valores vazios ( SetIndexEmptyValue(índice int, valor duplo) ) para obter o quadrado sob a barra usar as barras Valor baixo - 10 pips . . isto é basicamente o que WHRoeder estava obtendo.

 
Mas se eu o colocar 10 pips abaixo do preço, ele não vai saltar? talvez eu devesse colocá-lo em um windo separado. Quero a praça no mesmo lugar no gráfico, não importa o que as barras estejam fazendo.
 
mrchuckw:
Mas se eu o colocar 10 pips abaixo do preço, ele não vai saltar? talvez eu devesse colocá-lo em um windo separado.
Você pode colocá-lo em uma janela separada se quiser . . . o que eu disse foi 10 pips abaixo do preço mínimo da barra . . não abaixo do preço atual. A maior parte do código que você precisa é comum, se você o fizer em uma janela separada é fácil mudá-lo para uma posição abaixo da barra em seguida . .
 
OK... deixe-me brincar com isso por um tempo. Agradeço toda a ajuda!
Razão: