[ARCHIVE !] Toute question de débutant, pour ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 4. - page 470

 
Elektronik:

Tout a déjà été fait pour vous et cela fonctionne bien.

KimIV01.11.2006 18:49

Je recommande mon code éprouvé et testé



https://forum.mql4.com/ru/4689


Merci pour la réponse, mais j'aimerais savoir pourquoi cela ne fonctionne pas pour moi :)
 
hoz:

La documentation indique que la fonction SetIndexEmptyValue est utilisée pour spécifier une valeur "vide". C'est-à-dire que nous spécifions à partir de quelle valeur nous n'avons pas besoin de dessiner quoi que ce soit. C'est très pratique dans notre cas car les signaux ne se produisent pas sur chaque barre. Il fonctionne comme suit. Lorsque vous n'avez pas besoin de dessiner la flèche sur la barre actuelle, vous attribuez une valeur "vide" à l'entrée appropriée du tampon de données, dans notre cas 0.

Quelque chose que je ne comprends pas. Si quelque chose est dessiné par le signal, il ne sera pas dessiné sans le signal. Alors quel est le but de cette fonction en général ?


Il est d'usage que l'ordinateur indique explicitement qu'il n'y a pas de valeur. Alors il ne semble pas y avoir de zéro du tout. Imaginez que vous dessinez un tampon - ici il a la valeur 1.2903, 1.2905, 1.2904... Et puis soudain, c'est 0. Dans ces brumes, les lignes indicatrices devront soudainement plonger sous la fenêtre ! !!
 
hoz:

La documentation indique que la fonction SetIndexEmptyValue est utilisée pour spécifier une valeur "vide". C'est-à-dire que nous spécifions à partir de quelle valeur nous n'avons pas besoin de dessiner quoi que ce soit. C'est très pratique dans notre cas car les signaux ne se produisent pas sur chaque barre. Il fonctionne comme suit. Lorsque vous n'avez pas besoin de dessiner la flèche sur la barre actuelle, vous attribuez une valeur "vide" à l'entrée appropriée du tampon de données, dans notre cas 0.

Quelque chose que je ne comprends pas. Si quelque chose est dessiné par le signal, il ne sera pas dessiné sans le signal. Alors quel est le but de cette fonction en général ?

Cette fonction remplit le tableau (dans ce cas, le tampon indicateur) avec une valeur vide EMPTY_VALUE = 0x7FFFFFFFF.
 
drknn:


En fait, il existe un type spécial de variable dans la langue - la couleur est appelée. Par exemple :

double Velichina ;

MyLine ;

Velichina=2.569 ;

MaLigne=Rouge ;


Je l'avais comme ça.
  OrderSend( NULL, OP_BUY, lot, Ask, 3, NormalizeDouble( Bid- (stoplos*Point),Digits),   NormalizeDouble( Ask+( takeprofit*Point),Digits), NULL, magicnumber, 0, 00 FF33);  }
           
Qu'est-ce qu'il est censé faire, écrire la couleur là-dedans ?
 
Dimka-novitsek:

Je l'avais comme ça Qu'est-ce qu'il doit écrire là, une couleur spéciale, ou quoi ?

Non, vous pouvez écrire simplement Rouge au lieu de 00FF33, ou n'importe quelle couleur du tableau des couleurs du Web - ouvrez ce lien - il y a suffisamment de couleurs pour ne pas utiliser le code hexadécimal.
 
