Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 576

 
Il y a une question sur TimeLocal(), cette fonctionrenvoie l'heure locale de l'ordinateur où le terminal client est exécuté. En même temps, TimeToStr convertit une valeur contenant le temps en secondes depuis le 01.01.1970 .
Par exemple :


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

obtenir :

2014.04.11 15:05:50.031 2001.01.03 07:25 : Time_Start = 2001.01.03 07:25:00
Comment convertir le format de temps obtenu par
TimeLocal() en "2014.04.11 15:05:50" ?

 
Dites-moi, cette question peut sembler inappropriée, mais avez-vous déjà rencontré un conseiller expert qui négocie en fonction des modèles de chandeliers?
 
Profitov:
Dites-moi, cette question peut sembler inappropriée, mais avez-vous déjà rencontré un conseiller expert qui négocie en fonction des modèles de chandeliers ?

Oui, je l'ai fait :) Je travaille uniquement dans cette direction. En général, vous êtes allé au mauvais endroit. Si vous voulez apprendre, vous devez demander.
 

J'ai la question suivante. Il s'agit, si je comprends bien, de la disposition du code avant la compilation. L'essentiel est le suivant :

Il se trouve que j'ai toutes les bibliothèques écrites séparément. Chaque bibliothèque a son propre fichier d'inclusion, qui est inclus dans le code du conseiller expert ou dans une autre bibliothèque, si vous voulez ajouter une bibliothèque. Ici, c'est comme d'habitude.

J'ai écrit une bibliothèque qui est, comme je dirais, basique, mais qui est aussi très couramment utilisée. En général, certaines fonctions de cette bibliothèque sont utilisées par certaines bibliothèques et d'autres sont utilisées par d'autres. Le fichier d'en-tête de cette bibliothèque comporte relativement beaucoup de variables globales. Ce point m'intéresse. Si je lie cette bibliothèque à différentes bibliothèques, dont chacune n'a besoin que de certaines fonctions de cette bibliothèque, l'éditeur de liens optimisera en quelque sorte le code ? Ou la bibliothèque entière sera ajoutée aux bibliothèques où je l'ai importée ?

 
hoz:

J'ai une question...

La question semble avoir déjà été posée il y a quelques mois. Vous ne pouvez obtenir une réponse normale que de la part des développeurs, car les spécificités et le langage de la gestion des tâches ne sont connus que d'eux. Voici mes spéculations.

Le mécanisme de chargement dynamique des fonctions de bibliothèque - DLL, n'implique pas le déchargement dynamique de celles-ci.

Toute fonction de la bibliothèque d'appels dynamiques est chargée au moment où l'on y fait référence (la fonction).

Si le chargement d'une fonction implique le chargement d'un environnement(variables globales), alors je ne vois pas d'autre solution simple que de charger la bibliothèque entière.

Si une fonction de bibliothèque dans une DLL appelle une fonction d'une autre bibliothèque ayant les mêmes caractéristiques, cette dernière sera chargée complètement.

Maintenant vient la partie amusante.

Seuls les développeurs pourront répondre à la question suivante : que se passe-t-il si la séquence d'appels de fonctions ci-dessus est répétée ?

Ma recommandation : n'utilisez jamais de variables globales dans les fonctions de bibliothèque et ne lisez pas les journaux soviétiques au petit-déjeuner.

 
tara:

La question semble avoir été posée il y a quelques mois. Une réponse normale ne peut être obtenue qu'auprès des développeurs, car les spécificités et le langage de la gestion des tâches ne sont connus que d'eux. Voici mes spéculations.

Le mécanisme de chargement dynamique des fonctions de bibliothèque - DLL, n'implique pas leur déchargement dynamique.

Toute fonction de la bibliothèque d'appels dynamiques est chargée au moment où l'on y fait référence (la fonction).

Si le chargement d'une fonction implique le chargement d'un environnement (variables globales), alors je ne vois pas d'autre solution simple que de charger la bibliothèque entière.

Si une fonction de bibliothèque dans une DLL appelle une fonction d'une autre bibliothèque ayant les mêmes caractéristiques, cette dernière sera chargée complètement.

Maintenant vient la partie amusante.

Seuls les développeurs pourront répondre à la question suivante : que se passe-t-il si la séquence d'appels de fonctions ci-dessus est répétée ?

Ma recommandation : n'utilisez jamais de variables globales dans les fonctions de bibliothèque et ne lisez pas les journaux soviétiques au petit-déjeuner.

Une bibliothèque est déchargée lorsque le thread qui l'a appelée se termine, s'il n'existe pas d'autre mécanisme pour la conserver. Par exemple, avec un compteur d'appels.

Lesvariables globales sont diaboliques :-) Il est préférable de ne jamais les utiliser.

 

Bon après-midi,

Je teste les robots dans le testeur et j'obtiens des fermetures aléatoires de positions suivies de leur ouverture. Que signifient ces entrées inversées dans les résultats du test ? Toutes mes martingales partent en vrille à cause de ça :)

107 2014.04.01 17:19 vendre 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:

Une bibliothèque est déchargée lorsque le thread qui l'a appelée se termine, s'il n'existe pas d'autre mécanisme pour la conserver. Par exemple, avec un compteur d'appels.

Les variables globales sont diaboliques :-) Il est préférable de ne jamais les utiliser.


Alors, comment ces questions sont-elles traitées ? Disons qu'il existe une liste de variables qui sont utilisées dans différentes bibliothèques. Prenons, par exemple, la variable bi_Err qui contient la dernière erreur. Il s'avère que sans variable globale, je dois déclarer la même variable dans chaque bibliothèque et gérer l'analogue de la variable bi_Err. Et ces variables sont nombreuses. La question a donc été posée car il s'avère que sans utiliser de variables globales dans de tels cas, dans chaque bibliothèque, où de telles variables sont utilisées, je dois déclarer ces variables (qui sont maintenant globales), et les valeurs de ces variables à travers les paramètres des fonctions, qui utilisent ces variables.

Il s'avère qu'au lieu de déclarer ces variables une fois globalement, je dois les déclarer dans chaque bibliothèque séparément. Et cela n'a pas vraiment de sens.

 
hoz:

Met... leur propre :) C'est à peu près tout ce qui me reste. En général, vous êtes dans la mauvaise direction. Si vous voulez apprendre, demandez...

Merci, c'est ce que je veux demander où commencer à creuser dans cette direction puisque vous travaillez déjà dans la même direction.
 
Profitov:

Merci, c'est ce que je veux demander où commencer à creuser dans cette direction puisque vous travaillez déjà dans la même direction.

Je ne comprends pas bien la raison de cette question. En ce qui concerne l'algorithme, c'est votre choix. Quant au code, il n'y a rien de compliqué. Les chandeliers ont leur prix haut, bas, ouvert et fermé. Et lorsque vous disposez de ces données, vous pouvez obtenir toutes les autres données du marché, y compris les niveaux Fibo, si nécessaire.