[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 - 5. - page 21

 
rigonich:


Avez-vous ledrapeau comme une variable locale ?

P.S. Lorsque vous ne comprenez pas bien ce qui se passe, il est préférable d'imprimer les valeurs avant et après la fonction ou l'instruction que vous voulez vérifier, pour voir comment elles changent. Parfois, les valeurs d'entrée ne sont pas ce que nous attendons d'elles, et trouver où et pourquoi elles deviennent ce qu'elles sont est beaucoup plus facile en code que de deviner pourquoi le programme ne fonctionne pas correctement.


oh merde...exactement...si vous prenez int flag,flagg ; hors de la fonction Start...alors tout fonctionne en même temps :))) une autre erreur stupide de débutant :) MERCI !

 
lottamer:

oh merde...exactement...si vous enlevez int flag,flagg ; de la fonction Start...alors tout fonctionne en même temps :))) une autre erreur stupide de débutant :) MERCI !


Les débutants ne sont pas les seuls à commettre de telles erreurs. Par exemple, vous pouvez déclarer par inattention une variable locale avec un nom que la variable globale possède déjà. Le compilateur ne génère pas d'erreurs dans ce cas, mais le programme ne fonctionne pas "correctement". L'essentiel est d'être capable de détecter ces erreurs.
 

J'utilise cette fonction pour limiter le nombre d'ordres négociés simultanément, mais en fait le nombre d'ordres est supérieur de 1 au nombre défini dans la variable MaxOrders. Quelle peut en être la raison ?

   for(i=0; i<=OrdersTotal(); i++)
    {
     if(OrderSelect(i,SELECT_BY_POS)==true)
      {
       if(OrderMagicNumber()==ExpertID)
        {
         if(i>=MaxOrders)
          return;
        }
      }
    }
 
silhouette:

J'utilise cette fonction pour limiter le nombre d'ordres négociés simultanément, mais en fait le nombre d'ordres est supérieur de 1 au nombre défini dans la variable MaxOrders. Quelle peut en être la raison ?


Nous enregistrons les commandes à partir de zéro. C'est pourquoi ça ressemble à ça :

 for(i=0; i<=OrdersTotal()-1; i++)
    {
     if(OrderSelect(i,SELECT_BY_POS)==true)
      {
       if(OrderMagicNumber()==ExpertID)
        {
         if(i>=MaxOrders)
          return;
        }
      }
    }
 
Roman.:

La comptabilisation des commandes se fait à partir de zéro. C'est donc comme ça :



Merci.
 
Roman.:

Voici un aperçu de la façon dont la stochastique du manuel compte.





Merci ! !!
 

Comment est-ce possible ? J'ai une EA, elle fonctionne. Il achète, vend ... tous les arrêts clairs et takei. mais la perte est beaucoup, alors je décide de prescrire un autre filtre de tendance. deux moyennes - rapide et lente - sur un très grand TF. sur H4.

Le conseiller expert devrait ressembler à ceci

si (....)

{....

...}

une fois de plus - tout fonctionne !

et ici je mets un filtre (avant cela je définis MA1=iMA...) et presque tout en haut de l'arbre if (la deuxième condition - et la première - temps if ( Hour()>=7 && Hour()<20)

si (....)

si MA1>MA2

{

{....

...}}

aucune erreur.

Mais 95% des échanges sont coupés ! Et sur H4 l'image dit le contraire - il doit y avoir beaucoup de transactions, parce queMA1>MA2 est exécuté pendant des semaines !

Quelqu'un peut-il expliquer ce qui ne va pas ?

 

Lorsqu'il y a beaucoup de lignes sur le graphique (horizontal), les étiquettes (prix de ligne) sur l'échelle de prix de ces lignes "encombrent" toute l'échelle.

Quel est ce paramètre "queue" avec le prix de la ligne ? Est-il possible de le désactiver d'une manière ou d'une autre ? (Je n'ai même pas trouvé de moyen manuel, mais j'ai besoin d'un moyen logiciel)

Et je mettrai juste le prix dans le nom de la ligne - c'est suffisant.

 
Aide pour savoir ce qu'est l'erreur "EURUSD,M30 : uninit reason 5" quand le conseiller fonctionne souvent quand il a besoin d'ouvrir une nouvelle position il écrit cette erreur et tout le système s'arrête (( s'il y a un code pour corriger cette erreur s'il vous plaît envoyez-moi un exemple.
 
Frostr:
Aidez-moi à vérifier ce qu'est l'erreur "EURUSD,M30 : uninit reason 5" lorsque mon conseiller est en cours d'exécution souvent quand il a besoin d'ouvrir une nouvelle position il écrit cette erreur et l'ensemble du système s'arrête (( s'il ya un code pour aider à corriger cette erreur s'il vous plaît poster un exemple


Codes de raison renvoyés par UninitializeReason(). Peut avoir l'une des valeurs suivantes :

Constant .ValeurDescription
0Le script a terminé son travail de manière indépendante
REASON_REMOVE1Le programme a été supprimé du tableau
RAISON_RECOMPILATION2Programme recompilé
RAISON_CHARTCHANGE3Le symbole ou la période du graphique a été modifié
RAISON_CHARTCLOSE4La carte est fermée
PARAMÈTRES_DE_RAISON5Les paramètres d'entrée ont été modifiés par l'utilisateur
REASON_ACCOUNT6Un autre compte a été activé