Errori, bug, domande - pagina 1035

 
A100:
Avete mai visto l'output come "parola Hello"?

Rileggi attentamente quello che ti ho scritto. Calcolo, non uscita.

Questa è un'espressione i += ++i +++

 

Forum sul trading, sistemi di trading automatico e test di strategie di trading

Bug, bug, domande

MetaDriver, 2013.08.03 17:55

"

Se vuoi essere sicuro di avere un input sul lato destro dello schermo.

Per i miei scopi non è sempre adatto, ma in generale molti "problemi del fine settimana" verrebbero rimossi.

PerEsperti di trading, sistemi di trading automatizzati e test di strategie di trading.

Bug, bug, domande

MetaDriver, 2013.08.03 18:02

...

Sarebbe anche utile "comandare" programmaticamente l'azzeramento forzato di tutti i prev_calcolati per il simbolo selezionato. Con la successiva generazione di zecche sarebbe una buona combinazione.

Signori, c'è qualcosa nei vostri piani su questo argomento?


 
TheXpert:

Rileggi attentamente quello che ti ho scritto. Calcolo, non deduzione.


Hai ragione a separare i momenti: calcolare gli argomenti della funzione, sostituire questi argomenti e calcolare la funzione stessa. Questo script - mostra che entrambi gli argomenti sono calcolati da sinistra a destra e l'espressione stessa da sinistra a destra:

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
 
Potete dirmi la differenza tra extern e static, qual è la durata di vita globale?
//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:
Non è così?

No - usando una classe standard non inizializzata.

Tutti i miei corsi sono scritti in proprio. E non capisco - perché all'interno del metodo della classe funziona bene, e in OnInit() - non lo fa.

Aggiornamento: molto interessante... ;-) Se l'Expert Advisor viene eseguito in MetaEditor sotto il debugger - tutto funziona bene. Inoltre, anche EX5 (1,5 volte più grande del solito) compilato sotto debugger funziona bene. Ma non appena EA viene ricompilata in modalità normale - inizia a presentare dei glitch. A quanto pare, dovrò aprire una nuova applicazione in Service Desk.

 
A100:
Le persone competenti possono per favore dirmi la differenza tra extern e static, qual è la durata globale?

Nel vostro caso, avete deciso che due serie di variabili, descritte indipendentemente in due file diversi, si fondono in un'unica rappresentazione. In realtà non è questo il caso.

Aggiungendo un file mqh, si definiscono esplicitamente insiemi separati di variabili in ogni file include. In parole povere, non mettete le definizioni delle variabili nei file di intestazione - saranno soggette a scoping.

 
Volevo usare una (singola) variabile in diversi moduli, ma non so come. Tolto .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 }

Risultato di uscita: e1=0 non è cambiato. Dov'è finito e1=10? Se e1 è diverso in diversi moduli, significa che le funzionalità statiche ed esterne sono identiche? E se no, dov'è il mio errore?
 
A100:
Volevo usare una (singola) variabile in diversi moduli, ma non so come. Il risultato dell'uscita: e1=0 non è cambiato.
C'è una classe di memoria esterna specifica per il vostro caso. Prova
 
stringo:
C'è una classe di memoria esterna specifica per il vostro caso. Prova
Per favore datemi un esempio - o indicatemi un errore nel mio - In un modulo assegno e1 = 10, chiamo e1 nel secondo modulo, ma lì è zero
 
A100:
Volevo usare una (singola) variabile in diversi moduli, ma non so come. Tolto l'output .mqhP: e1=0 non è cambiato. Dov'è finito e=10? Se e1 è diverso in diversi moduli, significa che le funzionalità statiche ed esterne sono identiche? E se no, dov'è il mio errore?
Beh, in un certo senso dovrebbe essere inizializzato solo una volta. È esterno.