Question pour les connaisseurs - page 14

 
Спасибо большое!
 
rid писал(а) >>

Bon après-midi. Je n'arrive pas à comprendre l'utilisation de l'indicateur dans l'EA.

Voici l'indicateur lui-même :



J'appelle l'indicateur dans le conseiller expert de la manière suivante (valeurs provenant de 2 tampons)-

Cependant, bien qu'en mode visuel je puisse voir que les valeurs de l'indicateur des deux tampons changent de zéro à plus/moins cinq, mais les douanes affichent (renvoient) constamment des zéros ......

Publié dans les commentaires. - La ligne verte =5, mais le commentaire indique zéro.

J'essaie de le comprendre depuis une heure. Veuillez me donner un indice sur l'origine de l'erreur.

J'ai téléchargé l'outil lui-même.

J'ai trouvé l'erreur. J'ai envoyé un script de test à Misha.

En fait, tous les paramètres doivent être passés. Les cordes aussi.

Dossiers :
level_1.mq4  2 kb
 
Merci Vinin !
 

Bonjour, veuillez aider les connaisseurs à concocter un oscillateur sur la formule heiken ashi montrant la différence entre haOpen et haClose. Merci d'avance !

 

Bonjour à tous !

Veuillez me conseiller. Voici le code :

// Проверка условий для совершения сделки селл 
  if( если условия соотв.- ют заданным){ //продаем
StopLevel = MarketInfo(Symbol(),MODE_STOPLEVEL);
   
      SL=0; TP=0;
      if( StopLoss>0    && StopLoss> StopLevel)   SL=Bid+Point* StopLoss;
      if( TakeProfit>0 && TakeProfit> StopLevel) TP=Bid-Point* TakeProfit;
      if( StopLoss  < StopLevel && StopLoss>0)   SL = Bid+Point* StopLevel; 
      if( TakeProfit< StopLevel && TakeProfit>0) TP = Bid-Point* StopLevel; 
   ticket=OrderSend(Symbol(),OP_SELL, lots,Bid,3, SL, TP,"Name_Expert", Magic,0, clOpenSell);

                                                   }

Je ne comprends pas ce qui ne va pas ! Le journal du testeur renvoie l'erreur 130 (arrêts erronés) si je fixe un stoploss et un takeprofit inférieurs à ceux autorisés !

Mais j'ai spécifiquement prévu que cette erreur ne se produise pas !

Veuillez me dire pourquoi les conditions ne fonctionnent pas ? -


 if( StopLoss  < StopLevel &&   StopLoss>0)   SL = Bid+Point* StopLevel; 
 if( TakeProfit< StopLevel  && TakeProfit>0)   TP = Bid-Point* StopLevel; 
 
Et si on ajoutait un un-deux à StopLevel pour le dégagement ? Ça a marché pour moi une fois.
 
De nombreux débutants ont du mal à comparer des nombres à virgule flottante. Granit77 a raison, j'ajoute généralement 0,1 pips au lieu de 1-2 pips pour que le conseiller expert reste précis.
 
granit77 >> :
Pourquoi ne pas ajouter un une-deux à StopLevel pour l'écart ? Ça a marché pour moi une fois.

Comme ça ? :

 if( StopLoss  < StopLevel &&   StopLoss>0)   SL = Bid+Point*( StopLevel+1); 
 if( TakeProfit< StopLevel  && TakeProfit>0)   TP = Bid-Point*( StopLevel+1); 

>> Ça ne marche pas.

En outre, dans le testeur, ces conditions devraient fonctionner même sans écart. Mais ils ne le font pas. - L'erreur 130 s'affiche

 
rid >> :

Pas utile.

En outre, dans le testeur, ces conditions devraient fonctionner même sans écart. Mais ils ne le font pas. - L'erreur 130 s'affiche

Je ne suis pas un expert, mais j'imprimerais les valeurs des variables StopLoss, TakeProfit, StopLevel, SL et TP.

Je ne vois pas comment ils sont déclarés ni pourquoi ils sont nécessaires.

 SL=0; TP=0
 
goldtrader >> :

Je ne suis pas un expert, mais j'imprimerais les valeurs des variables StopLoss, TakeProfit, StopLevel, SL et TP.

Je ne vois pas comment ils sont déclarés et pour quoi faire.

Voici comment procéder :

extern int     StopLoss=1;
extern int     TakeProfit=1;
double SL, TP;
int StopLevel;

//---------------
StopLevel = MarketInfo(Symbol(),MODE_STOPLEVEL);

  if( УСЛОВИЯ ВХОДА ){ //продаем
   
      SL=0; TP=0;
      if( StopLoss>0    && StopLoss> StopLevel)   SL=Bid+Point* StopLoss;
      if( TakeProfit>0 && TakeProfit> StopLevel) TP=Bid-Point* TakeProfit;

      if( StopLoss  < StopLevel && StopLoss>0)   SL = Bid+Point* StopLevel; 
      if( TakeProfit< StopLevel && TakeProfit>0) TP = Bid-Point* StopLevel;
 
   ticket=OrderSend(Symbol(),OP_SELL, lots,Bid,3, SL, TP,"Name_Expert", Magic,0, clOpenSell);
   if( ticket < 0){
            Print("Ошибка открытия ордера SELL #", GetLastError()); 
            Sleep(10000);  
            prevtime = Time[1]; 
            return (0); 
         } 
       }

Les positions sont ouvertes, mais au lieu des stops, il y a une erreur 130 ......

Affichage de tous les arrêts et niveaux dans le commentaire . - tout semble s'afficher correctement... - mais l'erreur 130 s'affiche