[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 362

 
Chiripaha:

Ici, juste en code de Pr0t0tip (enfin, et surnom - j'ai été fatigué de retaper : )) ) Ces variables extern int sl=100 ; (etc.) sont mappées. Il faut donc déclarer une variable, puis elle apparaîtra dans les paramètres du hibou, puis sa valeur pourra être modifiée et optimisée.

Je le sais. Mais les variables externes ne fonctionnent pas à l'intérieur d'une fonction utilisateur. elles déclarent leurs propres variables. c'est là le problème.

Et je ne peux pas me débarrasser de la fonction. il y a une modification de l'ordre....

 
solnce600:
Et au-dessus de cela, il n'y a que le DÉPART et RIEN d'autre.

Ahhhhhhhh - nous y voilà... Je l'ai mis au mauvais endroit - j'aurais dû mettre une variable derrière une parenthèse :

int start()
  {
   bool have = true;

   for(int i=0;i<10;i++)
     {
      if(Low[i]<=Low[i+1])
       {
        have=false; 
        break;
       } 
     } 

   if(have)
    {
     OrderSend(Symbol(),OP_SELL,0.1,Bid,1,Ask+1500*Point,Ask-1510*Point,"jfh",123 );// действия если условие соблюдено 
    }

   return(0);
  }

Et il y en avait d'autres en bas et une autre parenthèse bouclée. Vous n'avez pas respecté les marges et une structure unique (style) de votre texte. Lorsque vous écrivez tout correctement, toutes les erreurs (incohérences) sont visibles. Soyez prudent lorsque vous écrivez du code. - Il ne devrait pas jurer.

 

C'est bizarre. J'obtiens cette erreur à partir de votre code

'bool' - point-virgule attendu C:\Documents and Settings\User\My Documents\FxClub\TeleTRADE\experts\dot.mq4 (33, 4)

En fait sur bool have = true ;

 
Exactement. Ou bien il y a eu une tournure logique - ou bien, ou bien, la fonction termine son travail en donnant zéro, ou bien, quoi ?
 
Chiripaha:

Ahhhhhh - là, je l'ai trouvé... Mauvais endroit - j'aurais dû mettre la variable derrière le support :

Et il y en avait d'autres en bas et un autre support carré. Vous écrivez sans respecter les marges. Lorsque vous mettez tout correctement, toutes les erreurs (incohérences) sont immédiatement visibles. Faites attention à la façon dont vous écrivez votre code. - Ça ne devrait pas être une réprimande.


Merci beaucoup...... que ferais-je sans vous..... Dieu vous bénisse ..... et le reste vous l'achèterez sur les bénéfices....
 
lottamer:

Je le sais. Mais les variables externes ne fonctionnent pas à l'intérieur d'une fonction utilisateur. elles déclarent leurs propres variables. c'est là le problème.

Et je ne peux pas me débarrasser de la fonction. Elle modifie l'ordre.....

Pourquoi ça ne marche pas ? - Si vous introduisez une variable globale dans une fonction utilisateur, elle fonctionnera comme elle a été déclarée à l'intérieur. Mais les données de la variable interne ne sont visibles que pour cette fonction - son action est donc limitée. Et les valeurs de la variable globale(externe) sont visibles par l'ensemble du programme. Voilà la différence. Mais dans le cas d'une variable externe - encore une fois, externe - , la variable apparaîtra également dans les paramètres. - C'est un manuel scolaire. Relisez-le, ça aide. : )) Bien entendu, lorsque l'on déclare une variable externe, il faut la référencer à l'intérieur de la fonction à cette variable globale. Et veillez à ce que les noms ne soient pas identiques. Sinon, vous déclarerez l'externe et l'interne avec le même nom. - Bien que vous puissiez le faire de cette façon, je pense que la fonction prendra la valeur de la variable interne - je ne me souviens pas exactement. C'est là que vous devez passer par un manuel. Faites-le vous-même, si vous voulez expérimenter. Je donne généralement des noms différents pour éviter toute confusion et c'est tout.
 
Chiripaha:
Pourquoi ça ne marche pas ? - Si vous introduisez une variable globale dans une fonction personnalisée, elle fonctionnera exactement comme celle qui est déclarée à l'intérieur. Les données de la variable interne ne sont visibles que pour cette fonction - son action est donc limitée. Et les valeurs de la variable globale(externe) sont visibles par l'ensemble du programme. Voilà la différence. Mais dans le cas d'une variable externe - encore une fois, externe - , la variable apparaîtra également dans les paramètres. - C'est un manuel scolaire. Relisez-le, ça aide. : )) Bien entendu, lorsque l'on déclare une variable externe, il faut la référencer à l'intérieur de la fonction à cette variable globale. Et veillez à ce que les noms ne soient pas identiques. Sinon, vous déclarerez l'externe et l'interne avec le même nom. - Bien que cela puisse être fait de cette façon, il semble que la fonction prendra la valeur de la variable interne - je ne me souviens pas exactement. C'est là que vous devez passer par un manuel. Faites-le vous-même, si vous voulez expérimenter. Je donne généralement des noms différents pour éviter toute confusion et c'est tout.


Merci beaucoup... je pensais que si l'intérieur n'est pas visible à l'extérieur, alors l'extérieur n'est pas non plus visible à l'intérieur...
 

Bonjour. J'ai écrit un EA simple (j'essaie de l'apprendre moi-même). Le robot n'ouvre des transactions que pour vendre, mais ne veut pas acheter. Je comprends que je n'ai pas épelé correctement les conditions d'achat ou que je ne les ai pas divisées correctement. Je demande de l'aide. C'est ici :

extern int tp=100 ;

extern int sl=100 ;

extern int H=14 ;

extern int M=00 ;

double ma1, ma2 ;

int start()

{

ma1=iMA (NULL,0,18,0,MODE_SMA,PRICE_CLOSE,0) ;

ma2=iMA (NULL,0,36,0,MODE_SMA,PRICE_CLOSE,0) ;

si (OrdersTotal ()==0 && iStochastic (NULL,0,50,30,3,0,1,MODE_MAIN,4)<iStochastic (NULL,0,50,30,3,0,1,MODE_SIGNAL,4) && ma1<ma2)

OrderSend ("EURUSD", OP_SELL,0.1,Bid,0,Ask+sl*Point,Ask-tp*Point,",123,Red) ;

si (OrdersTotal ()==0 && iStochastic (NULL,0,50,30,3,0,1,MODE_MAIN,4)>iStochastic (NULL,0,50,30,3,0,1,MODE_SIGNAL,4) && ma1>ma2)

OrderSend ("EURUSD", OP_BUY,0.1,Ask,0,Bid+sl*Point,Bid-tp*Point,",123,Red) ;

}

retour (0) ;

 
Pr0t0tip:
Hm, quelqu'un peut m'aider ?

Jetons un coup d'œil - je ne suis pas très expérimenté. Mais nous allons faire un essai... : ))

En attendant, vous devriez apprendre à utiliser le bouton SRC - il vous permet d'insérer le code correctement, joliment et clairement. Pour ceux qui vous aideront (maintenant et à l'avenir), il serait plus facile de le lire. Vous risquez de vous casser les yeux si vous le faites. : ))

 
Quel est ce bouton ?
Raison: