MetaTrader 4 Build 529 beta lançado com novo compilador - página 124

 
VOLDEMAR:

É melhor você escrever tudo em inglês. Se seu código chegar a um comerciante estrangeiro, ele não entenderá nada...

Eu escrevo código para um russo e ele me pede para escrever em russo. E o que eu verifico aqui - escrevo por mim mesmo, e não me importo se escrevo em russo ou em marciano. Se eu vejo um problema, eu o descrevo.

Estou escrevendo-o em inglês para o Mercado.

 
pro_:
stringo:

Buscado e encontrado

.

Dê-nos seu exemplo.



Escrevi para você em uma mensagem particular. Com um exemplo do problema que estou enfrentando.
O ObjectFind foi uma tentativa de resolver o problema, e você provavelmente está certo, o ObjectFind em si funciona bem.

O problema é claro. Uso incorreto da função ObjectFind. ObjectFind retorna o número da subjanela na qual o objeto é encontrado. Se nenhum objeto for encontrado, ele retorna -1. Você está verificando se "zero - zero".
 
Night63:

Olá!

Encontramos o seguinte problema.

Inserimos o bloco de troca de citações de 4 dígitos para 5 dígitos (o código funciona absolutamente bem, foi testado em dezenas de Expert Advisors) :

A partir daqui, você pode ver o seguinte.

Levantamos os parâmetros de entrada do Expert Advisor pressionando F7, tudo está correto:

Pressione OK, depois pressione F7 novamente:

Pressione OK, pressione F7 novamente:

Pressione OK, pressione F7 novamente:

E assim por diante......

Este bug não desaparece com builds atualizados. Aparece com diferentes usuários da mesma maneira. O tema foi discutido aqui


Você não pode alterar as variáveis de entrada!

Use a palavra-chave entrada em vez de externa, então o compilador não permitirá que você faça isso.

Veremos o que podemos fazer para manter a velha funcionalidade quádrupla

PS muito obrigado por trazer isso à tona

 
artmedia70:
Assim, no futuro as Barras não serão apenas uma variável predefinida, mas também uma função com o mesmo nome: Barras() ?

É bem possível. (Em C/C+++ isto é permitido, a propósito).
 
stringo:

Você não pode alterar as variáveis de entrada!



Aqui, você pode explicar em detalhes, o que significa que as variáveis de entrada não podem ser alteradas?

Se a entrada variável de entrada no TakeProfit = 300 ;

então eu posso dar-lhe um valor diferente no código ????

Eu não entendo quando não posso mudá-lo ???

 

Outra pergunta, como posso determinar programmaticamente que o cursor do mouse está sobre um objeto bmp ???

Fiz código no qual há uma área sob o objeto onde o cursor cai e o código entende que o cursor está sobre o objeto bmp ...

Estou perguntando porque estou procurando um método mais simples de definir o cursor sobre um objeto bmp ...

 
VOLDEMAR:

Aqui, você pode explicar com mais detalhes o que significa que as variáveis de entrada não podem ser alteradas?

Se a entrada variável de entrada int TakeProfit = 300 ;

então eu posso atribuir-lhe um valor diferente no código ????

Eu não entendo, quando não posso mudar ???

O software não pode ser alterado. Somente por usuário em configurações.

input int TakeProfit = 300;

int takeProfit;

int start() {

takeProfit=TakeProfit;

// E depois modificar TakeProfit.

retorno(0);

}

 
artmedia70:

Não é possível mudá-lo de forma programática. Somente por um usuário nas configurações.

input int TakeProfit = 300;

int takeProfit;

int start() {

takeProfit=TakeProfit;

// E depois modificar TakeProfit.

retorno(0);

}




Obrigado!!! Vou saber agora ...
 
VOLDEMAR:

Aqui, você pode explicar com mais detalhes o que significa que as variáveis de entrada não podem ser alteradas?

Se a entrada variável de entrada int TakeProfit = 300 ;

então eu posso atribuir-lhe um valor diferente no código ????

Eu não entendo, quando não posso mudar ???

Aqui está um exemplo de nosso parabólico personalizado

input double InpSARStep=0.02;    // Step
input double InpSARMaximum=0.2;  // Maximum
//---- buffers
double       ExtSARBuffer[];
//--- global variables
double       ExtSarStep;
double       ExtSarMaximum;

...

void OnInit()
  {
//--- checking input data
   if(InpSARStep<0.0)
     {
      ExtSarStep=0.02;
      Print("Input parametr InpSARStep has incorrect value. Indicator will use value",
            ExtSarStep,"for calculations.");
     }
   else
      ExtSarStep=InpSARStep;
   if(InpSARMaximum<0.0)
     {
      ExtSarMaximum=0.2;
      Print("Input parametr InpSARMaximum has incorrect value. Indicator will use value",
            ExtSarMaximum,"for calculations.");
     }
   else
      ExtSarMaximum=InpSARMaximum;

...

E ainda usamos ExtSarStep e ExtSarMaximum

 
stringo:
O que é certo é que não vai ser em breve


É uma pena. Meus especialistas precisam desses eventos como o ar.

A cada passo, você tem que passar por um monte de posições e descobrir quais foram para onde e por quê.