Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 934

 
J'ai écrit une fonction pour détecter les flytags et je suis tombé sur quelque chose que je ne comprends pas. L'instruction if ne fonctionne pas. J'ai peut-être écrit quelque chose de mal quelque part, je veux que vous regardiez à nouveau, je ne comprends pas pourquoi. J'ai même enregistré une vidéo de débogage montrant l'égalisation des valeurs, mais cela ne fonctionne pas. S'il vous plaît, remettez mon cerveau dans )))).
{
      int size = ArrayRange(arrayMinLow,0);
     
      
      double spreadFlat = highLine - lowLine;
      
     
      int directionFlat = -1;
      int slew = 0;
      for (int i = 0; i<size; i++){
            double hl =arrayMinLow[i][0];
            double ol = arrayMinLow[i][1];
            double cl = arrayMinLow[i][2];
            double ll = arrayMinLow[i][3];
            
            if (hl == highLine || ol == highLine){                                      //вот тут не срабатывает

                  if( directionFlat == -1 || directionFlat == 0)
                        slew++;

                  directionFlat = 1;
            }else if  (cl == lowLine|| ll ==lowLine){
               
                  if( directionFlat == -1 || directionFlat == 1)
                        slew++;               
               
                  directionFlat = 0;
               
           }
                  
      
      }
      
      if(slew >=4 )
         return true;
         
      return false;   
      
      

}




lien vidéo https://www.youtube.com/watch?v=k9Zo0SgrMCA



Je ne peux pas supprimer le message précédent, j'ai tout copié en html et supprimé la balise dont j'ai besoin pour modifier le message.

 
Leo59:
Qu'est-ce qu'il y a ? Pourquoi certaines zones bleues sont-elles laissées de côté ?




Franchement, je ne fouille pas dans les codes des autres à moins d'y être obligé ! Vous trouverez tout dans le Doc, l'aide et la base de données ! Les exemples ne manquent pas !
 

Pourriez-vous me dire comment organiser le recalcul de la monnaie de dépôt.

Mon robot calcule le lot en fonction du solde et des fonds sur le compte. Mais ceci est, bien sûr, si le dépôt est en dollars.

Si j'ouvre un dépôt en roubles, je dois alors diviser le lot par le taux usdrur.

Puis-je permettre à mon conseiller expert de regarder la devise du dépôt et, si nécessaire, de la diviser par usdrur ?

 
neman:

Pourriez-vous me dire comment organiser le recalcul de la monnaie de dépôt.

Mon robot calcule le lot en fonction du solde et des fonds sur le compte. Mais ceci est, bien sûr, si le dépôt est en dollars.

Si j'ouvre un dépôt en roubles, je dois alors diviser le lot par le taux usdrur.

Puis-je permettre à mon conseiller expert de regarder la devise du dépôt et, si nécessaire, de la diviser par usdrur ?

Eh bien, AccountCurrency() et sur cette base forment une paire et déterminent l'enchère.
 

Je comprends, mais je ne sais pas comment l'écrire correctement.

Par exemple :


double KursS=iClose("USDRUR",H1,0) ;

Si AccountCurrency() = USD, alors K=1 ;

Si AccountCurrency() = RUR, alorsK=KursS ;

Comment puis-je l'enregistrer correctement ?


 
neman:

Je comprends, mais je ne sais pas comment l'écrire correctement.

Par exemple :


double KursS=iClose("USDRUR",H1,0) ;

Si AccountCurrency() = USD, alors K=1 ;

Si AccountCurrency() = RUR, alorsK=KursS ;

Comment puis-je l'enregistrer correctement ?


Vous êtes passé à côté. Tout d'abord, vous devez définir la devise "USDRUR". Si votre dépôt est en euros, vous devez définir le taux EURUSD.

C'est-à-dire que vous devez définir la chaîne K_Symbol = "USDRUR" ; à condition que le dépôt soit en roubles.

Je pense que tu peux trouver comment le faire. Si le courtier ouvre des comptes dans d'autres devises, il s'agira de contrôles supplémentaires.

 
AlexeyVik:

C'est vous qui avez zappé. Tout d'abord, vous devez déterminer que la devise que vous voulez est "USDRUR". Si vous souhaitez enregistrer le dépôt en euros, vous devez définir le taux EURUSD.

C'est-à-dire définir la chaîne K_Symbol = "USDRUR" ; à condition que le dépôt soit en roubles.

Je pense que tu peux trouver comment le faire. Si le courtier ouvre des comptes dans d'autres devises, il s'agira de contrôles supplémentaires.

En d'autres termes, tout cela a un sens pour moi. La question était de savoir comment enregistrer...

 
neman:

En mots, je comprends tout. La question était de savoir comment l'écrire...


Eh bien, il y a tout dans notre dialogue.

string K_Symbol;

if(AccountCurrency() == "USD") K = 1;
else
if(AccountCurrency() == "RUR")
 {
  K_Symbol = "USDRUR";
  K = iClose(K_Symbol, H1, 0);
 }
else
if(AccountCurrency() == "EUR")
 {
  K_Symbol = "EURUSD";
  K = iClose(K_Symbol, H1, 0);
 }


La deuxième option est un peu plus courte...

string K_Symbol;

if(AccountCurrency() == "USD") K = 1;
else
 {
  if(AccountCurrency() == "RUR") K_Symbol = "USDRUR";
   if(AccountCurrency() == "EUR") K_Symbol = "EURUSD";
  K = iClose(K_Symbol, H1, 0);
 }


Et la troisième option, pour toutes les occasions et toutes les monnaies du dépôt, un peu plus compliquée, et je ne l'inventerai pas, et prête n'a pas, il n'y avait pas besoin d'écrire.

 

Merci beaucoup !

 
pycha:

J'ai écrit une fonction pour détecter les flytags et je suis tombé sur quelque chose que je ne comprends pas. L'instruction if ne fonctionne pas. Peut-être que j'ai écrit quelque chose de mal quelque part, je veux que vous regardiez à nouveau, parce que je ne comprends pas pourquoi. J'ai même enregistré une vidéo de débogage montrant l'égalisation des valeurs, mais cela ne fonctionne pas. s'il vous plaît, remettez mon cerveau dans )))).




lien vidéo https://www.youtube.com/watch?v=k9Zo0SgrMCA



Notez que je ne peux pas supprimer le message précédent, j'ai tout copié en html et supprimé la balise qui est nécessaire pour modifier le message

Avez-vous entendu parler de la comparaison de chiffres réels ?

La solution au problème a été suggérée il y a longtemps et plus d'une fois.

J'ai supprimé le message précédent.

Raison: