Desenhando um objeto

Para adicionar comentários, por favor Faça o login ou registrar
Japa Trader Br
170
Japa Trader Br  

Ola,


Tenho uma duvida para criacao de objetos no grafico usando a função "ObjectCreate"

Dependendo do objeto, é necessário 2 ou 3 pontos de ancoragem. Vi exemplos que mostram a criação a partir da entrada (digitando) os pontos de ancoragem (dia e tempo). Porem eu gostaria de saber se é possivel definir clicando diretamente no grafico os pontos de ancoragem.


Vou citar um exemplo:

Esse exemplo cria um triangulo na tela, porem eu gostaria de clicar na tela para definir os pontos de ancoragem.

Alguem poderia me dar uma luz onde procurar como fazer?

sandrolho
64
sandrolho  

Ola , Existem varias formas de conseguir chegar nesta ideia sua..., 


Eu fiz outro dia um indicador, pra simular o Pointfix... 
Ele faz o mesmo que a ferramenta porem nao congela a tela ( caucula apenas fibos , canal de alta ou baixa )..


uma ideia que fiz foi :


1 - ao clicar na tecla P - Habilita para desenhar
   2 - Apos habilitado pra desenho, clicar na tecla F

        3 - absorvera os cliques do mouse ,

           ponto 1 -> click1  

           ponto 2 -> click2

           ponto 3 -> click3 

com estes 3 pontos eu criava o fibonachi... 


o mesmo pra canal de baixa ou alta , so que colocava outro habilitador de desenho 

Canal de alta - A

Canal de Baxia - B


depois clicando na tecla P, desliga o modo de Desenho. 

Japa Trader Br
170
Japa Trader Br  
sandrolho:

Ola , Existem varias formas de conseguir chegar nesta ideia sua..., 


Eu fiz outro dia um indicador, pra simular o Pointfix... 
Ele faz o mesmo que a ferramenta porem nao congela a tela ( caucula apenas fibos , canal de alta ou baixa )..


uma ideia que fiz foi :


1 - ao clicar na tecla P - Habilita para desenhar
   2 - Apos habilitado pra desenho, clicar na tecla F

        3 - absorvera os cliques do mouse ,

           ponto 1 -> click1  

           ponto 2 -> click2

           ponto 3 -> click3 

com estes 3 pontos eu criava o fibonachi... 


o mesmo pra canal de baixa ou alta , so que colocava outro habilitador de desenho 

Canal de alta - A

Canal de Baxia - B


depois clicando na tecla P, desliga o modo de Desenho. 

Show de bola, se parece muito com o que eu desejo. Sua alternativa de ativar clicando em "P" foi otima.

Mas no seu exemplo ao clicar P > F, ele simplesmente chamava a expansao de fibo ( o proprio comando) ou via código ele chamada toda a função de createobject fibo?


Há algo que vc possa compartilhar? Queria saber como fazer ele me pedir os cliques.


Obrigado.

sandrolho
64
sandrolho  
Japa Trader Br:

Show de bola, se parece muito com o que eu desejo. Sua alternativa de ativar clicando em "P" foi otima.

Mas no seu exemplo ao clicar P > F, ele simplesmente chamava a expansao de fibo ( o proprio comando) ou via código ele chamada toda a função de createobject fibo?


Há algo que vc possa compartilhar? Queria saber como fazer ele me pedir os cliques.


Obrigado.

Isso é parte do que fiz,..  Eu acho q eu usava as coordenadas do mouse e a medida que ia navegando os alvos se projetavam e reposicionada com estas simples linhas... 

basta fazer disso uma funcao, receber os parametros e colocar la no 

oncalculate,otimer   ( nao coloque coisas graficas no ontick, pq fica muito pesado o refreh na hora de volatilidade )... 


Segue abaixo ... boa sorte !!

ObjectDelete(0,"FIBOMAX");

ObjectCreate(0,"FIBOMAX",OBJ_FIBOARC,0,TEMPO_INICIAL,ALVO1,TEMPOFINAL,ALVO2);

ObjectSetInteger(0,"FIBOMAX",OBJPROP_ELLIPSE,true); 

ObjectSetInteger(0,"FIBOMAX",OBJPROP_SELECTABLE,true); 

ObjectSetInteger(0,"FIBOMAX",OBJPROP_SELECTED,true); 

ObjectSetInteger(0,"FIBOMAX",OBJPROP_LEVELCOLOR,38.2,clrGreen); 

ObjectSetInteger(0,"FIBOMAX",OBJPROP_LEVELCOLOR,50,clrGreen); 

ObjectSetInteger(0,"FIBOMAX",OBJPROP_LEVELCOLOR,61,clrGreen); 

