Sou um novato e quero ter o HA em uma nova janela. - página 2

 
Você desenha em uma janela separada especificando o número da janela na função ObjectCreate().
 

Olá Phy

Tentei a partir desta manhã, nada aparece na tela. Seu código seria de grande ajuda para que eu possa começar a me concentrar nos outros

eu usei a criação de objetos

com o tipo como retângulo, grande e pequeno, nada aparece na tela. eu não sei como especificar o tempo e os níveis de preço e obter um padrão de castiçal

O Pleasse fornece seu código seria muito apreciado ou um exemplo para obter um candelabro usando o funciton de criação de objetos

 
Aqui está uma amostra:

Ele desenha barras simples.

#property indicator_separate_window
 
#property indicator_buffers 2
#property indicator_color1 CLR_NONE
#property indicator_color2 CLR_NONE
 
 
double high[];
double low[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
    SetIndexBuffer(0, high);
    SetIndexBuffer(1, low);
    SetIndexStyle(0, DRAW_LINE);
    SetIndexStyle(1, DRAW_LINE);
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
 
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start(){
  
   string basename = "test";
   IndicatorShortName(basename);
   int window = WindowFind(basename);
  
   for (int i = Bars-100; i >= 0; i--){
  
       // these two indexes are used to control the size of the subwindow
       // they are not visible
       high[i] = High[i];
       low[i] = Low[i];
 
       string name = basename+i;
  
       if(ObjectFind(name) != -1) ObjectDelete(name);
       ObjectCreate(name, OBJ_TREND, window, Time[i], High[i], Time[i], Low[i]);
       ObjectSet(name, OBJPROP_RAY, 0);
   }
   return(0);
  }
 

Olá Phy agradece pelo código, mas o código não cria barras de velas, ele cria uma barra de linha. Eu preciso de algo para barras de velas plzz...zzz,>

Estou tão intrigado por que é tão difícil criar uma barra de castiçal usando estas funções?

Por favor, ajude-me

obrigado por seu apoio

 
Portanto, acrescente o corpo:


...
...
string name = basename+i;
  
   if(ObjectFind(name) != -1) ObjectDelete(name);
       ObjectCreate(name, OBJ_TREND, window, Time[i], High[i], Time[i], Low[i]);
       ObjectSet(name, OBJPROP_RAY, 0);
   }
   name = basename+"Body"+i;
  
   if(ObjectFind(name) != -1) ObjectDelete(name);
       ObjectCreate(name, OBJ_TREND, window, Time[i], Open[i], Time[i], Close[i]);
       ObjectSet(name, OBJPROP_WIDTH, 3);
       ObjectSet(name, OBJPROP_RAY, 0);

   }
...
...
 

Por fim, muito obrigado... Pô-lo a funcionar, mas o corpo da vela está todo contrabandeado em cima e em baixo por quê? qualquer idéia? e pior por volta das últimas 20 velas...


#janela_indicadora de propriedade_separar

#property indicator_buffers 5
#indicador de propriedade_color1 CLR_NONE
#indicador de propriedade_color2 CLR_NONE


