Como posso aprender a criar objetos gráficos? MQL4. - página 5

 

Eu tentei transferir o código EA para o script.

As linhas sobrepostas no roteiro, não entendo porque elas não funcionam no Expert Advisor?

Quem conseguiu desenhar objetos na subjanela do gráfico ao iniciar a visualização do Expert Advisor?


 
forexman77:

Eu tentei transferir o código EA para o script.

As linhas se sobrepõem no roteiro, não entendo porque não funcionam na EA?

Quem conseguiu desenhar objetos na subjanela do gráfico ao iniciar a visualização do Expert Advisor?


Especifique o número da subjanela do indicador em que você vai desenhar.
 
Artyom Trishkin:
Especifique o número da subjanela indicadora na qual você vai desenhar.

Desta forma, ele dá -1 na EA. No roteiro, tudo está bem, a imagem acima. Eu li seu artigo sobre o indicador AD, muitas vezes, ainda não o entendi. Como sempre, a razão está em alguma coisa pequena.

Tanto quanto sei, a janela não é detectada na EA por algum motivo, erro 4206.

 
forexman77:

Desta forma, ele dá -1 na EA. No roteiro, tudo está bem, a imagem acima. Eu li seu artigo sobre o indicador AD, muitas vezes, ainda não o entendi. Como sempre, a razão está em alguma coisa pequena.

Tanto quanto sei, a janela não é detectada na EA por algum motivo, erro 4206.

A janela indicadora precisa de tempo para ser criada. Na janela indicadora, você não pode sacar até a primeira chamada da OnCalculate(). Você quer desenhar tudo no OnInit()?
 
Karputov Vladimir:
A janela indicadora precisa de tempo para ser criada. Na janela indicadora, você pode desenhar não antes da primeira chamada da OnCalculate(). Você quer desenhar tudo no OnInit()?
Não. Somente após a abertura de um comércio, ou seja, primeiro vão as linhas de abertura de posição, quando é aberta começa a renderização.

Aqui está o código na EA.

string   shortName="fraktalSDV"; 
long   chart_ID=0;        // ID графика
int win_idx=ChartWindowFind(chart_ID,shortName);
string nameobj=TimeToStr(Time[0]);       
            //--- сбросим значение ошибки
            ResetLastError();
            //--- создадим трендовую линию по заданным координатам
           if(!ObjectCreate(chart_ID,nameobj,OBJ_TREND,win_idx,Time[index],maximum1,Time[1],TRENDmax[1]))
            {
            Print(__FUNCTION__,
                  ": не удалось создать линию тренда! Код ошибки = ",GetLastError());
            return(0);
            }
ObjectSet(nameobj,OBJPROP_RAY,false); 

Há uma linha no próprio indicador:

IndicatorShortName("fraktalSDV");

 
forexman77:

Desta forma, ele dá -1 na EA. No roteiro, tudo está bem, a imagem acima. Eu li seu artigo sobre o indicador AD, muitas vezes, ainda não o entendi. Como sempre, a razão está em alguma coisa pequena.

Tanto quanto sei, a janela não é detectada na EA por algum motivo, erro 4206.

Ele não encontra a subjanela indicadora. Procure a janela indicadora pelo nome curto do indicador - aquele que você vê na parte superior esquerda da janela indicadora. Você não deve ter digitado o nome completo para procurá-lo.
 
Artyom Trishkin:
Ele não encontra a subjanela indicadora. Procure a subjanela indicadora pelo nome curto do indicador - a que você vê na parte superior esquerda da janela indicadora. Você provavelmente não coloca o nome inteiro para procurá-lo.

string shortName="fraktalSDV";

Eu o chamo assim. Tentei chamar o nome do indicador no Expert Advisor e o desajustei, não funcionou até agora.

Aqui está o próprio indicador. Apagá-lo-ei mais tarde.

 
forexman77:

string shortName="fraktalSDV";

Eu o chamo assim. Tentei chamar o nome do indicador no Expert Advisor, mas até agora não funcionou.

Experimente em

int win_idx=ChartWindowFind(chart_ID,shortName);

Não devo colocar a busca da janela indicadora, mas uma (existe apenas uma janela no gráfico?)

Se funcionar, então retorne a busca na janela para

long   chart_ID=0;        // ID графика

digite

long   chart_ID=ChartID();
 
Artyom Trishkin:

Tente

digite uma ao invés da busca na janela indicadora (há uma janela no gráfico?)

Na parte superior do próprio gráfico com citações e na parte inferior no separador do indicador.
 
forexman77:
Na parte superior está o próprio gráfico com as citações e na parte inferior, no separador, o indicador.
Faça o que eles lhe dizem ;) Você tem que procurar o erro...