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

 

Obrigado por isso.

Que papel esta linha faz SetIndexStyle(0, DRAW_LINE) no código acima quando acabamos de usar Objetos para traçar linha? Precisamos mencioná-los de alguma forma, eu entendo o papel dos buffers Não sei por que um buffer deve ser ligado a um índice e por que um índice deve ter estilo, pois o que vemos está fora da chamada createObject com atributos de preço?


Você viu que você mesmo usando o código acima as velas têm bordas curvas e não retângulos puros como tabela de preços?

 

Eu já expliquei isso.

Se você quer retângulos, desenhe retângulos em vez de objetos de linha de tendência.

 

Olá Phy

Desculpe por ser uma dor, RECTANGLE opção dint work, é por isso que estou incomodando você, obrigado por sua paciência e por favor tente isto e me avise, eu consertei os cálculos do HA.

Por favor, tente uma última vez obrigado, gostaria de conseguir este trabalho retangular corretamente.


#Janela_do_indicador_de_propriedade

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


duplo alto[];
duplo baixo[];
duplo aberto[];
duplo fechamento[];
duplo haOpen1[]; duplo haOpen1[];
duplo haFechar1[]; duplo haFechar1[];

//+------------------------------------------------------------------+
//| 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);
SetIndexStyle(4, DRAW_LINE); SetIndexStyle(4, DRAW_LINE);
SetIndexStyle(5, DRAW_LINE); SetIndexStyle(5, DRAW_LINE);
SetIndexBuffer(0, alto);
SetIndexBuffer(1, baixo);
SetIndexBuffer(2, aberto);
SetIndexBuffer(3, fechar);
SetIndexBuffer(4, haOpen1);
SetIndexBuffer(5, haClose1);
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);

para (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=(haOpen1[i+1]+haClose1[i+1])/2;
haOpen1[i] = haOpen;
haClose=(Open[i]+High[i]+Low[i]+Close[i])/4;
haClose1[i] = haClose;
haHigh=MathMax(haOpen,High[i]);
haBaixo=Matemática(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, 2);

nome da cadeia2 = "Heikin-Ashi-OC-"+i;
if(ObjectFind(name2) != -1) ObjectDelete(name2);
ObjectCreate(name2, OBJ_RECTANGLE, window, Time[i], haOpen, Time[i], haClose);
ObjectSet(name2, OBJPROP_WIDTH, 5);
//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);
}

 

As velas devem ser linhas de tendência

Largura do corpo 2 ou mais provável, 3

Eu não sei do que você está falando sobre "arredondamento" das linhas


Mostrar uma foto

 
Ver imagem plz...
 

Às vezes, quando você rola para a esquerda, você obtém isso também (verde e vermelho misturado)

 

Sim, eu vejo isso.

Acho que você tem algumas barras obsoletas para apagar lá.

 
obrigado por sua resposta, como fazer isso?
 

descubra o que está errado, depois pense em como você pode consertá-lo. existem barras duplicadas, o que está acontecendo?

 

Olá Phy

Se eu estiver certo, o problema pode ser devido ao fato de eu fazer isso

SetIndexStyle(0, DRAW_LINE);
SetIndexStyle(1, DRAW_LINE);
SetIndexStyle(2, DRAW_LINE);
SetIndexStyle(3, DRAW_LINE);
SetIndexStyle(4, DRAW_LINE); SetIndexStyle(4, DRAW_LINE);
SetIndexStyle(5, DRAW_LINE); SetIndexStyle(5, DRAW_LINE);

Eu faço o acima exposto e faço os amortecedores a serem desenhados e, ao mesmo tempo, faço


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, 2);

nome da cadeia2 = "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, 5);
//ObjectSet(name2, OBJPROP_STYLE, STYLE_SOLID);
ObjectSet(name2, OBJPROP_RAY, 0);

Então tanto os dados em buffer quanto os objetos são desenhados um sobre o outro, Estou correto?

Devo remover a configuração do código de estilo de índice, pois estou apenas usando o buffer para armazenamento de dados e não quero desenhá-lo?

Eu estou certo?