Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 576

 
C'è una domanda su TimeLocal(), questa funzionerestituisce l'ora locale del computer dove il terminale client è in esecuzione. Allo stesso tempo TimeToStr converte un valore contenente il tempo in secondi dal 01.01.1970 .
Per esempio:


void init() {
   Print("Time_Start = " + TimeToStr(TimeLocal(),TIME_DATE|TIME_SECONDS) );
}

ottenere:

2014.04.11 15:05:50.031 2001.01.03 07:25 : Time_Start = 2001.01.03 07:25:00
Come convertire il formato orario ottenuto da
TimeLocal() in "2014.04.11 15:05:50"?

 
Per favore ditemi, questa può sembrare una domanda inappropriata, ma avete mai incontrato un Expert Advisor che fa trading in base a modelli di candele?
 
Profitov:
Per favore ditemi, questa può sembrare una domanda inappropriata, ma avete mai incontrato un Expert Advisor che fa trading in base a modelli di candele?

Sì, l'ho fatto :) Sto lavorando solo in questa direzione. In generale, sei andato nel posto sbagliato. Se vuoi imparare, devi chiedere.
 

Ho la seguente domanda. Riguarda, come ho capito, il layout del codice prima della compilazione. Il succo è questo:

Ho tutte le librerie, a quanto pare, scritte separatamente. Ogni libreria ha il proprio file di inclusione, che è incluso nel codice di Expert Advisor o in un'altra libreria, se vuoi aggiungere una libreria. Qui è come al solito.

Ho scritto una libreria che è, come direi, di base, ma è anche molto usata. In generale, alcune funzioni di questa libreria sono usate da alcune librerie e altre da altre. Il file di intestazione di questa libreria ha relativamente molte variabili globali. Questo punto mi interessa. Se collego questa libreria a diverse librerie, ognuna delle quali ha bisogno solo di alcune funzioni di questa libreria, il linker ottimizzerà in qualche modo il codice? O l 'intera libreria sarà aggiunta a quelle librerie dove l'ho importata?

 
hoz:

Ho una domanda ...

La domanda sembra essere già stata posta qualche mese fa. Potete ottenere una risposta normale solo dagli sviluppatori, poiché le specifiche e il linguaggio della gestione dei compiti sono noti solo a loro. Di seguito le mie speculazioni.

Il meccanismo di caricamento dinamico delle funzioni di libreria - DLL, non implica lo scarico dinamico di esse.

Qualsiasi funzione nella libreria di chiamate dinamiche viene caricata nel momento in cui si fa riferimento ad essa (la funzione).

Se il caricamento di una funzione implica il caricamento di alcuni ambienti(variabili globali), allora non vedo altra soluzione semplice che caricare l'intera libreria.

Se una funzione di libreria in una DLL chiama una funzione di un'altra libreria con le stesse caratteristiche, quest'ultima sarà caricata completamente.

Ora arriva la parte divertente.

Solo gli sviluppatori saranno in grado di rispondere: cosa succede se la sequenza di chiamate di funzioni di cui sopra viene ripetuta.

La mia raccomandazione: non usate mai variabili globali nelle funzioni di libreria e non leggete giornali sovietici a colazione.

 
tara:

La domanda sembra essere stata posta qualche mese fa. Una risposta normale può essere ottenuta solo dagli sviluppatori, poiché le specifiche e il linguaggio della gestione dei compiti sono noti solo a loro. Di seguito le mie speculazioni.

Il meccanismo di caricamento dinamico delle funzioni di libreria - DLL, non implica lo scarico dinamico delle stesse.

Qualsiasi funzione nella libreria di chiamate dinamiche viene caricata nel momento in cui si fa riferimento ad essa (la funzione).

Se il caricamento di una funzione implica il caricamento di alcuni ambienti (variabili globali), allora non vedo altra soluzione semplice che caricare l'intera libreria.

Se una funzione di libreria in una DLL chiama una funzione di un'altra libreria con le stesse caratteristiche, quest'ultima sarà caricata completamente.

Ora arriva la parte divertente.

Solo gli sviluppatori saranno in grado di rispondere: cosa succede se la sequenza di chiamate di funzioni di cui sopra viene ripetuta.

La mia raccomandazione: non usate mai variabili globali nelle funzioni di libreria e non leggete giornali sovietici a colazione.

Una libreria viene scaricata quando il thread che l'ha chiamata termina, se non c'è un altro meccanismo per mantenere la libreria. Per esempio, con un contatore di chiamate.

Levariabili globali sono il male :-) È meglio non usarli mai.

 

Buon pomeriggio,

Sto testando i robot nel tester e ottengo una chiusura casuale delle posizioni seguita dalla loro apertura, cosa significano queste voci di scambio nei risultati del test? Sto facendo andare in malora tutte le mie martingale per questo motivo :)

107 2014.04.01 17:19 vendere 54 1.23 1.38105 1.38204 1.37891 0.00 9664.86

108 2014.04.02 00:00 swap close 54 1,23 1,37934 1,38204 1,37891 210,33 9875,19

109 2014.04.02 00:00 swap open 55 1.23 1.37934 1.38204 1.37891 0.00 9875.19

110 2014.04.02 08:31 s/l 55 1.23 1.38204 1.38204 1.37891 -332.10 9543.09


 
Zhunko:

Una libreria viene scaricata quando il thread che l'ha chiamata termina, se non c'è un altro meccanismo per mantenere la libreria. Per esempio, con un contatore di chiamate.

Le variabili globali sono il male :-) È meglio non usarli mai.


Allora come vengono gestiti questi problemi? Diciamo che c'è una lista di variabili che sono usate in diverse librerie. Prendete, per esempio, la variabile bi_Err che contiene l'ultimo errore. Si scopre che senza una variabile globale, devo dichiarare la stessa variabile in ogni libreria e gestire l'analogo della variabile bi_Err. E ci sono molte variabili di questo tipo. Quindi la domanda è stata posta perché risulta che senza usare le variabili globali in questi casi, in ogni libreria, dove tali variabili sono usate, devo dichiarare queste variabili (che ora sono globali), e i valori di queste variabili sono passati attraverso i parametri delle funzioni, che usano queste variabili.

Si scopre che invece di dichiarare queste variabili globalmente una volta, devo dichiararle in ogni libreria separatamente. E questo non ha davvero senso.

 
hoz:

Met... il loro :) Questo è più o meno tutto ciò di cui sono grondante. In generale, hai sbagliato direzione. Se vuoi imparare, chiedi...

Grazie, è quello che voglio chiedere dove iniziare a scavare in questa direzione visto che state già lavorando nella stessa direzione.
 
Profitov:

Grazie, è quello che voglio chiedere dove iniziare a scavare in questa direzione visto che state già lavorando nella stessa direzione.

Non capisco bene il motivo della domanda. Per quanto riguarda l'algoritmo, è una tua scelta. Per quanto riguarda il codice, non c'è niente di complicato. Le candele hanno il loro prezzo alto, basso, aperto e chiuso. E quando hai questi dati, puoi ottenere qualsiasi altro dato di mercato, compresi i livelli di Fibo, se necessario.
Motivazione: