a inicialização global falhou!!!!!!! - página 3

 

Obrigado pelas dicas!

Já que 646 coisas estranhas estão acontecendo, e ninguém parece ser capaz de ajudar!

1. As etiquetas estão saindo da linha, como se a XDISTÂNCIA e a YDISTÂNCIA não fossem obedecidas.

Eles só voltam à linha depois de trocar os Tf's para frente e para trás.

Depois de trocar as janelas do gráfico ou mudar os parâmetros de entrada, eles saem da linha.

2. Alguns velhos indis quebram o MT4.

3. Depois de iniciar o MT4, ele primeiro entra na conta, depois de um tempo ele sai, e eu devo entrar novamente.

4. Scripts e EA's com OrderClose() não funcionam, eles não fecham os pedidos.

OrderModify() funciona bem.

O que podemos fazer para que a MetaQuotes faça algo a respeito???

Afinal, o MT4 é uma plataforma de negociação, portanto uma ferramenta séria, não um brinquedo!!!

Ah, e mais uma coisa:

Digamos, estou criando um retângulo com um indi, com base em alguns cálculos.

Os cálculos estão dentro do início().

Ainda assim, não vejo meu retângulo depois de iniciar o MT4, nem mesmo em carrapatos.

Mas, depois de reinicializar os índios ou trocar os Tf's, ele está lá.

Agora, este tipo de coisas nunca aconteceram antes!

 
Dadas:

Obrigado pelas dicas!

Já que 646 coisas estranhas estão acontecendo, e ninguém parece ser capaz de ajudar!

1. As etiquetas estão saindo da linha, como se a XDISTÂNCIA e a YDISTÂNCIA não fossem obedecidas.

Eles só voltam à linha depois de trocar os Tf's para frente e para trás.

Depois de trocar as janelas do gráfico ou mudar os parâmetros de entrada, eles saem da linha.

isso significa que você pode corrigi-lo em seu código

2. Alguns velhos indis quebram o MT4.

você tem que adaptar o código ao novo mundo, (B600 >) por exemplo, "divisão zero" é um erro crítico e fazer o indicador desaparecer (não era antes de B600)

3. Depois de iniciar o MT4, ele primeiro entra na conta, depois de um tempo ele sai, e eu devo entrar novamente.

tentar fechar todos os gráficos abertos deixar o terminal em branco (sem os gráficos abertos), reiniciar o terminal, se o problema continuar, reportar à central de serviço

4. Scripts e EA's com OrderClose() não funcionam, eles não fecham os pedidos.

Tenho certeza de que o problema está em seu código, mostre-nos o código relevante e alguém tentará ajudá-lo.

OrderModify() funciona bem.

O que podemos fazer para que a MetaQuotes faça algo a respeito???

Afinal, o MT4 é uma plataforma de negociação, portanto uma ferramenta séria, não um brinquedo!!!

concordo, mas acho (quase certo) que o erro crítico está em seu código, você está usando código desatualizado, ou seja, foi escrito com erros na época, erros que não impediram o indicador/EA de funcionar, mas agora eles são erros cruciais e precisam ser corrigidos

 

Dadas,

Sou um companheiro de desenvolvimento e não posso responder a todas as suas perguntas. Eu mesmo estou lidando com algumas questões de PITA em aplicações que pretendo levar para o mercado. Uma coisa eu definitivamente sugiro, é substituir pelo menos suas funções init e deinit por novas funções OnInit() e OnDeInit(). Você também pode querer substituir o início por OnStart(). De acordo com a documentação, a implementação deve ser compatível com o passado, mas minha experiência fala o contrário. Tive uma situação em um dos meus indies em que deinit() não estava sendo chamado. Meu deinit() estava apagando objetos e qualquer coisa que causasse uma reinicialização falhou porque os objetos ainda existiam. Eu ainda uso start() em vez de OnStart(), mas não tenho certeza da sabedoria disso. Tenho um palpite de que estou pedindo por problemas no final da linha. Informe-me o que acontece se você optar por experimentar minhas sugestões. Nós, os Devs, precisamos ficar juntos :-)

 
Dadas:

Ah, e mais uma coisa:

Digamos, estou criando um retângulo com um índio, com base em alguns cálculos.

Os cálculos estão dentro do início().

Ainda assim, não vejo meu retângulo depois de iniciar o MT4, nem mesmo em carrapatos.

Mas, depois de reinicializar os índios ou trocar os Tf's, ele está lá.

Agora, este tipo de coisas nunca aconteceram antes!


como escrevi acima, há um novo mundo à nossa frente
não "comece" use "OnTick" (EA) ou "OnCalculate" (indicador)
 
qjol:

como escrevi acima, o novo mundo está à nossa frente
não "comece" use "OnTick".


Veja, MetaQuotes está lançando uma plataforma que, comodiz o ProfessorMetal , deve ser compatível com o passado!

Acho que ninguém é capaz de reescrever todos os milhares de indicadores, roteiros e EA's já existentes.

Quanto às suas sugestões de que meus códigos estão errados, não concordo, alguns dos rótulos são apenas os códigos mais simples.

Não há nada para eles, eles criam um objeto de etiqueta, calculam alguma coisa, depois definem o objeto de acordo.

Não há nenhuma filosofia especial ligada a eles:

  ObjectSet    ("Lot_Size_Label",OBJPROP_CORNER,Corner);

  ObjectSet    ("Lot_Size_Label",OBJPROP_XDISTANCE,XDistance);
  ObjectSet    ("Lot_Size_Label",OBJPROP_YDISTANCE,YDistance);
  ObjectSetText("Lot_Size_Label",comment,Font_Size,Font_Type,Font_Color);
  ObjectSet    ("Lot_Size_Label",OBJPROP_SELECTABLE,false); 

Quanto aos roteiros de fechamento de pedidos e EA, estou falando dos que costumavam funcionar bem em Builds anteriores (500).

Portanto, isso não é uma questão de que meus códigos estejam corretos ou não.

É a questão de MetaQuotes estragando as coisas!

Vou tentar dicas por ProfessorMetal ,ainda assim, e quanto aos usuários que não sabem nada sobre codificação???

E, francamente falando, eles nem deveriam saber nada de codificação!

Eles deveriam estar usando a plataforma de negociação!!!

 
ProfessorMetal:

Dadas,

Sou um companheiro de desenvolvimento e não posso responder a todas as suas perguntas. Eu mesmo estou lidando com algumas questões de PITA em aplicações que pretendo levar para o mercado. Uma coisa eu definitivamente sugiro, é substituir pelo menos suas funções init e deinit por novas funções OnInit() e OnDeInit(). Você também pode querer substituir o início por OnStart(). De acordo com a documentação, a implementação deve ser compatível com o passado, mas minha experiência fala o contrário. Tive uma situação em um dos meus indies em que deinit() não estava sendo chamado. Meu deinit() estava apagando objetos e qualquer coisa que causasse uma reinicialização falhou porque os objetos ainda existiam. Eu ainda uso start() em vez de OnStart(), mas não tenho certeza da sabedoria disso. Tenho um palpite de que estou pedindo por problemas no final da linha. Informe-me o que acontece se você optar por experimentar minhas sugestões. Nós, os Devs, precisamos ficar juntos :-)


Obrigado, eu tive o mesmo problema com os objetos não sendo apagados no deinit.

Eu estava desenvolvendo alguns indi, e obtive estes resultados estranhos, depois vi na lista de objetos, eles ainda estavam lá.

Consegui contornar isso, provavelmente da maneira mais simples, por ObjectDelete() no início().

Yup, mudando init() para OnInit() e deinit() para OnDeinit() consegui as etiquetas de volta! Obrigado!

Então, depois de um tempo, não!!! Eles ainda estão fazendo a mesma dança.

 

Se o código é o mais simples, sua implementação depende realmente dos códigos que estão sendo implementados. Você precisa ter a verificação de erros em pontos cruciais para que, quando o erro acontecer, o indi/ea possa lidar corretamente com ele. Eu também tenho problemas da última vez, mas uma vez que coloco os manipuladores de erros, ele corre sem problemas até o ponto em que você esqueceu os problemas que surgem da última vez.


still, what about the users who don't know a thing about coding???

And, frankly speaking, they aren't even supposed to know anything coding!

They are supposed to be using the trading platform!!!

A plataforma é uma metatrader, e vem com todas as necessidades básicas, ninguém o obriga a codificar.

 

Você sabe o que ajudou a alinhar as etiquetas?

Minhas coordenadas X,Y são retiradas de externs.

extern int XDISTANCE =9;
extern int YDISTANCE =9;

Então:

int X,Y;

int OnInit()
  {
 X = XDISTANCE;
 Y = YDISTANCE;
 ObjectCreate("INSTR",OBJ_LABEL,0,0,0); 
 
    return(0);
  }

int start() {
        ObjectSet("INSTR",OBJPROP_CORNER,Corner);
        ObjectSetText("INSTR",Symbol_Period+Date_Time,FontSize, "Berlin Sans FB", Color);
        ObjectSet("INSTR", OBJPROP_XDISTANCE, X);
        ObjectSet("INSTR", OBJPROP_YDISTANCE, Y); 
        ObjectSet("INSTR", OBJPROP_SELECTABLE, false);   
   return(0);
  }

Desta forma, acerta.

Ou melhor, faz a coisa melhor, não exatamente certa.

 
deysmacro:

Se o código é o mais simples, sua implementação depende realmente dos códigos que estão sendo implementados.


A plataforma é uma metatrader, e vem com todas as necessidades básicas, ninguém o obriga a codificar.


Como seu comentário deve ajudar alguém???
 
int X,Y;

int OnInit()
  {
 X = XDISTANCE;
 Y = YDISTANCE;
 ObjectCreate("INSTR",OBJ_LABEL,0,0,0); 
 
    return(0);
  }

int start() {
        ObjectSet("INSTR",OBJPROP_CORNER,Corner);
        ObjectSetText("INSTR",Symbol_Period+Date_Time,FontSize, "Berlin Sans FB", Color);
        ObjectSet("INSTR", OBJPROP_XDISTANCE, X);
        ObjectSet("INSTR", OBJPROP_YDISTANCE, Y); 
        ObjectSet("INSTR", OBJPROP_SELECTABLE, false);   
   return(0);
  }

Você não coloca nenhuma função de procura de objetos para verificar se o objeto já existe ou não. A partir daí, você cria o objeto de acordo.


How's your comment supposed to help anybody??? 

Eu estou ajudando você, agora mesmo.

Razão: