Erros, bugs, perguntas - página 1035

 
A100:
Alguma vez o viu sair como "palavra Olá"?

Volte a ler cuidadosamente o que lhe escrevi. Cálculo, não saída.

Esta é uma expressão i += ++i ++++

 

Fórum sobre comércio, sistemas automatizados de comércio e testes de estratégia comercial

Insectos, insectos, perguntas

MetaDriver, 2013.08.03 17:55

"

Se quiser ter a certeza de ter uma entrada no lado direito do ecrã.

Para os meus propósitos, nem sempre é adequado, mas em geral muitos "problemas de fim-de-semana" seriam eliminados.

ForExperts on trading, automated trading systems, and trading strategy testing.

Insectos, insectos, perguntas

MetaDriver, 2013.08.03 18:02

...

Também seria útil o "comando" programático de zeragem forçada de todos os valores pré_calculados para o símbolo seleccionado. Com a subsequente geração de carraças, seria uma boa combinação.

Cavalheiros, há alguma coisa nos vossos planos sobre este assunto?


 
TheXpert:

Volte a ler cuidadosamente o que lhe escrevi. Cálculo, não dedução.


Tem razão em separar os momentos: calcular os argumentos da função, substituir esses argumentos e calcular a própria função. Este guião - mostra que tanto os argumentos são calculados da esquerda para a direita como a própria expressão da esquerda para a direita:

int f( int x )  { Print( __FUNCTION__ + "(" + x + ")" ); return ( x ); }

void OnStart()
{
        int a = 0x0;
        int b = f(a+=1) << f(a+=2) << f(a+=3);
	Print( "b=" + b );
}
Результат:
f(1)
f(3)
f(6)
b=512
 
Pode dizer-me, por favor, qual é a diferença entre o exterior e a estática, qual é a duração de vida global?
//Test.mqh
extern int e1;
static int s1;

#import "testLib.ex5"
        void f();
#import
//test.mq5
#include "Test.mqh"

void OnStart()
{
        e1 = 10;
        s1 = 10;
        f();
}

//testLib.mq5

#property library
#include "Test.mqh"

void f() export
{
        Print( "e1=" + e1 );
        Print( "s1=" + s1 );
}
Результат:
e1 = 0 //не понятно
s1 = 0 //нормально
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
Silent:
Não é isso?

Não - utilizando uma classe padrão não-inicializada.

Todas as minhas aulas são auto-escritas. E não compreendo - porque é que dentro do método de classe funciona bem, e no OnInit() - não funciona.

Actualização: muito interessante... ;-) Se o Expert Advisor for executado em MetaEditor sob o depurador - tudo funciona bem. Além disso, EX5 (1,5 vezes maior do que o habitual) compilado sob depurador também funciona bem. Mas assim que a EA é recompilada no modo normal - começa a apresentar falhas. Aparentemente, terei de abrir uma nova aplicação no Service Desk.

 
A100:
Podem as pessoas conhecedoras dizer-me, por favor, qual é a diferença entre o exterior e a estática, qual é o tempo de vida global?

No seu caso, decidiu que dois conjuntos de variáveis, descritas independentemente em dois ficheiros diferentes, se fundem numa única representação. Na realidade, não é este o caso.

Ao adicionar um ficheiro mqh, define-se explicitamente conjuntos separados de variáveis em cada um deles incluir ficheiro. Grosseiramente falando, não colocar definições de variáveis nos ficheiros de cabeçalho - eles serão delimitados por scanner.

 
Eu queria usar uma (única) variável em vários módulos, mas não sei como. Tirado .mqh.
10 //testLib.mq5
20 #property library
30 extern int e1;
40 void f() export
50 {
60         Print( "e1=" + e1 );
70 }
10 //test.mq5
20 extern int e1;        
30 #import "testLib.ex5"
40          void f();
50 #import
60 void OnStart()
70 {
80         e1 = 10;
90         f();
100 }

Resultado de saída: e1=0 não se alterou. Para onde foi e1=10? Se e1 é diferente em módulos diferentes, significa que a funcionalidade estática e externa é idêntica? E se não, onde está o meu erro?
 
A100:
Eu queria usar uma (única) variável em vários módulos, mas não sei como. O resultado de saída: e1=0 não se alterou.
Existe uma classe de memória externa especificamente para o seu caso. Experimente
 
stringo:
Existe uma classe de memória externa especificamente para o seu caso. Experimente
Por favor dê-me um exemplo - ou aponte um erro no meu - Num módulo atribuo e1 = 10, chamo e1 no segundo módulo, mas aí é zero
 
A100:
Eu queria usar uma (única) variável em vários módulos, mas não sei como. Tirou a saída .mqhP: e1=0 não mudou. Para onde foi o e=10? Se e1 é diferente em módulos diferentes, significa que a funcionalidade estática e externa é idêntica? E se não, onde está o meu erro?
Bem, deve ser inicializada apenas uma vez. É externo.
Razão: