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

 
créer
nikitasa1997:

Bonjour, chers utilisateurs du forum, veuillez aider un débutant. J'ai fait un indicateur personnalisé, ci-dessous est un fragment de code avec plus de 1000 lignes comme dans le code original, c'est pourquoi je n'ai pas collé le code entier.

Le programme '+' - est trop complexe. Il émet cette erreur.

J'ai lu les fils du forum, cette erreur se produit lorsque la fonction est trop longue. Comment diviser une fonction en plusieurs sous-fonctions ? Veuillez décrire mon code à titre d'exemple.


créer le fichier filter.mq4 avec cette fonction et le sauvegarder dans le dossier \MQL4\Include\.


puis l'appeler depuis l'indicateur #include <filter.mq4>

si la variable réponse se trouve dans l'indicateur, il n'est pas nécessaire de la déclarer, il suffit de l'utiliser si nécessaire.

 
evillive:
créer

créez le fichier filter.mq4 avec cette fonction et enregistrez-le dans le dossier \MQL4\Include\


puis appel de l'indicateur #include <filter.mq4>

si la variable réponse se trouve dans l'indicateur, il n'est pas nécessaire de la déclarer, il suffit de l'utiliser si nécessaire.



Merci beaucoup !)
 
Chiripaha:

Du coin de l'œil, j'ai regardé les solutions que d'autres vous ont proposées plus tôt. Vous pouvez avoir des restrictions d'autorisation lors du chargement des modèles. Ceci est reflété dans la description de ChartApplyTemplate(). Mais il ne s'agit que d'une option. Ou quelque chose de similaire. Ainsi, lorsque vous chargez via un rendu, toutes les autorisations sont préservées, mais lorsque vous chargez de manière programmatique, elles sont restreintes.

Citation de la description de la fonction:

Lorsque vous sauvegardez le modèle, les autorisations des programmes fonctionnant sur le graphique sont également mémorisées : le droit de commercer et le droit d'utiliser la DLL. Pour des raisons de sécurité, ces droits peuvent être restreints lorsque le modèle est appliqué au graphique :

Les droits de négociation et d'utilisation des DLL ne peuvent pas être augmentés lorsqu'un EA est lancé en appliquant un modèle à l'aide de la fonction ChartApplyTemplate().

Si le programme mql4 qui appelle ChartApplyTemplate() n'a pas le droit de négocier, l'EA chargé à l'aide du modèle n'aura pas non plus le droit de négocier, quels que soient les paramètres du modèle.

Si le programme mql4, qui appelle ChartApplyTemplate(), a des droits de négociation, mais pas les paramètres du modèle, alors l'EA, chargé au moyen d'un modèle, n'aura pas de droits de négociation.


J'ai essayé de les désactiver et de les activer. J'ai changé le modèle, à la fois avec un graphique simple avec des indicateurs et avec un EA déjà chargé. mais le résultat est le même : dans le testeur sans visualisation l'EA ne fait rien, avec la visualisation - tout comme prévu)) Je ne sais pas ... probablement, les développeurs devraient vraiment écrire ou venir avec quelque chose d'autre sans modèles.

 

Voici une question :

Supposons que nous ayons un serveur de recherche en texte intégral qui dispose d'un cache pour les résultats des requêtes. Nous devons calculer l'efficacité du cache (taille maximale du cache et pourcentage de réussite) pour un temps de cache donné.

Données d'entrée

Le programme saisit un fichier texte contenant les requêtes reçues par le serveur, avec l'heure et la chaîne de recherche, ainsi que le temps de maintien du cache en secondes.

Données de sortie

Après son exécution, le programme doit fournir les valeurs suivantes : le nombre de requêtes traitées, le nombre de requêtes uniques, la taille maximale du cache (en nombre d'enregistrements), la probabilité d'entrer dans le cache.



Je ne comprends pas ce que signifie "taille maximale du cache (en nombre d'enregistrements)", comment la calculer ?

 
Bonjour messieurs, j'ai une question très importante, est-il possible de configurer le robot pour qu'il ne trade pas à certaines heures, si oui comment faire ?
 
De combien l'indicateur de volume standard du marché des changes augmente-t-il lorsque le prix change d'un tick (de 1 ou 2 ? ??) ?
 
Mavellol:
Bonjour messieurs, j'ai une question très importante, est-il possible de configurer le robot pour ne pas trader à certaines heures, si oui, comment faire ?


J'ai besoin de mettre en œuvre une telle possibilité dans mon conseiller expert.
 

Bonjour à tous !

Veuillez m'aider avec MarketInfo(Symbol(),MODE_MARGINREQUIRED)

double One_Lot =MarketInfo(Symbol(),MODE_MARGINREQUIRED) ;
la variable One_Lot contiendra la valeur d'un lot pour la devise actuelle.
Exemple de calcul de lot pour EURUSD (Prix=1.3606) :
taille standard du contrat (1 lot) = 100000
si nous achetons 100000 EUR, nous devons payer 100000*1.3606=136060$
nous avons un effet de levier = 100, donc nous paierons One_Lot=136060/100=1360.6$.

(J'ai compris que tous ces calculs font MarketInfo(Symbol(),MODE_MARGINREQUIRED) et notre One_Lot=1360.6)

mais le résultat est différent dans le script :

double Price = Ask ;
Print ("Price =",Price) ;

double One_Lot = MarketInfo ( Symb, MODE_MARGINREQUIRED ) ; // le coût d'un lot
Print ("One_Lot =",One_Lot) ;

dans la sortie

17:10:30 informer EURUSD,H1 : Prix =1.3606

17:10:30 informer EURUSD,H1 : One_Lot =1600.0

Où est mon erreur ?

 
Qui est Symb et comment le définir dans le code ? Lorsque l'on appelle directement One_Lot =MarketInfo(Symbol(),MODE_MARGINREQUIRED), cela fonctionne bien.
 
evillive:
Qui est Symb et comment le définir dans le code ? Lorsque l'on appelle One_Lot =MarketInfo(Symbol(),MODE_MARGINREQUIRED), cela fonctionne bien.

Merci d'avoir répondu !

Dans mon scénario.

Symb = Symbole ( ) ;

J'ai essayé comme vous - le résultat est le même : One_Lot =1600.0

Quel est votre résultat ?