duplo alto[];
duplo baixo[];
duplo aberto[];
duplo fechamento[];
//+------------------------------------------------------------------+
//| Função de inicialização do indicador personalizado |
//+------------------------------------------------------------------+
int init()
{
SetIndexStyle(0, DRAW_LINE);
SetIndexStyle(1, DRAW_LINE);
SetIndexStyle(2, DRAW_LINE);
SetIndexStyle(3, DRAW_LINE);
SetIndexBuffer(0, alto);

SetIndexBuffer(1, baixo);
SetIndexBuffer(2, aberto);
SetIndexBuffer(3, fechar);


return(0);
}
//+------------------------------------------------------------------+
//| Função de desinicialização de indicador personalizada |
//+------------------------------------------------------------------+
int deinit()
{

retorno(0);
}
//+------------------------------------------------------------------+
//| Função de iteração de indicador personalizada |
//+------------------------------------------------------------------+
int start(){

string basename = "Heikin-Ashi";
IndicatorShortName(basename);
int window = WindowFind(basename);

for (int i = Bars-100; i >= 0; i--){

// estes dois índices são usados para controlar o tamanho da subjanela
// não são visíveis
alto[i] = Alto[i];
baixo[i] = baixo[i];
duplo haOpen, haHigh, haLow, haClose,haDiffCo;
haOpen=(Open[i+1]+Close[i+1])/2;
aberto[i] = haAbrir;
haClose=(Open[i]+High[i]+Low[i]+Close[i])/4;
fechar[i] = haFechar;
haHigh=MathMax(haOpen,High[i]);
haBaixo=Máximo Matemático(haAbrir,Baixo[i]);
string name1 = "Heikin-Ashi-HL-"+i;

if(ObjectFind(name1) != -1) ObjectDelete(name1);
ObjectCreate(name1, OBJ_TREND, window, Time[i], haHigh, Time[i], haLow);
ObjectSet(name1, OBJPROP_STYLE, STYLE_SOLID);
ObjectSet(name1, OBJPROP_RAY, 0);
ObjectSet(name1, OBJPROP_WIDTH, 1);

string name2 = "Heikin-Ashi-OC-"+i;
if(ObjectFind(name2) != -1) ObjectDelete(name2);
ObjectCreate(name2, OBJ_TREND, window, Time[i], haOpen, Time[i], haClose);
ObjectSet(name2, OBJPROP_WIDTH, 3);
//ObjectSet(name2, OBJPROP_STYLE, STYLE_SOLID);
ObjectSet(name2, OBJPROP_RAY, 0);

if (haOpen < haClose) {
ObjectSet(nome1, OBJPROP_COLOR, Chartreuse);
ObjectSet(name2, OBJPROP_COLOR, Chartreuse);
}else{
ObjectSet(nome1, OBJPROP_COLOR, Vermelho);
ObjectSet(nome2, OBJPROP_COLOR, Vermelho);
}

}

retorno(0);
}

 
O que é "contrabandeado" ?

Além disso, noto que não há caudas inferiores usando seu código.
Não creio que seu cálculo de HA esteja totalmente correto.
 

Obrigado phy

para sua amável resposta, contrabandeado significa que o corpo não são retângulos adequados as bordas são curvadas. Seu direito também, não há rabos inferiores. Estou me perguntando por que tudo isso.


Como posso fazer corpos com retângulos perfeitos como a tabela de preços?


Pergunta:

1. Declaramos indicadores e amortecedores no topo e depois dizemos estilo de índice como DRAW_LINE. Depois dizemos inserir linha de tendência com esta largura e cor para representar um indicador. Então usamos apenas os amortecedores para pintar o objeto (linha de tendência) precisamos declarar indicadores na parte superior e fazer o estilo de índice como linha_de_traço?

É um pouco confuso ter tanto a linha de tendência de desenho como a linha de tendência de inserção do objeto?


Agradecemos seus comentários de especialistas e gostaríamos de saber se você pode corrigir meu pensamento?

 

QUE ERA O PROBLEMA DAS caudas,

haLow=MathMax(haOpen,Low[i]);

deve ser

haLow=MathMin(haOpen,Low[i]);

Minha pergunta anterior ainda permanece lá, por favor, ajude-me...

para sua amável resposta, contrabandeado significa que o corpo não são retângulos adequados as bordas são curvadas. Como posso fazer corpos com retângulos perfeitos como a tabela de preços?

Pergunta:

1. Declaramos indicadores e amortecedores no topo e depois dizemos estilo de índice como DRAW_LINE. Depois dizemos inserir linha de tendência com esta largura e cor para representar um indicador. Então usamos apenas os amortecedores para pintar o objeto (linha de tendência) precisamos declarar os indicadores no topo e fazer o estilo de índice como linha_de_traço?

É um pouco confuso ter tanto a linha de tendência de desenho como a linha de tendência de inserção do objeto?

Agradecemos seus comentários de especialistas e gostaríamos de saber se você pode corrigir meu pensamento?

 
A janela indicadora pode ser de um tamanho especificado, usando # indicador de propriedade_máximo e # indicador de propriedade_mínimo

Se estes não estiverem especificados (não estão na minha amostra), então a janela indicadora se redimensiona com base no mostrador
valores mais altos e mais baixos de um dos índices indicadores.

Nós nunca dizemos "inserir linha de tendência". Os objetos são desenhados com atributos específicos de tempo e preço.

Os buffers de índice estão lá ( mas invisíveis ) para dimensionar apropriadamente a subjanela à medida que os preços mudam ao longo do tempo.