Robot
//+------------------------------------------------------------------+
//|                                                     советник.mq4 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"


  extern double  lot=1;                          
  extern int taymfreym=0 ;                           
  extern double  stoplos=20 ;                          
  extern double  takeprofit=50 ; 
  extern double  magicnumber=350//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
            double strela1 = iCustom(NULL, taymfreym, "индикатор", 0, 1);
            double strela2 = iCustom(NULL, taymfreym, "индикатор", 1, 1);
            int BUY=0,SELL=0;int ticket; 
            Print (  " strela1 " , strela1 , "   strela2  " , strela2  );
            
    
            
            for(int i=1; i<=OrdersTotal(); i++) {  
            if (OrderSelect(i-1,SELECT_BY_POS)==true) // Если есть следующий
        {                                       // Анализ ордеров:
         if (OrderSymbol()!=Symbol( ) )continue;      // Не наш фин. инструм
         if (OrderMagicNumber( ) !=magicnumber)continue;
         if (OrderType()==0){ BUY++; ticket=OrderTicket( );}
         if (OrderType()==1) {SELL++;ticket=OrderTicket( );}    } }
         
   if (strela1>strela2&&BUY==0&&SELL==0){               
            
           OrderSend( NULL, OP_BUY, lot, Ask, 3, NormalizeDouble( Bid- (stoplos*Point),Digits), 
  NormalizeDouble( Ask+( takeprofit*Point),Digits), NULL, magicnumber, 0, CLR_NONE);  }
           
           
   if (strela1<strela2&&BUY==0&&SELL==0){  
   
            OrderSend( NULL, OP_SELL, lot, Bid, 3, NormalizeDouble( Ask- (stoplos*Point),Digits), 
  NormalizeDouble( Bid+( takeprofit*Point),Digits), NULL, magicnumber, 0, CLR_NONE) ; }
            
            
  if (strela1>strela2&&BUY==0&&SELL!=0){ 
   OrderSelect(ticket, SELECT_BY_TICKET);
   OrderClose(  ticket , OrderLots( ) , OrderOpenPrice( ) , 3, CLR_NONE);                 
   OrderSend( NULL, OP_BUY, lot, Ask, 3, NormalizeDouble( Bid- (stoplos*Point),Digits),  
 NormalizeDouble( Ask+( takeprofit*Point),Digits), NULL, magicnumber, 0, CLR_NONE);  }         
      
  if (strela1<strela2&&SELL==0&&BUY!=0){ 
   OrderSelect(ticket, SELECT_BY_TICKET);
   OrderClose(  ticket , OrderLots( ) , OrderOpenPrice( ) , 3, CLR_NONE);                 
   OrderSend( NULL, OP_SELL, lot, Bid, 3, NormalizeDouble( Ask- (stoplos*Point),Digits),  
 NormalizeDouble( Bid+( takeprofit*Point),Digits), NULL, magicnumber, 0, CLR_NONE) ; }
      
            
            
//----
   return(0);
  }
//+------------------------------------------------------------------+
C'est un endroit
 double strela1 = iCustom(NULL, taymfreym, "индикатор", 0, 1);
 double strela2 = iCustom(NULL, taymfreym, "индикатор", 1, 1);

Le strela2 ne fonctionne pas, sa valeur est -1. Tâche si la flèche est vers le haut, ordre d'achat et vice versa. Ou peut-être que je ne l'écris pas bien du tout ! !!

J'utilise cetiCustom pour la première fois. Est-il correct de comparer strela1 et strela2 de cette manière ? Quel genre de valeurs j'obtiens - je veux dire, je comprends que c'est

les premier et deuxième tampons, mais pas plus.

Avec quoi dessine-t-il les flèches ?

 

Indicateur

/*ДЕКОМПИЛ УДАЛЕН, ВАМ ПРЕДУПРЕЖДЕНИЕ*/

Avec quoi dessine-t-il les flèches de toute façon ?

 

Que signifie le mot "tralit" ?

La citation se lit intégralement comme suit :

<br class='autobr' /> Le conseiller utilise les signaux de l'indicateur"Alligator" pour les entrées, déplace la position vers le seuil de rentabilité et trafique avec un pas déterminé.

 
Je ne comprends pas ! Un type m'a envoyé un indicateur par courrier. D'où l'a-t-il décompilé ? Oui, j'ai vu des indicateurs assez similaires plus d'une fois. S'il vous plaît, remettez-les à leur place !
 
Oui, j'ai vu une ligne dedans.