Marché : pas d'opérations de trading - page 7

 
Vitaly Muzichenko:

Construire une fonction normale avec un retour de lot, pas un contrôle vrai/faux

Et il aime faire des contrôles supplémentaires. Vous devez vérifier si c'est un testeur de stratégie, puis vérifier en plus ce que la fonctioncheckVolumeValue a retourné...

 
Evgeny Belyaev:

Vous lisez en diagonale ?

D'autres questions pour moi ?

Où est votre Graal quand on voit le signal ?

Vous n'avez pas jeté vos EA sur le marché, à en juger par la composition des produits.

donc...

Bonjour

;)

 
Vladislav Andruschenko:


Il ne devrait pas y avoir de problème avec ça alors.

la même multidevise, passe le test.

Et aucune opération commerciale ne peut être le fait de l'humeur du testeur :-) - Je ne sais pas s'il est de mauvaise humeur (c'est-à-dire qu'il se rafraîchit, dort, a un jour de congé) et qu'il ne fait aucun échange.

Il suffit d'essayer une autre pâte à tartiner ou d'attendre un jour et tout saute à nouveau dans l'humeur.

Je vérifie sans aucun problème, les fonctions fonctionnent parfaitement. Suppression de la vérification du lot minimum, c'était pour que si le minimum autorisé est supérieur à 0.01, alors ne pas trader.
Dans le validateur, j'ai vu un lot supérieur à 0,01, donc je n'ai pas négocié.

 
Renat Akhtyamov:

Vous n'avez pas jeté l'EA dans le marché, à en juger par la composition des produits.

donc...

Bonjour

;)

Eh bien, je l'ai fait, donc c'est une autre déception. Voulez-vous le lien ou voulez-vous le trouver vous-même ?

Où est votre Graal quand on voit le signal ?

J'ai même fait un travail pour un homme.


 

Regardez, j'ai des hiboux, le premier lot est pris dans les paramètres, ce qui signifie qu'il peut être inférieur à ce qui est autorisé seulement si l'utilisateur a fait une erreur en entrant le lot.

Par exemple, un utilisateur a fait une faute de frappe et a écrit 0,005 alors qu'il voulait négocier 0,05 lot - si vous vérifiez, les hiboux négocieront 0,01 lot (en supposant que 0,01 est le lot minimum).

Si vous voulez négocier à 0,005 et que vous voulez négocier à 0,05 - vous pouvez ajouter une alerte.

Je crois qu'il s'agit d'une question de décision personnelle, qui veut tel et tel .....

Au fait, voici une partie du code (que j'ai également écrit plus tôt) lorsque la vérification a également échoué :

double CheckVolumeValue(double volume)
{
   double min_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN);
   if(volume<min_volume)
   {
      Print("Volume is less than the minimum");
      return(min_volume);
   }

   double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MAX);
   if(volume>max_volume)
   {
      Print("Volume is greater than the maximum");
      return(max_volume);
   }
 ......

}
 
Evgeny Belyaev:

Je l'ai fait en quelque sorte, donc c'est encore une fois une déception. Voulez-vous le lien ou pouvez-vous le trouver vous-même ?

Où est votre Graal quand on voit le signal ?

Je préfère ne pas parler aux chasseurs d'idées sur de tels sujets.

 
Renat Akhtyamov:

Je préfère ne pas parler de ce genre de choses avec les chasseurs d'idées.

Pourquoi parlez-vous alors ? )

Tu m'ennuies. Nous attendons tous un signal du CME avec des volumes calculés. N'y a-t-il pas de compensation sur le CME ?

 
Maksim Neimerik:

Regardez, j'ai des hiboux, le premier lot est pris dans les paramètres, ce qui signifie qu'il peut être inférieur à ce qui est autorisé seulement si l'utilisateur a fait une erreur en entrant le lot.

Par exemple, un utilisateur a fait une faute de frappe et a écrit 0,005 alors qu'il voulait négocier 0,05 lot - si vous vérifiez, les hiboux négocieront 0,01 lot (en supposant que 0,01 est le lot minimum).

Si vous voulez négocier à 0,005 et que vous voulez négocier à 0,05 - vous pouvez ajouter une alerte.

Je crois qu'il s'agit d'une question de décision personnelle, qui veut tel et tel .....

A propos, voici une partie du code (que j'ai également écrit auparavant) lorsque la vérification a également échoué :

Vous devez d'abord tout faire, et ensuite vérifier le min/max.

double CheckVolumeValue(double volume)
{
   double min_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN);
   double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MAX);
 ...

   if(volume<min_volume)
   {
      Print("Volume is less than the minimum");
      return(min_volume);
   }

   
   if(volume>max_volume)
   {
      Print("Volume is greater than the maximum");
      return(max_volume);
   }
}

et immédiatement au retour faire la normalisation

return(NormalizeDouble(volume,LotDigit(symb)));
 
Vitaly Muzichenko:

Faites tout d'abord, puis vérifiez les valeurs min/max.

et faire la normalisation immédiatement au retour.

En général, ok, il est temps de mettre fin à cette conversation.

Certains défauts imaginaires vous avez vu tout de suite, mais l'essentiel (j'ai écrit sur le retour du lot) est resté sans votre attention ...

Merci à tous pour votre aide !

 
Maksim Neimerik:

Dans l'ensemble, il est temps de mettre fin à cette conversation.

Certains défauts imaginaires, vous les avez vus tout de suite, mais l'essentiel (j'ai écrit sur le retour du lot) est resté sans votre attention...

Merci à tous pour votre aide !

Maxim, vous m'entendez ?

Relisez le code que j'ai donné et son message.

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégies de trading

Marché : Pas d'opérations de trading

Vitaly Muzichenko, 2020.01.27 18:37

Vous devez d'abord tout faire, et ensuite vérifier le min/max.

double CheckVolumeValue(double volume)
{
   double min_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN);
   double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MAX);
 ...

   if(volume<min_volume)
   {
      Print("Volume is less than the minimum");
      return(min_volume);
   }

   
   if(volume>max_volume)
   {
      Print("Volume is greater than the maximum");
      return(max_volume);
   }
}

et le normaliser immédiatement à un retour

return(NormalizeDouble(volume,LotDigit(symb)));

Vous vérifiez le minimum et le maximum, puis vous effectuez des calculs. Le calcul peut donc être n'importe quoi. Vous devez vérifier les valeurs min/max après les calculs, pas avant.

---------------------------

Et voici le mien)


Raison: