Domande da un "manichino" - pagina 198

 
lazarev-d-m:

da questa condizione viene fuori che si esibirà in tre situazioni:

1)Quando il tester funziona

2) Quando il tester NON funziona

3) Quando il tester visivo funziona

in modo che la funzione funzioni sempre, molto probabilmente è necessario rimuovere la seconda condizione e collegare la prima e la terza con &&

Piuttosto come questo:

2 o (1 e 2). Questo è ciò di cui ho bisogno. Non per essere in modalità tester, ma in modalità tester visivo.

Mi dispiace, ma credo di aver confuso i terminali e di aver testato il codice sbagliato. La mia condizione sembra funzionare correttamente.

 
lazarev-d-m:

in modo che la funzione funzioni sempre, molto probabilmente è necessario rimuovere la seconda condizione e collegare la prima e la terza con &&

Vuoi dire che questa condizione è sufficiente:

if(MQL5InfoInteger(MQL5_TESTER)!=1 || MQL5InfoInteger(MQL5_VISUAL_MODE)==1)

 
tor4en:

Vuoi dire che tale condizione è sufficiente:

if(MQL5InfoInteger(MQL5_TESTER)!=1 || MQL5InfoInteger(MQL5_VISUAL_MODE)==1)

Sì, anche questo funziona. Grazie.
 
Come si può influenzare un parametro da ottimizzare se il suo intervallo dipende da un altro parametro ottimizzato? Chiamare expertremove in oninit se il parametro non è adatto? Qual è il modo ottimale per accelerare l'ottimizzazione?
 
aharata:
Come posso influenzare il parametro da ottimizzare, se il suo range dipende da un altro parametro ottimizzato? Chiamare expertremove in oninit se il parametro non è adatto? Qual è il modo migliore per accelerare l'ottimizzazione?

Guardate le funzioni ParameterSetRange e ParameterGetRange. Permettono di riscrivere il parametro da enumerare sulla base delle condizioni non numeriche precedentemente impostate.

Per esempio, così:

//--- input parameters
sinput int   Param1=4;            // хитрый параметр
sinput int   Param2=30;           // хитрый параметр
sinput bool  Param3=false;        // хитрый параметр
                                  
sinput long  Counter=1;           // а вот этот параметр мы и будем оптимизировать (синтетический счетчик)


//--- на основе Param1, Param2 и Param3 высчитаем хитрое количество проходов счетчика Counter
ParameterSetRange("Counter",true,0,0,1,1+long(Param3 ? (Param1*Param2):(Param1*2));

Notate l'uso di sinput (input statico) invece di input, che dà un cambiamento bloccato "da" e "a" questo parametro nella GUI. E allo stesso modo, il parametro Counter che è bloccato per le modifiche tramite la funzione ParameterSetRange è sbloccato con l'impostazione dei limiti calcolati.

È possibile utilizzare questo meccanismo per creare condizioni di input molto complesse che possono essere utilizzate per far girare i contatori di fatturazione sintetici. Non dimenticate solo che la funzione di impostazione dei parametri funziona solo in OnTesterInit.

 
Grazie mille, Renat. Proprio quello di cui avevo bisogno).
 
Domanda sull'impostazione di un ciclo di avvio del terminale per i test utilizzando la linea di comando.

Situazione attuale:
1. Sto usando la linea di comando per avviare il terminale per ottimizzare l'Expert Advisor.
2. Il terminale si avvia, ottimizza e salva il risultato in un file xml.
3. Chiudere manualmente il terminale
4. Modifico il file ini (cambio ad esempio il periodo di prova)

5. Passiamo al punto 1.


Domanda: qualcuno è già stato in grado di automatizzare questo processo, compresa la selezione automatica dei parametri per il file ini da una lista data, e la chiusura del terminale? Per favore, condividete le vostre idee su come questo potrebbe essere fatto. L'opzione migliore sarebbe quella di offrire una soluzione pronta per automatizzare il processo di cui sopra. Sicuramente qualcuno ci ha già pensato prima di me.

 
C'è un comando nel file di configurazione per chiudere automaticamente il terminale alla fine di un test. Guarda nel file di aiuto.
 
papaklass:

Renat, bene fare uno STOCCAGGIO per i quattro, PER FAVORE. Ho scaricato l'Expert Advisor sul mio portatile, ma ho dimenticato gli allegati. Ora mi siedo qui come un semplice :) programmatore, scrivendo funzioni invece di fare il debug dell'Expert Advisor.

La mia chiavetta è il nostro fidato CONSERVATORE :)

SZY, bene, e la posta di tanto in tanto

 
sergeev:

La chiavetta è il nostro fidato CONSERVATORE :)

ZS, e a volte la posta.

Flash drive - direi che spesso si rompono.

Ho un HDD esterno che si sincronizza automaticamente una volta al giorno (circa 300 giga di file di lavoro) Se vado da qualche parte, lo butto nella mia borsa e sono felice.

Dicono che le unità ssd sono praticamente indistruttibili. Ma molto costoso.