Japa Trader Br
170
Japa Trader Br  
sandrolho:

Isso é parte do que fiz,..  Eu acho q eu usava as coordenadas do mouse e a medida que ia navegando os alvos se projetavam e reposicionada com estas simples linhas... 

basta fazer disso uma funcao, receber os parametros e colocar la no 

oncalculate,otimer   ( nao coloque coisas graficas no ontick, pq fica muito pesado o refreh na hora de volatilidade )... 


Segue abaixo ... boa sorte !!

ObjectDelete(0,"FIBOMAX");

ObjectCreate(0,"FIBOMAX",OBJ_FIBOARC,0,TEMPO_INICIAL,ALVO1,TEMPOFINAL,ALVO2);

ObjectSetInteger(0,"FIBOMAX",OBJPROP_ELLIPSE,true); 

ObjectSetInteger(0,"FIBOMAX",OBJPROP_SELECTABLE,true); 

ObjectSetInteger(0,"FIBOMAX",OBJPROP_SELECTED,true); 

ObjectSetInteger(0,"FIBOMAX",OBJPROP_LEVELCOLOR,38.2,clrGreen); 

ObjectSetInteger(0,"FIBOMAX",OBJPROP_LEVELCOLOR,50,clrGreen); 

ObjectSetInteger(0,"FIBOMAX",OBJPROP_LEVELCOLOR,61,clrGreen); 

Vou tentar aqui.


Obrigado pela ajuda!

Samuel Manoel De Souza
1294
Samuel Manoel De Souza  
Japa Trader Br:

Vou tentar aqui.


Obrigado pela ajuda!

Fiz uma vez um chart trading...igual do Profit usando a tecla CTRL e SHIFT. Eu fazia que enquanto a tecla estiver pressionado mostra objetos marcando o nivel de preço onde colocar a ordem e quando solta a tecla os objectos desaparecem. Ainda se a tecla estiver pressionada quando clicar no gráfico colocar uma ordem no nivel onde o cursor estiver posicional.
Você pode pegar essa mesma ideia e fazer um contador. Enquanto a tecla estiver pressional cada vez que clicar cria um ponto de ancoragem e se soltar a tecla antes de colocar todos os pontos cancelar a criação do objeto.
Como foi dito acima há várias formas de fazer isso. Infelizmente não tenho mais o código pra mostrar.

Japa Trader Br
170
Japa Trader Br  
Samuel Manoel De Souza:

Fiz uma vez um chart trading...igual do Profit usando a tecla CTRL e SHIFT. Eu fazia que enquanto a tecla estiver pressionado mostra objetos marcando o nivel de preço onde colocar a ordem e quando solta a tecla os objectos desaparecem. Ainda se a tecla estiver pressionada quando clicar no gráfico colocar uma ordem no nivel onde o cursor estiver posicional.
Você pode pegar essa mesma ideia e fazer um contador. Enquanto a tecla estiver pressional cada vez que clicar cria um ponto de ancoragem e se soltar a tecla antes de colocar todos os pontos cancelar a criação do objeto.
Como foi dito acima há várias formas de fazer isso. Infelizmente não tenho mais o código pra mostrar.

Irei pesquisar.


Obrigado!

sandrolho
64
sandrolho  
Japa Trader Br:

Irei pesquisar.


Obrigado!

Da uma olhada neste codigo


https://www.mql5.com/pt/docs/event_handlers/onchartevent


caso queira usar ctrl + shift,..  parece bem simples de adaptar para o que vc quer... 


no switch , onde é tratado o botao control ou shift pressinado,... coloca funcoes para captar o mouse_click ou mouse_move


Boa sorte !!!

Documentação sobre MQL5: Manipulação de eventos / OnChartEvent
Documentação sobre MQL5: Manipulação de eventos / OnChartEvent
  • www.mql5.com
//|                                          OnChartEvent_Sample.mq5 | //|                        Copyright 2018, MetaQuotes Software Corp. | //|                                             https://www.mql5.com | "Exemplo do ouvinte dos eventos do gráfico e do gerador de eventos personalizados" //
Japa Trader Br
170
Japa Trader Br  
sandrolho:

Da uma olhada neste codigo


https://www.mql5.com/pt/docs/event_handlers/onchartevent


caso queira usar ctrl + shift,..  parece bem simples de adaptar para o que vc quer... 


no switch , onde é tratado o botao control ou shift pressinado,... coloca funcoes para captar o mouse_click ou mouse_move


Boa sorte !!!

Incrivel.

Sei o basico para leves manipulações de código e indicadores, mas nada que envolva criação.


Muito obrigado por dar o caminho das pedras.

Para adicionar comentários, por favor Faça o login ou registrar