[Archive] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 2. - page 487

 
tol64:


)))) Non, je pense qu'il serait mieux de laisser le magicien. Et laissez les commandes en cours.

Pour être plus précis, laissez les symboles magiques qui sont nécessaires. Et si vous utilisez plusieurs EA sur différents graphiques, vous devez également inclure les symboles dans la vérification. Je ne suis pas encore arrivé à ce point. ))


Habituellement, nous vérifions un symbole et un magik - un symbole à utiliser sur des instruments différents, sans changer de magik - et un magik à utiliser sur le même instrument et des délais différents - mais nous pouvons vérifier uniquement un magik si nous le plaçons dans des variables externes.
 
Pouvez-vous me dire si le courtier jmt:0 est de la même couleur en été et en hiver ?
 
FOReignEXchange:

Je n'utilise jamais de magiciens. Bien que parfois il y ait quelques articles à la fois. J'utilise des tickets. Il est beaucoup plus facile de vérifier via OrderSelect. Et la fonction OrderSend devient plus claire. Eh bien, chacun est le maître de sa propre écriture. Personnellement, je n'ai jamais eu de problèmes sans magiciens.

Le billet ne va jamais nulle part. C'estpratique.

Exactement... :) Fermer une position partiellement ouverte. Et puis essayez de changer l'arrêt ou la prise par le billet que vous avez pour cette position. Vous obtiendrez ainsi le meilleur des deux mondes. :)

Exemple : Nous avons un poste ouvert avec 1.0 lot, et le ticket #1. Vous devez fermer 0,5 lots de cette position et garder les 0,5 lots restants.

Actions du centre de concessionnaires :

1. Fermer la position #1 avec le plein volume (lot 1.0)

2) Ouvrir la position n°2 avec un volume de 0,5 lot

Pour vous, cela ressemble à une fermeture partielle de la position n° 1 et au fait de laisser le reste de la position sur le marché. Seulement le ticket de ce poste n'est pas ce que vous pensez...

 
FOReignEXchange:


Je ne comprends pas ? Je regarde juste dans l'aide, là OrderSelect() utilise une condition. Et je n'ai vu aucun endroit sans vrai.

If est un opérateur de condition. Et il devrait y avoir une condition entre parenthèses. Cela me semble plus logique de cette façon. Même s'il n'y a pas de différence.

Faisons une analogie avec le russe. IMHO - il est plus pratique de lire le code mentalement en remplaçant ses opérateurs par du texte parlé :

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;

Ce que nous avons ici est :

Si l'ordre n' a pas étéchoisi, nous interrompons la boucle.

Maintenant :

if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;

C'est plus pratique ici :

siaucune commande n'est sélectionnée, nous interrompons la boucl e.

C'est absolument la même chose, mais c'est plus facile à lire. Et il y a moins d'écriture...

Et nous pouvons également supprimer toutes les choses inutiles et obtenir encore moins de code :

if(!OrderSelect(i,SELECT_BY_POS)) break;

Pourquoi ? Parce que nous sélectionnons un ordre au marché et qu'il est MODE_TRADES par défaut, nous pouvons donc l'omettre dans le paramètre de la fonction OrderSelect()...

Oh, oui... :)

 
artmedia70:

Oh là là... :)


)))

Ok. C'est le matin, alors bonjour ! ))

J'ai encore une autre anomalie que je ne comprends pas à première vue. L'opération la plus simple :

double High_1  = NormalizeDouble(iHigh(Symbol(),Timeframe,1),Digits);
double new_val = NormalizeDouble(High_1 + PlsMns_point*Point,Digits);

Je peux voir dans le journal :

Et littéralement dans une image miroir :

 double Low_1   = NormalizeDouble(iLow(Symbol(),Timeframe,1),Digits);
 double new_val = NormalizeDouble(Low_1 - PlsMns_point*Point,Digits);

Dans le journal, je vois ce "chiffre" :

La variable externePlsMns_point est de type int. Il est passé dans une fonction. Que dois-je faire pour éliminer ce malentendu ? ))

 

La variable externe PlsMns_point est de type int .

D'après la première entrée du journal, il semble être de type Double, int étant un nombre entier.

 
Stells:

La variable externe PlsMns_point est de type int .

Selon la première entrée du journal, il est de type Double, int est un entier.


Et lorsqu'il est multiplié par Point, la conversion semble se faire. Mais ce n'est pas le problème, puisque j'ai également essayé le double.

P.S. Et en plus deux variantes identiques. La seule différence réside dans la mise en miroir. Pourquoi ?

 

Je pense qu'il vous manque cette valeur :

double Low_1 = NormalizeDouble(iLow(Symbol(),Timeframe,1),Digits) ;

peut-être télécharger l'histoire

 
tol64:


)))

Ok. C'est le matin, alors bonjour ! ))

J'ai une autre anomalie que je ne comprends pas à première vue. L'opération la plus simple :

Je peux voir dans le journal :

Et littéralement dans une image miroir :

Dans le journal, je vois cette "figure" :

La variable externePlsMns_point est de type int. Il est passé dans une fonction. Que faudrait-il faire pour éliminer ce malentendu ? ))

Imprimez également les valeurs des variables High_1 et Low_1. En général, imprimez les valeurs transmises à la fonction et imprimez également les valeurs de retour. Vous saurez alors d'où partir. Souvent, les variables dont vous êtes sûr prennent des valeurs absolument inattendues. C'est là que vous trouverez l'erreur.
 

Bonjour, comment puis-je modifier le volume du fichier journal (ajuster, effacer), qui est parfois encombré de valeurs énormes en raison d'erreurs d'EA. J'ai besoin d'un moyen de le faire par le conseiller expert lui-même.

Raison: